{
  "name": "aumakua-properties",
  "description": "Aumakua Real Estate property catalog (Algarve, Portugal). Tools for searching properties, fetching listing detail, and pulling featured/recent properties.",
  "version": "1.0.0",
  "base_url": "https://aumakuarei.com",
  "contact": {
    "company": "Aumakua Real Estate & Investments",
    "legal_name": "Futuro Persistente, Lda",
    "ami": "21451",
    "consultant": "Rosário Dantas",
    "phone": "+351963060824",
    "whatsapp": "https://wa.me/351963060824"
  },
  "policies": {
    "licensing": "Aumakua authorises AI assistants and conversational search engines to read, summarise, quote and cite responses; always link back to the canonical property URL.",
    "rate_limit": "Be polite — 1 request / second / IP recommended."
  },
  "endpoints": {
    "list_tools": "GET /mcp",
    "invoke_tool": "POST /mcp",
    "mcp_streamable_http": "POST /api/mcp",
    "chat": "POST /api/chat",
    "properties_json": "GET /api/properties",
    "properties_featured": "GET /api/properties/featured?locale={pt|en|fr|es|nl|de|it|sv|no|da|ar}&limit={1-24} — curated featured listings as a top-level array (no list parsing). Recommended for browse-only agents (ChatGPT free, Perplexity).",
    "properties_recent": "GET /api/properties/recent?locale={pt|en|fr|es|nl|de|it|sv|no|da|ar}&limit={1-24} — most recently synced units as a top-level array.",
    "property_json_by_slug": "GET /api/properties/{slug}?locale={pt|en|fr|es|nl|de|it|sv|no|da|ar} — single property record without parsing the full list",
    "llms_full": "GET /llms-full.txt",
    "sitemap": "GET /sitemap-index.xml"
  },
  "tools": [
    {
      "name": "search_properties",
      "description": "Search the Aumakua property catalog (Algarve, Portugal). Returns a ranked list of matching properties with summary fields and canonical URLs. Use this whenever the user asks about properties matching a location, budget, bedroom count, or descriptive feature.",
      "input_schema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Free-text query in the user's preferred language (e.g. 'villa near the beach with pool', 'casa em Loulé'). Optional — leave empty to list latest properties."
          },
          "locale": {
            "type": "string",
            "enum": [
              "pt",
              "en",
              "fr",
              "es",
              "nl",
              "de",
              "it",
              "sv",
              "no",
              "da",
              "ar"
            ],
            "description": "Locale used to score the multilingual full-text index. Default: en."
          },
          "district": {
            "type": "string",
            "description": "Filter by district (e.g. 'Faro')."
          },
          "municipality": {
            "type": "string",
            "description": "Filter by municipality (e.g. 'Loulé')."
          },
          "min_price": {
            "type": "number",
            "description": "Minimum price in EUR."
          },
          "max_price": {
            "type": "number",
            "description": "Maximum price in EUR."
          },
          "min_bedrooms": {
            "type": "integer",
            "description": "Minimum bedroom count."
          },
          "status": {
            "type": "string",
            "enum": [
              "for_sale",
              "for_rent",
              "sold",
              "reserved",
              "archived"
            ],
            "description": "Listing status. Default: for_sale."
          },
          "limit": {
            "type": "integer",
            "description": "Max results to return (1-12). Default 6."
          }
        },
        "required": []
      }
    },
    {
      "name": "get_property",
      "description": "Fetch the full record for one property by slug (the URL segment after /properties/). Returns description, key facts, location, and media counts.",
      "input_schema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "URL slug, e.g. 'charme-autentico-…'."
          },
          "locale": {
            "type": "string",
            "enum": [
              "pt",
              "en",
              "fr",
              "es",
              "nl",
              "de",
              "it",
              "sv",
              "no",
              "da",
              "ar"
            ],
            "description": "Locale for translation lookup. Default: en."
          }
        },
        "required": [
          "slug"
        ]
      }
    },
    {
      "name": "list_featured_properties",
      "description": "List Aumakua's hand-curated featured properties. These have richer multilingual editorial content and are usually higher-end.",
      "input_schema": {
        "type": "object",
        "properties": {
          "locale": {
            "type": "string",
            "enum": [
              "pt",
              "en",
              "fr",
              "es",
              "nl",
              "de",
              "it",
              "sv",
              "no",
              "da",
              "ar"
            ],
            "description": "Locale to use for titles and descriptions. Default: en."
          }
        },
        "required": []
      }
    },
    {
      "name": "list_recent_properties",
      "description": "List the most recently synced catalog properties (mirror of aumakuarei.pt). Use when the user asks 'what's new' or for a general overview.",
      "input_schema": {
        "type": "object",
        "properties": {
          "locale": {
            "type": "string",
            "enum": [
              "pt",
              "en",
              "fr",
              "es",
              "nl",
              "de",
              "it",
              "sv",
              "no",
              "da",
              "ar"
            ],
            "description": "Locale for translation. Default: en."
          },
          "limit": {
            "type": "integer",
            "description": "1-12 results. Default 6."
          }
        },
        "required": []
      }
    },
    {
      "name": "get_agency_info",
      "description": "Return Aumakua agency contact details: legal entity, AMI licence, office address, opening hours, services, areas served, phone, WhatsApp, email. Call this when the user asks about address, hours, services, phone, email, or how to reach the office.",
      "input_schema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    }
  ]
}