Skip to main content
Glama

flatin.es — new builds and local data in Spain

Server Details

New-build homes on sale in Spain, buying costs, non-resident tax and local open data.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.8/5.0

Scored across 5 tools

Disambiguation4/5

Each tool targets a distinct resource: multi-place indicator comparison, single-place IBI rate, new-build listings, non-resident income tax, and purchase taxes/fees. There is minor overlap since compare_places can surface IBI figures that ibi_rate returns in single-municipality depth, but the descriptions make the intended use cases clear.

Naming Consistency4/5

All five names use clean snake_case and are readable and predictable. The only deviation is that compare_places uses a verb while the others (ibi_rate, newbuilds_in_place, non_resident_tax, purchase_costs) are noun phrases, a minor stylistic mismatch.

Tool Count4/5

Five tools is slightly lean but well-scoped for a niche Spanish property-data and tax-estimation service, and each tool clearly earns its place. No redundant or filler tools are present.

Completeness4/5

The set covers the core buyer journey: local market indicators, IBI, new-build inventory, and the two main tax/cost estimators. Minor gaps exist around discovering or listing which places have published pages, but agents can work around this via the linked flatin.es pages.

Available Tools

5 tools
compare_placesCompare 2–4 places in Spain on local dataA
Read-onlyIdempotent
Inspect

Side-by-side latest figures for 2–4 municipalities (provinces of Alicante, Málaga, Valencia, Murcia) or buyer zones: housing prices (MIVAU), rent (SERPAVI), IBI, population, income, tourist lets, foreigners, air quality and more — at most 12 indicators per call. Each figure has its unit, period, level (municipality, or province when the place has none), source credit and date, and station or point of interest with distance. Only places whose flatin.es page is published get figures; every answer links the flatin.es pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoLanguage of names and page links; default en.
placesYes2 to 4 places: a municipality of the provinces of Alicante, Málaga, Valencia or Murcia (name, slug, 'province/municipality' or 5-digit INE code) or a buyer zone (costa-blanca, costa-del-sol); prefix 'municipio:' / 'zona:' to disambiguate.
indicatorsNoUp to 12 indicator keys; default: mivau_valor_tasado_total, rent_m2_median, ibi, padron29005, income_person, vt_viviendas, vt_pct, foreign_total, share_65plus, aq_no2_annual, aq_pm25_annual, tourist_occ_pct. Keys whose source terms do not allow export answer 'not_available' (the value is on the page).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real operational context beyond that: only places with a published flatin.es page return figures, keys whose source terms disallow export answer 'not_available', and province-level fallback appears when a municipality has no data. The only missing element is an explicit error/empty-result behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core scope (2–4 places, side-by-side figures) is front-loaded in the opening clause, and the dense middle section enumerates the data domains efficiently. It is a single long sentence with some list-like padding around data sources, but nothing is redundant enough to be cut without losing coverage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden well: it states that each figure includes unit, period, level, source credit and date, plus station/POI distance, and that answers link the flatin.es pages. That is nearly everything an agent needs to interpret results; only explicit error/empty-result behavior is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents locale, place formats and indicator keys. The description largely restates structured constraints ('at most 12 indicators per call', province lists, buyer zone names) rather than adding new syntax or format meaning. Baseline 3 is the right call when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — 'Side-by-side latest figures for 2–4 municipalities ... or buyer zones' — and enumerates the covered geography (Alicante, Málaga, Valencia, Murcia), which pins the tool's scope precisely. An agent can distinguish this multi-place comparison tool from single-figure siblings like ibi_rate or purchase_costs without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the shape of the call: use it when comparing 2–4 places across many indicators. However, no sibling tool is named and there is no explicit 'use this instead of ibi_rate when...' routing, nor any when-not-to-use guidance, so an agent must infer the boundary itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ibi_rateIBI property-tax rate of a Spanish municipalityA
Read-onlyIdempotent
Inspect

Yearly IBI urbana rate (% of cadastral value) of a municipality, with year, provisional flag, source (Ministerio de Hacienda) and the flatin.es page.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoLanguage of names and page links; default en.
municipioYesMunicipality: name, slug, 'province/municipality' or 5-digit INE code.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safe-read profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower. The description adds genuine value by disclosing the return payload fields — year, provisional flag, and source (Ministerio de Hacienda) — plus the flatin.es page reference, which matters because no output schema exists. It stops short of noting rate-limit or coverage caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the resource definition front-loaded and the returned fields trailing. No filler sentences, though the trailing clause is a slightly dense list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter lookup with no output schema, the description covers what the value means, what accompanies it (year, provisional flag, source), and points to the originating page. Combined with annotations covering the safety profile and a 100%-covered schema, the definition is essentially complete; only cross-tool routing guidance is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (municipio with its four accepted forms, and the locale enum defaulting to en) are already fully documented in the schema. The description adds nothing beyond that, which is the expected baseline here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope: the yearly IBI urbana rate for a Spanish municipality, expressed as % of cadastral value. This is unambiguous and highly specific. It does not differentiate itself from siblings like purchase_costs or non_resident_tax, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this tool versus alternatives such as purchase_costs or non_resident_tax, and no preconditions or exclusions. Usage must be inferred purely from the tool name and the property-tax definition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

newbuilds_in_placeNew builds on sale in a place (Spain)A
Read-onlyIdempotent
Inspect

New-build developments on sale in a municipality, buyer zone or province of the flatin.es catalogue: at most 25 per call, sorted by name, no pagination — the full list is on the linked flatin.es page. Facts are the developer's own, latest check only, with attribution.

ParametersJSON Schema
NameRequiredDescriptionDefault
placeYesMunicipality (name, slug, 'province/municipality' or 5-digit INE code), buyer zone (costa-blanca, costa-del-sol) or province; prefix 'provincia:' / 'zona:' to disambiguate.
localeNoLanguage of names and page links; default en.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint, idempotentHint and openWorldHint=false already declared, the annotations cover the safety profile. The description adds genuinely useful context beyond them: a hard cap of 'at most 25 per call,' ordering ('sorted by name'), absence of pagination, and a data-provenance caveat ('developer's own, latest check only, with attribution'). This is meaningful behavioral disclosure, though return fields are not described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is compact and front-loads the core purpose before the operational details, with no filler sentences. The single dense sentence packs several facts (scope, cap, ordering, pagination, provenance) efficiently, though the run-on structure is slightly hard to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully explains result size, ordering, pagination behavior, and the data source/attribution caveat, which is most of what an agent needs to call it correctly. The main remaining gap is the shape of returned fields, but the linked page reference partially covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are fully documented in the schema itself, establishing the baseline of 3. The description mentions 'municipality, buyer zone or province' but adds no syntax, format, or disambiguation detail beyond what the 'place' schema description already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and scope: 'New-build developments on sale in a municipality, buyer zone or province of the flatin.es catalogue.' An agent can immediately tell this is a listing tool for new-build property, which is clearly distinct from the tax/cost siblings. It stops short of explicitly naming or contrasting against any sibling, keeping it at a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the geographic scope of inputs ('municipality, buyer zone or province') and notes the result cap and that 'the full list is on the linked flatin.es page,' which implies usage context. However, it never states when to prefer this over a sibling or any prerequisite/exclusion, so guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

non_resident_taxSpanish non-resident income tax (IRNR, modelo 210)A
Read-onlyIdempotent
Inspect

Yearly IRNR of a non-resident owner of a Spanish home: imputed income (1.1 % or 2 % of the cadastral value for days not let) and rental income (EU/EEA: 19 % net of expenses; others: 24 % on gross rent). Every line cites its law and check date; rules pending validation (RDL 29/2026) are listed, not applied. An estimate, not tax advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoLanguage of names and page links; default en.
revisedYestrue if the cadastral value was revised in a general valuation in force in the tax year or the ten previous ones (1.1 % instead of 2 %, LIRPF art. 85.1). The RDL 29/2026 extension to revisions since 2012 is not in force yet: older revisions are false.
days_letNoDays let in the tax year (owned all year; the previous calendar year, 365 or 366 days); required when rent_eur_year > 0.
eu_residentYesTax resident of another EU/EEA state with tax information exchange (19 %, expenses deductible) — else 24 % on gross rent.
rent_eur_yearNoRent received in the year, whole euros; default 0.
expenses_eur_yearNoDeductible expenses linked to the letting (only EU/EEA residents may deduct them); default 0.
cadastral_value_eurYesValor catastral of the property (IBI receipt), whole euros.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish a safe, idempotent, closed-world read, and the description adds genuinely new behavioral context: every output line cites its law and check date, rules pending validation under RDL 29/2026 are listed but not applied, and the result is an estimate rather than advice. That is disclosure beyond what the structured fields provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the opening clause and every sentence carries tax-relevant content with no filler. The first sentence is dense with parenthetical rates, which slightly slows parsing but does not waste words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully signals the shape of the result (line items with law citations) and the pending-rule handling, and the parameters are fully documented in the schema. It stops short of describing the output structure or units in detail, but for a read-only calculator it is close to complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the 1.1%/2% revised-value logic and the 19%/24% residency split are already documented per-parameter. The description restates those rates at a high level but adds no syntax, format, or edge-case detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — computing yearly IRNR for a non-resident owner of a Spanish home — and spells out the two income branches (imputed and rental). This is clearly distinct from all siblings (ibi_rate, purchase_costs, newbuilds_in_place, compare_places), which none touch income tax.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The domain (a non-resident owning a Spanish home) is implied by the description, but there is no explicit when-to-use framing, no prerequisites, and no reference to alternatives. The closing 'An estimate, not tax advice' is a caveat, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

purchase_costsPurchase costs of a home in SpainA
Read-onlyIdempotent
Inspect

Taxes and fees of buying a home in Spain: VAT + stamp duty (AJD) for a new build or transfer tax (ITP) for a resale at the general rate of the tax territory, plus notary and land registry by the official scales. Every line cites its law, article and the date it was checked. An estimate, not tax advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
placeYesWhere the property is in Spain: municipality or province name, 5-digit INE code of the municipality or 2-digit province code; 'province/municipality' or a 'municipio:' / 'provincia:' prefix to disambiguate.
localeNoLanguage of names and page links; default en.
new_buildYestrue — first sale by the developer (VAT + stamp duty AJD); false — resale (transfer tax ITP).
price_eurYesPrice in whole euros WITHOUT VAT (new build) or the deed price (resale): taxes are computed on it.
mortgage_eurNoLoan amount, optional: in Spain the lender pays the mortgage AJD, notary and registration (Ley 5/2019).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavior: every output line cites law, article, and verification date, and it discloses that fees use 'the general rate of the tax territory' and 'official scales' rather than any negotiated figure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the purpose, with no filler. The legal-citation and disclaimer sentences are compact and additive, though the tax-component enumeration is somewhat dense for an opening clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does useful work by signaling an itemized, law-cited result. Combined with a fully documented 5-parameter schema covering the mortgage carve-out (Ley 5/2019), an agent has enough to call it correctly; only the return structure and estimation assumptions remain slightly under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so place, locale, new_build, price_eur, and mortgage_eur are all fully documented in the schema. The description's tax-regime explanation largely restates the new_build schema text, adding little parameter-level detail beyond confirming that place drives the applicable regional rate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise resource (taxes and fees of buying a home in Spain) and enumerates the specific components computed: VAT + AJD for new builds, ITP for resales, plus notary and registry fees. This cleanly separates it from siblings like ibi_rate (annual property tax) and non_resident_tax.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scope implies usage (compute closing costs for a purchase) and the new_build distinction routes between the two tax regimes. However, there is no explicit guidance on when to use this versus compare_places or newbuilds_in_place, and no stated prerequisites or exclusions beyond the 'estimate, not tax advice' caveat.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedcompare_places
    • First observedibi_rate
    • First observednewbuilds_in_place
    • First observednon_resident_tax
    • First observedpurchase_costs

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables users to calculate Portuguese property purchase costs (IMT, stamp duty, deed/registration) and query annual IMI rates and costs for all 308 municipalities, with sourced figures.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables answering business questions about Spanish places by resolving place names and returning population, household and income statistics down to municipality, district and census tract level from official INE data, cross-checked between sources with province, region and country benchmarks. Every figure is delivered with its publisher, dataset id, data year and retrieval date, alongside caveat checks for suppressed, stale, thin-sample or estimated values.
    13
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI assistants and agents to query Spanish public statistics from INE, official BOE publications, and Catastro property data via typed, read-only tools with structured, source-citable results.
    8
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides access to official Spanish fiscal data and tools based on AEAT and BOE sources, covering income tax, VAT, and regional deductions. It enables AI assistants to answer tax-related queries and verify filing deadlines using verified information.
    10
    13 npm
    13
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources