Metastate · Imóveis em Portugal

Homes for sale and rent in Lisbon and Cascais, INE prices, purchase costs and viewings.

Should I use this

Quality & Safety

A
Description quality
94%
Schema completeness
97%
Naming quality
84%
Poisoning risk
100%
Permission match
90%
Protocol compliance
100%

Findings (3)

  • LOWTool 'ver_imovel' description lacks action verbin ver_imovel
  • LOWTool 'falar_com_consultor' description lacks action verbin falar_com_consultor
  • LOWTool 'fetch' suggests web access but openWorldHint=falsein fetch

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,765Tokens (tool definitions)
~2.1 KBTypical response size
Significant attention impact (2.16% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "imoveis": {
      "url": "https://metastate.pt/api/mcp"
    }
  }
}

Remote endpoints

https://metastate.pt/api/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search(query)

Free-text search over Metastate's live property portfolio in Portugal and its guides (INE house prices, purchase costs, buying as a foreigner). Returns ids, titles and canonical URLs; use fetch with an id for the full content. Standard search/fetch interface for ChatGPT deep research.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Natural-language query, e.g. '3 bedroom for sale in Lisbon with garage' or 'IMT costs'"
    }
  },
  "required": [
    "query"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ]
      }
    }
  },
  "required": [
    "results"
  ]
}
🟢fetch(id)

Full content of a search result by id (property listing details or guide text), with its canonical URL for citation.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Id returned by search, e.g. imovel:t3-quinta-dos-alcoutins-venda or guia:custos"
    }
  },
  "required": [
    "id"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "metadata": {
      "type": "object"
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url"
  ]
}
🟢pesquisar_imoveis(operacao, zona, tipologia, quartos_min, preco_min, ...)

Search available homes and commercial properties in Metastate's live portfolio in Portugal (Lisbon, Cascais, Sintra, Oeiras…), for sale or rent. Returns reference, title, operation, price (or monthly rent), type, size, area and listing link. / Procura imóveis disponíveis na carteira da Metastate, para venda ou arrendamento.

Input Schema

{
  "type": "object",
  "properties": {
    "operacao": {
      "type": "string",
      "enum": [
        "venda",
        "arrendamento"
      ],
      "description": "venda = buy, arrendamento = rent"
    },
    "zona": {
      "type": "string",
      "description": "Municipality, area or neighbourhood, e.g. Lisboa, Cascais, Oeiras, Sintra, Estoril"
    },
    "tipologia": {
      "type": "string",
      "description": "Portuguese layout code: T2 = 2-bedroom flat, T3, V4 = 4-bedroom house"
    },
    "quartos_min": {
      "type": "number",
      "description": "Minimum number of bedrooms"
    },
    "preco_min": {
      "type": "number",
      "description": "Minimum price in euros (monthly rent for rentals)"
    },
    "preco_max": {
      "type": "number",
      "description": "Maximum price in euros (monthly rent for rentals)"
    },
    "area_min": {
      "type": "number",
      "description": "Minimum gross private area in m²"
    },
    "piscina": {
      "type": "boolean",
      "description": "true = only properties with a pool"
    },
    "garagem": {
      "type": "boolean",
      "description": "true = only properties with garage or parking"
    },
    "jardim": {
      "type": "boolean",
      "description": "true = only properties with garden or outdoor space"
    },
    "texto": {
      "type": "string",
      "description": "Free keywords, e.g. river view, golf, office"
    },
    "limite": {
      "type": "number",
      "description": "Max results (1-20, default 10)"
    },
    "idioma": {
      "type": "string",
      "enum": [
        "en",
        "pt"
      ],
      "description": "Language of the text answer and listing links: en (default) or pt"
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "imoveis": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  }
}
🟢ver_imovel(referencia)

Full details of one Metastate property by reference (e.g. META-003) or slug: price, size, rooms, energy class, features, description, consultant and link. / Ficha completa de um imóvel pela referência ou slug.

Input Schema

{
  "type": "object",
  "properties": {
    "referencia": {
      "type": "string",
      "description": "Reference (META-…) or slug returned by pesquisar_imoveis"
    }
  },
  "required": [
    "referencia"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "referencia": {
      "type": "string"
    },
    "titulo": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "operacao": {
      "type": "string"
    },
    "preco_eur": {
      "type": [
        "number",
        "null"
      ]
    },
    "preco_texto": {
      "type": "string"
    }
  }
}
🟢calcular_custos_compra(preco_eur, finalidade, comprador_ate_35, com_credito)

Calculates the taxes and fees of buying a home in mainland Portugal with the official 2026 rates: IMT transfer tax (primary residence, second home, or under-35 exemption), stamp duty 0.8% and land registry (Casa Pronta). / Calcula IMT, imposto do selo e registo com as tabelas de 2026.

Input Schema

{
  "type": "object",
  "properties": {
    "preco_eur": {
      "type": "number",
      "description": "Purchase price in euros"
    },
    "finalidade": {
      "type": "string",
      "enum": [
        "habitacao_propria",
        "secundaria"
      ],
      "description": "habitacao_propria = buyer's permanent home; secundaria = second home, investment or rental"
    },
    "comprador_ate_35": {
      "type": "boolean",
      "description": "true if all buyers are 35 or younger and it is their permanent home (IMT exemption up to 330,539 €)"
    },
    "com_credito": {
      "type": "boolean",
      "description": "true if financed with a mortgage (registry fee is higher)"
    }
  },
  "required": [
    "preco_eur"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "imt_eur": {
      "type": "number"
    },
    "imposto_selo_eur": {
      "type": "number"
    },
    "registo_eur": {
      "type": "number"
    },
    "total_eur": {
      "type": "number"
    },
    "fonte": {
      "type": "string"
    }
  }
}
🟢consultar_precos_mercado(zona)

Official median sale price per m² of homes sold, from Statistics Portugal (INE), for Lisbon, Cascais, Oeiras, Lisbon parishes and Portugal, plus buyer-origin and new-vs-existing splits. / Preço mediano por m² das casas vendidas, segundo o INE.

Input Schema

{
  "type": "object",
  "properties": {
    "zona": {
      "type": "string",
      "description": "Municipality or Lisbon parish, e.g. Cascais, Oeiras, Lisboa, Avenidas Novas, Parque das Nações. Empty = overview"
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "zona": {
      "type": [
        "string",
        "null"
      ]
    },
    "eur_m2": {
      "type": [
        "number",
        "null"
      ]
    },
    "periodo": {
      "type": "string"
    },
    "fonte": {
      "type": "string"
    },
    "dados": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  }
}
🟢consultar_guia_estrangeiro(idioma)

Step-by-step guide for foreigners buying property in Portugal: NIF tax number, bank account, promissory contract (CPCV), taxes, deed, and the current Golden Visa rules (real estate no longer qualifies since Law 56/2023). / Passos para um estrangeiro comprar casa em Portugal.

Input Schema

{
  "type": "object",
  "properties": {
    "idioma": {
      "type": "string",
      "enum": [
        "en",
        "pt"
      ],
      "description": "Answer language (default en)"
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "passos": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "golden_visa": {
      "type": "string"
    },
    "link": {
      "type": "string"
    }
  }
}
⚪marcar_visita(referencia, nome, telefone, email, dia_preferido, ...)

Registers a viewing request for a property. The property's consultant contacts the user to confirm date and time (the viewing is not confirmed automatically). / Regista um pedido de visita; o consultor confirma com o cliente.

Input Schema

{
  "type": "object",
  "properties": {
    "referencia": {
      "type": "string",
      "description": "Property reference (META-…) or slug"
    },
    "nome": {
      "type": "string",
      "description": "User's name (the person to be contacted)"
    },
    "telefone": {
      "type": "string",
      "description": "User's phone with country code (phone or email required)"
    },
    "email": {
      "type": "string",
      "description": "User's email (phone or email required)"
    },
    "dia_preferido": {
      "type": "string",
      "description": "Preferred date, YYYY-MM-DD"
    },
    "hora_preferida": {
      "type": "string",
      "description": "Preferred time, HH:MM (optional)"
    },
    "mensagem": {
      "type": "string",
      "description": "Anything the consultant should know"
    },
    "consentimento_rgpd": {
      "type": "boolean",
      "description": "Required. true only if the user agreed to Metastate's privacy policy (https://metastate.pt/privacidade) to be contacted; ask them first. / Obrigatório: true só se o utilizador aceitou a Política de Privacidade para ser contactado."
    },
    "assistente": {
      "type": "string",
      "description": "Name of the assistant/agent making the request (optional)"
    }
  },
  "required": [
    "referencia",
    "nome",
    "consentimento_rgpd"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "registado": {
      "type": "boolean"
    },
    "consultor": {
      "type": "string"
    },
    "imovel": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}
⚪pedir_avaliacao(zona, area_m2, tipologia, estado, extras, ...)

Indicative sale value range for a property in Portugal from comparable listings in Metastate's portfolio, and a follow-up from a consultant for a full valuation with a visit. / Estimativa de valor e contacto de um consultor.

Input Schema

{
  "type": "object",
  "properties": {
    "zona": {
      "type": "string",
      "description": "Municipality or area, e.g. Cascais"
    },
    "area_m2": {
      "type": "number",
      "description": "Gross private area in m²"
    },
    "tipologia": {
      "type": "string",
      "description": "Layout code, e.g. T3, V4"
    },
    "estado": {
      "type": "string",
      "description": "Condition: new, renovated, good, needs work"
    },
    "extras": {
      "type": "string",
      "description": "e.g. balcony, garage, sea view, pool"
    },
    "nome": {
      "type": "string",
      "description": "Owner's name"
    },
    "contacto": {
      "type": "string",
      "description": "Owner's phone or email"
    },
    "consentimento_rgpd": {
      "type": "boolean",
      "description": "Required. true only if the user agreed to Metastate's privacy policy (https://metastate.pt/privacidade) to be contacted; ask them first. / Obrigatório: true só se o utilizador aceitou a Política de Privacidade para ser contactado."
    }
  },
  "required": [
    "zona",
    "area_m2",
    "nome",
    "contacto",
    "consentimento_rgpd"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "estimativa_min_eur": {
      "type": "number"
    },
    "estimativa_max_eur": {
      "type": "number"
    },
    "amostra_zona": {
      "type": [
        "number",
        "null"
      ]
    },
    "registado": {
      "type": "boolean"
    }
  }
}
⚪falar_com_consultor(nome, telefone, email, interesse, referencia, ...)

Leaves a contact request for a Metastate consultant (buy, sell, rent or other), in Portuguese, English, Spanish or French. / Deixa um pedido de contacto para um consultor.

Input Schema

{
  "type": "object",
  "properties": {
    "nome": {
      "type": "string",
      "description": "User's name"
    },
    "telefone": {
      "type": "string",
      "description": "User's phone with country code"
    },
    "email": {
      "type": "string",
      "description": "User's email"
    },
    "interesse": {
      "type": "string",
      "enum": [
        "comprar",
        "vender",
        "arrendar",
        "outro"
      ],
      "description": "comprar = buy, vender = sell, arrendar = rent, outro = other"
    },
    "referencia": {
      "type": "string",
      "description": "Related property reference (optional)"
    },
    "mensagem": {
      "type": "string",
      "description": "What the user is looking for or wants to know"
    },
    "consentimento_rgpd": {
      "type": "boolean",
      "description": "Required. true only if the user agreed to Metastate's privacy policy (https://metastate.pt/privacidade) to be contacted; ask them first. / Obrigatório: true só se o utilizador aceitou a Política de Privacidade para ser contactado."
    },
    "assistente": {
      "type": "string",
      "description": "Name of the assistant/agent (optional)"
    }
  },
  "required": [
    "nome",
    "mensagem",
    "consentimento_rgpd"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "registado": {
      "type": "boolean"
    },
    "consultor": {
      "type": "string"
    },
    "imovel": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools