Skip to main content
Glama

flatin.es — new builds and local data in Spain

Compare 2–4 places in Spain on local data

compare_places
Read-onlyIdempotent

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.

Input 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).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / indicators / items / enum
      Previous value: -[
      -  "ibi",
      -  "padron29005",
      -  "padron65032",
      -  "mivau_valor_tasado_total",
      -  "vt_viviendas",
      -  "vt_plazas",
      -  "vt_pct",
      -  "rent_m2_median",
      -  "rent_m2_p25",
      -  "rent_m2_p75",
      -  "income_person",
      -  "income_household",
      -  "income_uc_median",
      -  "ftth_pct",
      -  "mbps100_pct",
      -  "gbps1_pct",
      -  "g5_pct",
      -  "foreign_total",
      -  "foreign_gb",
      -  "foreign_fr",
      -  "foreign_de",
      -  "foreign_nl",
      -  "foreign_be",
      -  "foreign_it",
      -  "foreign_ro",
      -  "foreign_ua",
      -  "foreign_ru",
      -  "foreign_ma",
      -  "pop_total_censo",
      -  "share_65plus",
      -  "share_0_15",
      -  "aq_no2_annual",
      -  "aq_pm10_annual",
      -  "aq_pm25_annual",
      -  "aq_o3_days",
      -  "clima_tmean_jan",
      -  "clima_tmin_jan",
      -  "clima_tmax_aug",
      -  "clima_precip_year",
      -  "clima_days_ge_30",
      -  "clima_sun_hours",
      -  "clima_prov_tmax",
      -  "clima_prov_tmin",
      -  "clima_prov_prec",
      -  "crime_ttm_total",
      -  "crime_ttm_violent",
      -  "crime_ttm_home",
      -  "crime_ttm_cyber",
      -  "tourist_occ_pct",
      -  "flood_t100_pct"
      -]New value: +[
      +  "ibi",
      +  "padron29005",
      +  "padron65032",
      +  "mivau_valor_tasado_total",
      +  "vt_viviendas",
      +  "vt_plazas",
      +  "vt_pct",
      +  "rent_m2_median",
      +  "rent_m2_p25",
      +  "rent_m2_p75",
      +  "income_person",
      +  "income_household",
      +  "income_uc_median",
      +  "ftth_pct",
      +  "mbps100_pct",
      +  "gbps1_pct",
      +  "g5_pct",
      +  "foreign_total",
      +  "foreign_gb",
      +  "foreign_fr",
      +  "foreign_de",
      +  "foreign_nl",
      +  "foreign_be",
      +  "foreign_it",
      +  "foreign_ro",
      +  "foreign_ua",
      +  "foreign_ru",
      +  "foreign_ma",
      +  "pop_total_censo",
      +  "share_65plus",
      +  "share_0_15",
      +  "aq_no2_annual",
      +  "aq_pm10_annual",
      +  "aq_pm25_annual",
      +  "aq_o3_days",
      +  "clima_tmean_jan",
      +  "clima_tmin_jan",
      +  "clima_tmax_aug",
      +  "clima_precip_year",
      +  "clima_days_ge_30",
      +  "clima_sun_hours",
      +  "clima_prov_tmax",
      +  "clima_prov_tmin",
      +  "clima_prov_prec",
      +  "crime_ttm_total",
      +  "crime_ttm_violent",
      +  "crime_ttm_home",
      +  "crime_ttm_cyber",
      +  "tourist_occ_pct",
      +  "flood_t100_pct",
      +  "afford_buy_years",
      +  "afford_rent_pct",
      +  "dwell_vacant_pct",
      +  "dwell_sporadic_pct",
      +  "crime_allanamiento",
      +  "crime_usurpacion"
      +]
  2. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses genuinely useful behavior: per-figure unit, period, level fallback to province when a municipality has none, source credit and date, station distance, and the 'not_available' result for export-restricted indicators. It also notes that answers link the source pages, so an agent knows the return payload shape.

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 scope and indicator list are front-loaded and the caveats come after, with no filler sentences. It is dense—one long run-on sentence—but every clause carries information an agent uses.

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

Completeness5/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 burden of describing returns and does so: per-figure metadata, province-level fallback, 'not_available' sentinel, and source links. Combined with annotations declaring a safe read-only operation, an agent has everything needed to call it correctly.

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 baseline is 3. The description largely restates what the schema already documents (default indicator list, place formats, export-restricted keys), adding the level-fallback nuance but little else beyond structured data.

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 opens with a specific verb+resource ('Side-by-side latest figures for 2–4 municipalities... or buyer zones') and enumerates the indicator families covered. It is clearly a multi-place comparison tool, but it never names the sibling tools (place_facts, ibi_rate, purchase_costs) an agent might otherwise pick, so sibling differentiation is left implicit.

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

Usage Guidelines4/5

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

It states the operational envelope clearly ('2–4 places', 'at most 12 indicators per call') and a real constraint ('Only places whose flatin.es page is published get figures'), which tells an agent when this will fail. It gives no explicit when-not or alternative routing to the single-indicator siblings.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources