flatin.pt — Portuguese property taxes

Portuguese property taxes: IMT on purchase and IMI rates for all 308 municipalities

Should I use this

Quality & Safety

A
Description quality
93%
Schema completeness
97%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'imi_annual_cost' description lacks action verbin imi_annual_cost

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~881Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (0.69% 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": {
    "property-taxes": {
      "url": "https://flatin.pt/mcp"
    }
  }
}

Remote endpoints

https://flatin.pt/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢imt_calculate(value, territory, primary_home, buyer_is_young)

What buying a home in Portugal costs on top of the price: IMT (property transfer tax), Imposto do Selo (stamp duty) and an estimate for the deed and registration. Official 2026 tables, including the reduced IMT table and the stamp duty deduction for buyers aged 35 or under. Returns amounts in cents and formatted in euros, with the source of the tables.

Input Schema

{
  "type": "object",
  "properties": {
    "value": {
      "type": "string",
      "description": "Property price in euros, e.g. 250000 or 250000.50"
    },
    "territory": {
      "type": "string",
      "enum": [
        "continente",
        "regioes_autonomas"
      ],
      "description": "Mainland Portugal (continente) or the Azores and Madeira (regioes_autonomas). Default: continente"
    },
    "primary_home": {
      "type": "boolean",
      "description": "The buyer's own permanent home (habitação própria e permanente). Default: true"
    },
    "buyer_is_young": {
      "type": "boolean",
      "description": "The buyer is 35 or under on the date of the deed, is buying their first own permanent home, is not an IRS dependant and has owned no residential property in the previous three years. Applies the reduced IMT table and the stamp duty deduction (art. 7.º-A Código do Imposto do Selo; not applied above the second band of the young buyers' table). Only applies when primary_home is true. Default: false"
    }
  },
  "required": [
    "value"
  ]
}
🟢imi_rate(municipality)

The yearly property tax (IMI) rate in one Portuguese municipality, by name or four-digit code. Collected from the Autoridade Tributária portal and checked line by line for all 308 municipalities. Where a municipality sets no single rate (it is set per parish), the answer says so instead of returning zero.

Input Schema

{
  "type": "object",
  "properties": {
    "municipality": {
      "type": "string",
      "description": "Municipality name in Portuguese (Porto, Lisboa, Vila Nova de Gaia) or its four-digit code (1312)"
    }
  },
  "required": [
    "municipality"
  ]
}
🟢imi_annual_cost(municipality, vpt)

Yearly IMI for an urban property (prédio urbano) with a given taxable value (VPT) in one municipality, at the municipality's urban rate. VPT is the tax authority's valuation, not the purchase price: ask the user for it instead of using the price.

Input Schema

{
  "type": "object",
  "properties": {
    "municipality": {
      "type": "string",
      "description": "Municipality name in Portuguese (Porto, Lisboa, Vila Nova de Gaia) or its four-digit code (1312)"
    },
    "vpt": {
      "type": "string",
      "description": "Valor Patrimonial Tributário — the taxable value of the property in euros. Not the purchase price"
    }
  },
  "required": [
    "municipality",
    "vpt"
  ]
}
🟢request_consultation(language)

How to put the user in touch with a licensed real estate agency in Portugal: returns the form link and the GDPR (RGPD) consent text in the user's language. The request is submitted by the person, not on their behalf.

Input Schema

{
  "type": "object",
  "properties": {
    "language": {
      "type": "string",
      "description": "The user's language: pt, en, ru, ua, de, fr, nl (uk is accepted too). Default: en"
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools