Skip to main content
Glama

Verithic · official data by municipality

Server Details

Data by municipality near Barcelona and Madrid: €/m², IBI, rent, minutes. Every figure sourced

Ownership verified
Status
Healthy
Uptime
100.0% over 25 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
–

TDQS

A3.8/5.0

Scored across 14 tools

Disambiguation4/5

Most tools target a distinct framing: lookup (buscar_municipios), full profile (ficha_municipio), bulk filtered list (listar_municipios), pairwise comparison (comparar_municipios), ranking (ranking_por_perfil), and curated shortlist (mas_por_menos). The overlap between listar_municipios, ranking_por_perfil, mas_por_menos and ficha_municipio is real, but descriptions give clear signals about when to pick each; buscar_municipios vs listar_municipios is only mildly confusable.

Naming Consistency4/5

All names are snake_case in Spanish/Catalan and highly readable. There is a mild split between verb-led actions (buscar_*, comparar_*, calcular_*, listar_*) and noun-phrase resources (ficha_municipio, precio_parada, municipios_similares, zona_tensionada_2027), but the pattern is predictable enough to navigate.

Tool Count5/5

14 tools is squarely in the healthy range and each maps to a recognizable user question (search, profile, compare, rank, budget, commute line, regulation status, methodology). No filler or near-duplicate tools inflate the count.

Completeness4/5

The surface covers discovery, full profiles, comparisons, rankings, rent series, budget/affordability, moving costs, listing checks, transit-line pricing, regulatory status and provenance — a broad lifecycle. Minor gaps: price-per-m² history is only reachable via ficha_municipio (no standalone trend tool), and there is no aggregate/statistics or export operation.

Available Tools

14 tools
alquiler_ano_a_anoRent year by year · El alquiler, año a año («¿Y la tuya?»)A
Read-onlyIdempotent
Inspect

Average rent of registered contracts per full year for one municipality (Generalitat de Catalunya, dataset qww9-bvhh): € per month and number of contracts each year, with a warning when a year has fewer than 100 contracts, and one sentence with the first and last reliable year. Without a municipality it lists the towns with a long enough series. Source, period and read date included; a year with no value is null with its reason. — Alquiler medio de los contratos registrados por año completo para un municipio (Generalitat de Catalunya, conjunto qww9-bvhh): €/mes y número de contratos cada año, con aviso cuando un año tiene menos de 100 contratos, y una frase con el primer y el último año fiables. Sin municipio lista las poblaciones con serie suficiente. Con fuente, periodo y fecha de lectura; un año sin valor sale a null con su motivo.

NameRequiredDescriptionDefault
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es
municipioNoName or slug (optional). Nombre o slug (opcional).

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description is not obliged to restate it. It instead adds genuinely useful behavioral detail beyond annotations: a warning below 100 contracts, the first/last reliable year sentence, inclusion of source/period/read date, and null-with-reason for missing years.

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

Conciseness3/5

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

The content is front-loaded with the purpose, but the entire description is duplicated verbatim in Spanish and English, effectively doubling its length without adding information. Every sentence is relevant once, yet the bilingual repetition is pure redundancy for an agent consuming this definition.

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 and does it well: it specifies the units (€/month), contract counts, the <100-contract warning, the reliable-year sentence, provenance fields, and null semantics. Only the shape/ordering of the returned series is left implicit.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description goes beyond the schema by explaining the semantic effect of omitting municipio (it lists towns with a sufficient series), which the schema only labels 'optional'. The language enum's default is already documented in the schema.

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 first sentence states a precise verb and resource: average rent of registered contracts per full year for one municipality, with the specific dataset cited (qww9-bvhh). It clearly distinguishes a per-year time series from what siblings like comparar_municipios or ficha_municipio would do, though it never names those alternatives explicitly.

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?

It discloses the fallback behavior when no municipality is supplied ('Without a municipality it lists the towns with a long enough series'), which implicitly tells the agent this tool doubles as a lister. However, it gives no explicit when-to-use versus-when-to-use-something-else guidance, and it does not route the agent to buscar_municipios or listar_municipios for that fallback case.

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

buscar_municipiosFind municipalities · Buscar municipiosA
Read-onlyIdempotent
Inspect

Finds municipalities by part of the name and/or county and returns their slug and page link, to use with the other tools. Does not return figures. — Busca municipios por parte del nombre y/o comarca y devuelve su slug y el enlace a la ficha, para usarlos con las otras herramientas. No devuelve cifras.

NameRequiredDescriptionDefault
zonaNoZone: bcn (default, published) or madrid (published: Madrid, every figure with source and date, missing values null with their reason). Zona.bcn
limiteNoHow many to return (default 10). Cuántos devolver.
comarcaNoCounty, e.g. “Maresme” (optional). Comarca.
consultaNoPart of the name (optional). Parte del nombre.
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: what the tool returns (slug plus page link) and a negative scope statement (no figures), which matters because there is no output schema.

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

Conciseness3/5

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

Content is front-loaded and the scope-exclusion sentence is well placed, but the entire description is duplicated in Spanish, roughly doubling length without adding information for the reader. It is defensible for a bilingual server but not maximally concise.

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 five optional parameters, no output schema, and full annotation coverage, the description supplies the two things that would otherwise be missing: the return shape (slug + page link) and the boundary against figure-returning tools. Only the routing decision against listar_municipios remains unaddressed.

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 all five parameters including the zona enum nuance and limite bounds are already documented in the schema. The description only restates that matching is by partial name/county, adding little beyond the field descriptions. Baseline 3 applies.

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 and resource (finds municipalities) plus the matching criteria (part of the name and/or county) and the returned fields (slug and page link). The clause 'Does not return figures' cleanly separates it from the analysis/price siblings, though it never distinguishes itself from the closest sibling, listar_municipios.

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?

'to use with the other tools' implies a chaining/lookup role, and 'Does not return figures' implies when-not-to-use-it-for-data questions, but no alternative tool is named and no explicit condition for choosing search over listing is given. Usage is implied rather than stated.

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

buscar_por_presupuestoSearch by budget · Buscar por presupuesto y minutos a BarcelonaA
Read-onlyIdempotent
Inspect

Given a purchase budget, says how many square metres of used housing it buys in each municipality with a published price (budget / average price per m²), sorted from most to least space. Each municipality carries its public transport minutes to Plaça Catalunya (door to door, leaving 7–9am on a weekday) and, as before, its driving minutes. Can be limited by maximum public transport minutes, by maximum driving minutes and by county. It is a municipal average without taxes or purchase costs, not the price of a specific flat. — Con un presupuesto de compra, dice cuántos metros de vivienda usada da en cada municipio con precio publicado (presupuesto / precio medio del m²), ordenado de más a menos metros. Cada municipio trae sus minutos en transporte público a plaza Catalunya (puerta a puerta, saliendo de 7 a 9 en día laborable) y, como antes, sus minutos en coche. Se puede acotar por minutos máximos en transporte público, por minutos máximos en coche y por comarca. Es una media municipal sin impuestos ni gastos, no el precio de un piso concreto.

NameRequiredDescriptionDefault
limiteNoHow many municipalities to return (default 10). Cuántos municipios devolver.
comarcaNoFilter by county, e.g. “Maresme” or “Barcelonès” (optional). Filtrar por comarca.
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es
presupuesto_eurYesPurchase budget in euros. Presupuesto de compra en euros.
max_minutos_coche_barcelonaNoMaximum driving minutes to Plaça Catalunya, without traffic (optional). Máximo de minutos en coche, sin tráfico.
max_minutos_transporte_publico_barcelonaNoMaximum minutes by public transport to Plaça Catalunya, door to door, leaving 7–9am on a weekday (optional). Towns with no useful service are excluded. Máximo de minutos en transporte público, puerta a puerta, saliendo de 7 a 9 en día laborable.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description still adds real context: the figure is a municipal average excluding taxes and purchase costs, not a specific flat, and transport minutes are door-to-door departing 7–9am on a weekday. It omits pagination/rate behavior, but the data caveats are genuinely useful.

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

Conciseness3/5

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

The core sentence is well front-loaded and dense with useful detail, but the entire description is then repeated verbatim in Spanish, roughly doubling its length. For an English-reading agent the second half is pure redundancy, which costs it points on conciseness.

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?

There is no output schema, so the description carries the return-shape burden, and it does so well: it says what each municipality carries (m², public transport minutes, driving minutes) and that results are sorted descending. What is missing is minor — it never states the maximum row cap of 25 or the budget floor/ceiling, though those live in the schema.

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 all six parameters, including the county filter and the two minute limits. The description restates these constraints and adds only marginal nuance (the no-taxes caveat, the door-to-door assumption), so baseline 3 is appropriate.

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: given a budget, compute the square metres of used housing each municipality buys, sorted most-to-least. The formula (budget / average price per m²) and the supplementary transport-minutes payload make the operation unmistakable and clearly distinct from generic sibling tools like buscar_municipios or comparar_municipios.

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 what can be constrained (max public transport minutes, max driving minutes, county) but never says when to pick this tool over siblings such as comparar_municipios or ranking_por_perfil. Usage is implied by the operation rather than stated, so it meets the minimum-viable bar without routing guidance.

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

calcular_mudanzaIs moving worth it? · ¿Me compensa mudarme?A
Read-onlyIdempotent
Inspect

Balance of moving between two municipalities in the Barcelona area, with official averages that can be replaced by the user's own figures: rent or mortgage payment plus property tax a month, transfer tax (ITP) with the Catalan scale or the 5% young-buyer rate, notary and land-registry fees from the official tariffs, how many m² the current home buys there, money left after selling and buying, months to recover the cost of moving, and commute minutes and hours a year to central Barcelona. Every line carries its type (data, rule, sum or user figure), source and read date. Never concludes whether to move. — Saldo de mudarse entre dos municipios de Barcelona y alrededores, con medias oficiales que el usuario puede sustituir por sus cifras: alquiler o cuota más IBI al mes, ITP con la escala catalana o el 5 % joven, notaría y registro por arancel, metros que compra tu vivienda allí, capital que queda tras vender y comprar, meses para recuperar el coste del cambio, y minutos y horas al año de trayecto al centro de Barcelona. Cada línea con su tipo (dato, norma, cálculo o cifra del usuario), fuente y fecha. Nunca concluye si conviene mudarse.

NameRequiredDescriptionDefault
m2NoSize of the current home in m² (optional). Metros de su vivienda.
modoNotransporte_publico
ahoraNoRents or owns today. Alquila o tiene casa.inquilino
desdeYesWhere the user lives now (name or slug). Dónde vive ahora.
hastaYesMunicipality being considered (not Barcelona). Municipio que se plantea.
despuesNoWants to rent or buy there. Quiere alquilar o comprar allí.alquilar
distritoNoBarcelona district slug if desde is Barcelona (e.g. gracia, eixample). Distrito de Barcelona.
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es
itp_jovenNoMeets the 5% young-buyer ITP (35 or under, taxable base ≤ €36,000, main home).
ahorros_eurNoSavings put into the purchase (optional).
plazo_aniosNoMortgage term in years (optional; default INE average).
minutos_actualesNoMinutes today to central Barcelona (needed if desde is Barcelona).
tipo_interes_pctNoMortgage rate in % (optional; default INE average).
precio_destino_eurNoPrice of the home there (optional).
valor_vivienda_eurNoValue of the current home if owner (optional).
dias_semana_al_centroNoDays a week commuting to central Barcelona (default 5; 0 = none).
alquiler_actual_eur_mesNoCurrent rent a month (optional).
alquiler_destino_eur_mesNoRent there a month (optional).

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, so the bar is lower. The description still adds real value beyond them: every output line carries its type (data/rule/sum/user figure), source and read date, and it explicitly states the tool never concludes whether to move. No rate limits or auth needs are mentioned, but they are irrelevant for a local calculator.

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

Conciseness3/5

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

Content is front-loaded with the balance of moving and every clause describes a distinct output line, so little is wasted. However, the identical text is repeated verbatim in Spanish, doubling the length without adding information for the agent.

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 18 params at 94% coverage and no output schema, the description effectively serves as the output description, enumerating return lines and their metadata, and states the tool's non-recommendation boundary. This is nearly complete; only explicit sibling routing is missing.

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 94%, so the schema already documents the 18 parameters. The description ties them to the calculation model (user figures override official averages) but adds little per-parameter meaning beyond what the schema 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 verb+resource: it computes the balance of moving between two municipalities in the Barcelona area, enumerating the exact figures produced (rent+IBI, ITP, notary/registry, m² bought, recovery months, commute time). This clearly distinguishes it from generic comparison siblings. It does not, however, explicitly name any sibling (e.g. comparar_municipios) to differentiate.

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 only implied: the framing 'Is moving worth it?' and the note that official averages can be replaced by user figures signals the evaluate-a-move scenario. There is no explicit when-to-use vs alternatives guidance and no exclusion rules routing to the 13 sibling tools.

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

comparar_anuncioIs the asking price normal? · ¿Lo que piden es normal aquí?A
Read-onlyIdempotent
Inspect

Compares the price (or rent) of a specific listing with the published figure for its municipality: price per m² of homes sold (Generalitat registered sales or the Notariado) or rent (registered contracts in Catalonia, rent declared to the tax office in Madrid). Returns the listing's €/m² or rent, the town figure with its source, period, read date and licence, the difference in % and euros, and a band: below, in line (±5%) or above. It is the town average, not a valuation of the flat; the rent average mixes all sizes. Nothing is stored. — Compara el precio (o el alquiler) de un anuncio concreto con la cifra publicada de su municipio: precio €/m² de las compraventas (registradas de la Generalitat o ante notario) o alquiler (contratos registrados en Cataluña, renta declarada a Hacienda en Madrid). Devuelve el €/m² o la renta del anuncio, la cifra del municipio con fuente, periodo, fecha de lectura y licencia, la diferencia en % y en euros, y una banda: por debajo, en la media (±5 %) o por encima. Es la media del municipio, no una tasación del piso; la media del alquiler mezcla todos los tamaños. No se guarda nada.

NameRequiredDescriptionDefault
m2NoBuilt area in m² (required to buy). Metros construidos (obligatorio al comprar).
modoYescomprar (buy, price and m²) or alquilar (rent, € a month). Comprar o alquilar.
zonaNoArea: bcn (default) or madrid. Zona.bcn
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es
municipioYesName or slug. Nombre o slug.
precio_eurYesListing price in euros (buy) or monthly rent in euros (rent). Precio del anuncio o renta al mes.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, and the description reinforces 'Nothing is stored' while adding real substance: data sources (Generalitat/Notariado registrations, Catalonia contracts, Madrid tax declarations), source period, read date, licence, and the ±5% banding rule. It stops short of a 5 only because return shape details border on output documentation the tool lacks elsewhere.

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

Conciseness3/5

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

The English and Spanish versions are full duplicates of the same content, roughly doubling length with no new information. The lead sentence is well front-loaded, but the verbatim bilingual repetition is waste an agent must wade through.

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 return burden and does so thoroughly: €/m² or rent, municipal figure with source/period/read date/licence, % and euro difference, and the below/in-line/above band. An agent has everything needed to call and interpret it.

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 parameters (m2, modo, zona, precio_eur, municipio, language) are already fully documented in the schema. The description restates the buy/rent and m²-required-for-buy logic without adding format or edge-case detail, 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?

Uses a specific verb (compares) with a precisely bounded resource: one listing's price/rent vs. the published municipal figure, per source. It is clearly distinguishable from siblings like comparar_municipios (town-to-town) or precio_parada because it anchors on a single asking price.

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?

Gives clear context for when the result is appropriate and, importantly, the limits of its meaning ('town average, not a valuation of the flat'; 'rent average mixes all sizes'), which steers correct use. It never explicitly names an alternative sibling or says when not to use it, so it stops short of a 5.

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

comparar_municipiosCompare two municipalities · Comparar dos municipiosA
Read-onlyIdempotent
Inspect

Puts two municipalities side by side on what weighs most when choosing: price per m², property tax (IBI), rent, driving and public transport minutes to Barcelona, beach, rent-cap zone, tourist flats and how satisfied residents are. Returns each figure with its source and the difference when both sources publish it. For small municipalities the resident figure is their county average and is labelled as such. — Pone dos municipios lado a lado en lo que más pesa al elegir: precio €/m², IBI, alquiler, minutos a Barcelona en coche y en transporte público, playa, zona tensionada, viviendas turísticas y satisfacción de los vecinos. Devuelve la cifra de cada uno con su fuente y la diferencia cuando las dos fuentes publican el dato. En municipios pequeños la cifra de vecinos es la media de su comarca y así se rotula.

NameRequiredDescriptionDefault
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es
municipio_aYesFirst municipality, name or slug. Primer municipio.
municipio_bYesSecond municipality, name or slug. Segundo municipio.

TDQS

A3.7/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 safety is covered. The description adds genuine behavioral context beyond that: every figure carries its source, differences are only returned when both sources publish the value, and small municipalities substitute a county average with an explicit label. Minor gap: no note on partial-data cases beyond the county-average rule.

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 metric list is front-loaded and every clause conveys substance. The full Spanish repetition doubles length for readers who only need one language, which is a real cost, though it is a deliberate bilingual-serving choice rather than filler.

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 steps in to explain the return shape (per-metric value plus source plus difference) and the small-municipality caveat, which is the main thing an agent needs. It is nearly complete; only edge cases like unresolvable municipality names are unaddressed.

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 coverage is 100% and each property is described with name-or-slug guidance and the language enum, so the schema carries the burden. The description only implies that two municipality identifiers are compared; it adds no format, ambiguity-resolution, or disambiguation guidance beyond the schema.

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 concrete verb+resource (side-by-side comparison of two municipalities) and enumerates the exact dimensions compared: price per m², IBI, rent, commute minutes, beach, rent-cap zone, tourist flats, resident satisfaction. The two-input scope implicitly separates it from single-municipality siblings like ficha_municipio, but no sibling is named, so the differentiation is left to inference.

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?

Framed around 'what weighs most when choosing', which hints at the residential-decision use case, but there is no explicit when-to-use, when-not-to-use, or pointer to alternatives such as ficha_municipio for a single town or municipios_similares for discovery. Usage must be inferred from the metric list.

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

ficha_municipioMunicipality profile · Ficha de un municipioB
Read-onlyIdempotent
Inspect

Everything Verithic publishes for one municipality in the Barcelona area: price per m² of used housing, property tax (IBI), average rent, minutes to Barcelona, public transport, rent-cap zone status, tourist flats, empty homes (INE, 2021 Census), how satisfied residents are, and more. Each figure comes with its source, period and read date; what a source does not publish is null with the reason. Includes the yearly price series since 2013 and the five indices by dimension, each with its figures and cut-off date. — Todo lo que Verithic publica de un municipio de Barcelona y alrededores: precio €/m² de la vivienda usada, IBI, alquiler medio, minutos a Barcelona, transporte público, zona tensionada, pisos turísticos, viviendas vacías (INE, Censo 2021), satisfacción de los vecinos y más. Cada cifra con fuente, periodo y fecha de lectura; lo que la fuente no publica sale a null con la razón. Incluye la serie anual del precio desde 2013 y los cinco índices por dimensión, cada uno con sus cifras y su fecha de corte.

NameRequiredDescriptionDefault
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es
municipioYesName (Tiana, El Masnou) or slug (tiana, el-masnou). Nombre o slug.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's job is added context — and it delivers: every figure carries source, period and read date; unpublished values come back as null with the reason; the response includes the yearly price series since 2013 and five dimension indices with cut-off dates. That is real disclosure about data provenance and completeness that the annotations do not supply.

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

Conciseness3/5

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

The scope is front-loaded ('Everything Verithic publishes for one municipality'), but the body is a long enumerated list presented twice, once per language, which roughly doubles the length without adding information. The bilingual mirroring is defensible for a bilingual product, yet it is not economical prose.

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?

There is no output schema, so the description carries the burden of explaining returns — and it does so well, spelling out the field catalogue, the null-with-reason convention, provenance metadata, and the included series and indices. What an agent receives is clear; only the absence of any routing to overlapping siblings leaves a gap.

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% and both parameters (municipio with name/slug forms, language enum) are documented in the schema. The description adds nothing about parameter syntax or defaults, so the baseline 3 applies — the schema does the work and the prose neither helps nor hurts.

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 resource and scope: the complete published dataset for one municipality ('Everything Verithic publishes for one municipality'), then enumerates the concrete fields (price €/m², IBI, rent, transport, rent-cap zone, tourist flats, empty homes, satisfaction). 'One municipality' implicitly sets it apart from comparar_municipios or listar_municipios, but no sibling is named explicitly, so differentiation is left partly to inference.

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?

There is no when-to-use or when-not guidance, and no alternative is named despite a crowded sibling set with clear overlap (comparar_municipios for multiple, zona_tensionada_2027 for a single dimension, alquiler_ano_a_ano for the rent series, ranking_por_perfil for ranking). The 'everything for one municipality' framing implies usage, but the agent must infer that this is the broad profile rather than a focused lookup.

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

listar_municipiosList all municipalities with chosen fields · Todas las poblaciones con los campos que pidasA
Read-onlyIdempotent
Inspect

Returns every published municipality (no cap) with exactly the fields you ask for, optionally filtered by min/max on any numeric field, by county, and sorted. One call answers questions such as “which is the cheapest town within 35 minutes of Barcelona?”. Each value carries source, period and read date; a missing value is null with its reason, and towns with no value in a filtered field are listed apart, never estimated. Call it without fields to get the default fields and the list of available field keys. — Devuelve todas las poblaciones publicadas (sin tope) con los campos que pidas, con filtros mínimo/máximo sobre cualquier campo numérico, por comarca y ordenadas. Una sola llamada responde a «¿cuál es la población más barata a menos de 35 minutos de Barcelona?». Cada valor lleva fuente, periodo y fecha de lectura; lo que falta sale a null con su motivo, y las poblaciones sin valor en un campo filtrado se listan aparte, nunca se estiman. Sin campos devuelve los de por defecto y la lista de campos disponibles.

NameRequiredDescriptionDefault
zonaNoZone: bcn (default, published) or madrid (published: Madrid, every figure with source and date, missing values null with their reason). Zona.bcn
ordenNoSort order. Orden.asc
camposNoField keys to return, e.g. precio_m2_vivienda_usada_eur, minutos_coche_barcelona, viviendas_vacias_pct (Barcelona and Madrid); in Madrid also paro_registrado_media, afiliados_ss_residencia, estudios_superiores_pct, densidad_hab_km2, vecinos_0_14_pct, vecinos_65_mas_pct. Default: price per m², rent, driving minutes, centre-to-centre public transport minutes, IBI. Claves de los campos.
limiteNoOptional cap on rows; by default all matching towns are returned. Tope opcional; por defecto, todas.
comarcaNoCounty (optional). Comarca (opcional).
filtrosNoNumeric filters; all must hold. Filtros numéricos; todos a la vez.
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es
ordenar_porNoField key to sort by. Clave del campo para ordenar.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds substantive traits beyond them: per-value provenance (source, period, read date), null-with-reason semantics, and that towns lacking a filtered field are listed separately and 'never estimated'. The 'no cap' note also clarifies pagination 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?

Core purpose and scope are front-loaded in the first sentence, and every sentence carries information. The bilingual duplication doubles the length but is justified by the audience; it is well-structured though somewhat long.

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?

There is no output schema, so the description carries the return-shape burden, and it does so: it explains that each value includes source, period and read date, how missing values appear, and how filtered-out towns are separated. Complete for an 8-parameter, no-required-params tool.

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

Parameters4/5

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

Schema coverage is 100% so the baseline is 3, but the description adds the non-obvious no-fields default behavior (returns default fields plus the available field-key list) and reiterates that min/max filters apply to any numeric field and combine conjunctively. It goes modestly beyond the schema.

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 ('Returns every published municipality') with explicit scope ('no cap') and operation set (filter, sort, field selection). This distinguishes it from search-oriented siblings like buscar_municipios by emphasizing exhaustive retrieval without a cap.

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?

Provides a concrete triggering use case ('which is the cheapest town within 35 minutes of Barcelona?') and a procedural hint ('Call it without fields to get the default fields and the list of available field keys'). It does not, however, name alternatives or state when-not-to-use versus siblings like buscar_por_presupuesto or ranking_por_perfil.

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

mas_por_menosMore for less · Más por menosB
Read-onlyIdempotent
Inspect

The towns that score high on Connections and Services nearby and are cheaper than most (thresholds in Verithic's dated weights file, percentiles within the area), each with those three indices, the figures behind them and the cut-off date. Can be limited to a county. Not a recommendation. — Las poblaciones con índice alto en Conexión y en Servicios cerca y más económicas que la mayoría (umbrales en el fichero de pesos con fecha de Verithic, percentiles dentro de la zona), cada una con esos tres índices, las cifras que los forman y la fecha de corte. Se puede limitar a una comarca. No es una recomendación.

NameRequiredDescriptionDefault
comarcaNoOptional county. Comarca (opcional).
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuine context beyond that: thresholds live in 'Verithic's dated weights file', percentiles are computed 'within the area', and the response carries the three indices plus the figures behind them and the cut-off date. It does not mention result counts or pagination, keeping it out of 5 territory.

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

Conciseness3/5

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

Purpose is front-loaded and the constraint and disclaimer follow logically, so structure is sound. However the entire content is duplicated verbatim in Spanish, roughly doubling the length without adding information for an agent that reads either language.

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?

There is no output schema, so the description correctly carries the return shape (three indices, the underlying figures, cut-off date) and the scoping option. What is missing is result-size/pagination behavior and any signal of ranking order, but for a zero-required-param read tool it is largely 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 the schema already documents both comarca and language. The description only echoes the county limitation ('Can be limited to a county') and never mentions the language parameter, adding no syntax or format detail beyond the schema. Baseline 3 applies.

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 resource and criteria: towns scoring high on Connections and 'Services nearby' that are cheaper than most, returned with three indices, their underlying figures, and a cut-off date. The verb is implicit (it is a filtered ranking), but the purpose is discernible. It does not differentiate itself from siblings like ranking_por_perfil or buscar_por_presupuesto, so it stops 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?

The only usage-shaped statement is 'Can be limited to a county' and the disclaimer 'Not a recommendation'. There is no when-to-use, no when-not-to-use, and no reference to the obvious alternatives (ranking_por_perfil, buscar_por_presupuesto) that an agent must choose between.

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

metodologia_fuentesSources and method · Fuentes y metodologíaA
Read-onlyIdempotent
Inspect

The official sources behind Verithic's figures (publisher, link, licence, period, read date, next read), what each reason for a missing value means, how the sentence of each figure, the similar towns and the indices by dimension are computed, and what is not available yet. — Las fuentes oficiales detrás de las cifras de Verithic (organismo, enlace, licencia, periodo, fecha de lectura, próxima lectura), qué significa cada motivo de dato ausente, cómo se calculan la frase de cada cifra, los municipios parecidos y los índices por dimensión, y qué aún no está disponible.

NameRequiredDescriptionDefault
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety and idempotency are covered. The description usefully adds what the returned content actually contains (sources, missing-value semantics, computation notes, gaps), but says nothing about response format or structure beyond the topic list.

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 a single content-list sentence, front-loaded with the primary subject ('The official sources behind Verithic's figures'). The bilingual duplication doubles the length, but that repetition is a deliberate localization pattern rather than verbal padding.

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 zero-required-parameter, read-only reference tool with no output schema, the description thoroughly enumerates the categories of information returned. An agent knows what asking for methodology documentation yields; little beyond response structure is missing.

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?

Only one parameter (language) exists, and its schema description already documents the enum and default at 100% coverage. The description adds nothing about the language parameter, so the schema fully carries the burden — baseline 3.

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 enumerates exactly what content the tool returns: official sources (publisher, link, licence, period, read dates), meanings of missing-value reasons, computation methods for sentences/similar towns/dimension indices, and current gaps. This is a clear content-coverage statement for a documentation resource. It does not, however, distinguish itself from the many data-oriented siblings (e.g., municipios_similares, ficha_municipio), which compute or return the figures this tool only explains.

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 content list: an agent should call this when it needs provenance or methodology explanations rather than data. There is no explicit 'when to use this vs. X' statement and no exclusions, so the routing guidance is left to inference.

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

municipios_similaresSimilar municipalities · Municipios parecidosA
Read-onlyIdempotent
Inspect

Five municipalities most similar to a given one, and up to five similar but cheaper per m² (at least 10% lower), each with a similarity index, price per m² and distance in km. Computed by Verithic on price, rent, minutes to Barcelona, size and property tax, within 50 km or the same county; the method is returned with the answer. Not a recommendation. — Los cinco municipios más parecidos a uno dado y hasta cinco parecidos pero más baratos por m² (al menos un 10 % menos), cada uno con índice de similitud, precio €/m² y distancia en km. Cálculo de Verithic sobre precio, alquiler, minutos a Barcelona, tamaño e IBI, a 50 km o de la misma comarca; el método va en la respuesta. No es una recomendación.

NameRequiredDescriptionDefault
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es
municipioYesName or slug of the municipality. Nombre o slug.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-openWorld, so the safety bar is low. The description adds genuinely useful behavior: the similarity inputs (price, rent, minutes to Barcelona, size, property tax), the geographic constraint (50 km or same county), that the method is returned with the answer, and the 'not a recommendation' caveat.

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?

Front-loaded with the core output before the methodology caveats, and every clause carries information. The bilingual duplication doubles the length, but that is deliberate for the target user base rather than padding.

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?

There is no output schema, and the description compensates well by enumerating the returned fields (similarity index, €/m², distance) and explaining the computation and geographic limits. An agent has enough to call and interpret the tool, though edge-case guidance when fewer than five matches exist 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 coverage is 100% with only two well-documented parameters, so the schema does the heavy lifting. The description confirms the 'given municipality' input conceptually but adds no syntax, format, or slug guidance beyond what the schema already provides.

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 ('five municipalities most similar to a given one') plus the secondary cheaper-variant output, distinguishing it clearly from siblings like comparar_municipios or buscar_por_presupuesto. The scope, output fields and computation basis are all named up front.

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 description – you use this when you want alternatives to a given municipality – and 'Not a recommendation' sets a boundary on how the result should be treated. However, it never explicitly says when to prefer this over comparar_municipios or buscar_municipios, so routing is left to inference.

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

precio_paradaPrice of each stop · El precio de cada paradaA
Read-onlyIdempotent
Inspect

For a Rodalies or FGC line with a read stop order: its stops from Barcelona outwards, each with the town's price per m² of used homes, average rent and minutes to the centre of Barcelona. Price and rent are the town's, never the station's. Source, period and read date included; a missing figure is null with its reason. Without a line it lists the available lines. — De una línea de Rodalies o FGC con el orden de paradas leído: sus paradas desde Barcelona hacia fuera, cada una con el precio €/m² de la vivienda usada de su población, el alquiler medio y los minutos al centro de Barcelona. El precio y el alquiler son los de la población, nunca los de la estación. Con fuente, periodo y fecha de lectura; una cifra que falta sale a null con su motivo. Sin línea lista las disponibles.

NameRequiredDescriptionDefault
lineaNoLine code, e.g. R4, S2. Código de la línea.
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/non-destructive, but the description adds genuinely useful behavior beyond them: price and rent belong to the town, never the station; source, period and read date are included; a missing figure is null with its reason. That null-with-reason contract is valuable since there is no output schema.

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

Conciseness3/5

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

Front-loaded and well-ordered within each language, but the content is delivered twice (English and Spanish) for an evaluator that only needs one, roughly doubling length without adding information. The claims themselves are tight, but the duplication is wasteful.

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 present, the description carries the return-value burden and does so fully: per-stop fields, the town-vs-station caveat, provenance fields, null handling for missing figures, and the no-line fallback. An agent has everything needed to call and interpret it.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real semantic value by spelling out what happens when the optional linea is omitted (lists available lines). The language parameter is left to the schema/default, which is acceptable at full coverage.

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+resource: it returns the stops of a given Rodalies/FGC line, ordered from Barcelona outwards, each with price per m², rent and travel minutes. No sibling tool covers line/stop data, so an agent can distinguish it immediately from ficha_municipio or ranking_por_perfil.

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?

Gives a clear condition for use ('For a Rodalies or FGC line with a read stop order') and explains the zero-argument fallback ('Without a line it lists the available lines'), which is important given linea is optional. It does not name or exclude specific sibling alternatives, so it stops short of a 5.

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

ranking_por_perfilRanking by profile · Ranking por perfilA
Read-onlyIdempotent
Inspect

Orders the municipalities for one profile (family: Family with children; relocation: Moving from abroad; calm: Calm and space) using the five indices by dimension, each with its figures, the profile's weights, the cut-off date and the number of towns. Can be limited to a county. Towns missing a dimension of the profile are listed apart, unranked, with the reason. Not a recommendation. — Ordena los municipios para un perfil (family: Familia con niños; relocation: Llego de fuera; calm: Calma y espacio) con los cinco índices por dimensión, cada uno con sus cifras, los pesos del perfil, la fecha de corte y el número de poblaciones. Se puede limitar a una comarca. Las que no tienen alguna dimensión del perfil salen aparte, sin puesto y con el motivo. No es una recomendación.

NameRequiredDescriptionDefault
limiteNoHow many ranked towns to return. Cuántas devolver.
perfilYesProfile id. Perfil.
comarcaNoOptional county. Comarca (opcional).
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real substance beyond them: what is returned (five indices by dimension with figures, profile weights, cut-off date, town count) and the edge-case behavior that towns missing a dimension are listed apart, unranked, with a reason. That edge-case handling is exactly the kind of behavior an agent cannot infer elsewhere.

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?

Front-loaded with purpose, then output content, then the unranked-towns caveat, then the disclaimer – a sensible order. The one cost is the fully duplicated Spanish translation, which doubles length without adding information for a given call, though it is consistent with the tool's bilingual language parameter.

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?

There is no output schema, so the description carries the return-value burden, and it does describe the returned structure and the unranked-edge case. With 4 params at full schema coverage, the remaining gap is minor: pagination or result-size behavior beyond the 'limite' cap is not discussed, but nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description earns above that by decoding the enum values the schema only labels as 'Profile id' (family = Family with children, relocation = Moving from abroad, calm = Calm and space) and by explaining that comarca narrows the ranking to one county. It adds semantic meaning the schema does not carry.

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 ('Orders the municipalities') plus the exact input dimension (one profile) and the three concrete profile values. It also signals the output shape (five indices, weights, cut-off date, town count) and explicitly says 'Not a recommendation', which separates it from advisory siblings like calcular_mudanza or comparar_municipios.

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: use this when you want towns ranked for a given profile, optionally narrowed to one county. The 'Not a recommendation' note is a useful boundary, but no sibling alternative is named and there is no explicit when-not-to-use condition, so guidance stays at the minimum-viable level.

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

zona_tensionada_2027Rent-cap zone in 2027 · Zona tensionada en 2027B
Read-onlyIdempotent
Inspect

Whether a municipality is today a stressed residential market (rent-cap) zone, with its resolution and BOE reference, whether the Catalan government proposes it leaves or enters, and when the first declaration expires (March 2027; the source does not set the exact day). Separates what is in force from what is only proposed. — Si un municipio es hoy zona de mercado residencial tensionado (con su resolución y BOE), si el Govern propone que salga o entre, y cuándo vence la primera declaración (marzo de 2027; la fuente no fija el día exacto). Distingue lo que rige de lo que solo está propuesto.

NameRequiredDescriptionDefault
languageNoResponse language: "es" (default) or "en". Idioma de la respuesta.es
municipioYesName or slug of the municipality. Nombre o slug.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description is not obligated there. It adds genuine behavioral context by clarifying that it separates what is in force from what is merely proposed, and flags a data limitation (the source does not fix the exact expiry day).

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

Conciseness3/5

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

The core purpose is front-loaded, but the full bilingual restatement roughly doubles the length without adding new information. Efficient per language, yet redundant overall.

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 and a simple read-only, two-parameter surface, the description adequately conveys what an agent will receive (status, resolution/BOE, proposal, expiry). It is nearly complete, lacking only explicit output-field naming and sibling routing.

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% with only two simple parameters (municipio, language enum), so the schema carries the burden and the baseline is 3. The description adds no syntax or format detail for municipio and does not mention the language option.

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 resource (rent-cap / stressed residential market zone status for a municipality) and enumerates what the result includes: in-force status, resolution/BOE reference, proposed changes, and expiry. It does not name or distinguish itself from siblings like ficha_municipio, so it stops 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?

There is no when-to-use or when-not-to-use guidance and no named alternative, even though siblings such as ficha_municipio and comparar_municipios plausibly overlap. Usage is only inferable from the purpose statement.

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. 1 tool update
    • Addedcomparar_anuncio
  2. 1 tool update
    • Changedlistar_municipios1 field changed
      • changedInput schema / properties / campos / description
        Previous value: -"Field keys to return, e.g. precio_m2_vivienda_usada_eur, minutos_coche_barcelona, viviendas_vacias_pct (Barcelona and Madrid). Default: price per m², rent, driving minutes, centre-to-centre public transport minutes, IBI. Claves de los campos."New value: +"Field keys to return, e.g. precio_m2_vivienda_usada_eur, minutos_coche_barcelona, viviendas_vacias_pct (Barcelona and Madrid); in Madrid also paro_registrado_media, afiliados_ss_residencia, estudios_superiores_pct, densidad_hab_km2, vecinos_0_14_pct, vecinos_65_mas_pct. Default: price per m², rent, driving minutes, centre-to-centre public transport minutes, IBI. Claves de los campos."
  3. 2 tool updates
    • Changedbuscar_por_presupuesto1 field changed
      • addedInput schema / properties / max_minutos_transporte_publico_barcelona
        Added value: +{
        +  "description": "Maximum minutes by public transport to Plaça Catalunya, door to door, leaving 7–9am on a weekday (optional). Towns with no useful service are excluded. Máximo de minutos en transporte público, puerta a puerta, saliendo de 7 a 9 en día laborable.",
        +  "exclusiveMinimum": 0,
        +  "type": "number"
        +}
    • Changedlistar_municipios1 field changed
      • changedInput schema / properties / campos / description
        Previous value: -"Field keys to return, e.g. precio_m2_vivienda_usada_eur, minutos_coche_barcelona. Default: price per m², rent, driving minutes, centre-to-centre public transport minutes, IBI. Claves de los campos."New value: +"Field keys to return, e.g. precio_m2_vivienda_usada_eur, minutos_coche_barcelona, viviendas_vacias_pct (Barcelona and Madrid). Default: price per m², rent, driving minutes, centre-to-centre public transport minutes, IBI. Claves de los campos."
  4. 1 tool update
    • Changedlistar_municipios1 field changed
      • changedInput schema / properties / campos / description
        Previous value: -"Field keys to return, e.g. precio_m2_vivienda_usada_eur, minutos_coche_barcelona. Default: price per m², rent, driving minutes, door-to-door public transport minutes, IBI. Claves de los campos."New value: +"Field keys to return, e.g. precio_m2_vivienda_usada_eur, minutos_coche_barcelona. Default: price per m², rent, driving minutes, centre-to-centre public transport minutes, IBI. Claves de los campos."
  5. 2 tool updates
    • Changedbuscar_municipios1 field changed
      • changedInput schema / properties / zona / description
        Previous value: -"Zone: bcn (default, published) or madrid (in preparation: only what the repository has read, every figure with source and date, missing values null with their reason). Zona."New value: +"Zone: bcn (default, published) or madrid (published: Madrid, every figure with source and date, missing values null with their reason). Zona."
    • Changedlistar_municipios1 field changed
      • changedInput schema / properties / zona / description
        Previous value: -"Zone: bcn (default, published) or madrid (in preparation: only what the repository has read, every figure with source and date, missing values null with their reason). Zona."New value: +"Zone: bcn (default, published) or madrid (published: Madrid, every figure with source and date, missing values null with their reason). Zona."
  6. 2 tool updates
    • Changedbuscar_municipios1 field changed
      • addedInput schema / properties / zona
        Added value: +{
        +  "default": "bcn",
        +  "description": "Zone: bcn (default, published) or madrid (in preparation: only what the repository has read, every figure with source and date, missing values null with their reason). Zona.",
        +  "enum": [
        +    "bcn",
        +    "madrid"
        +  ],
        +  "type": "string"
        +}
    • Changedlistar_municipios1 field changed
      • addedInput schema / properties / zona
        Added value: +{
        +  "default": "bcn",
        +  "description": "Zone: bcn (default, published) or madrid (in preparation: only what the repository has read, every figure with source and date, missing values null with their reason). Zona.",
        +  "enum": [
        +    "bcn",
        +    "madrid"
        +  ],
        +  "type": "string"
        +}
  7. 3 tool updates
    • Addedalquiler_ano_a_ano
    • Addedlistar_municipios
    • Addedprecio_parada
  8. 10 tool updates
    • First observedbuscar_municipios
    • First observedbuscar_por_presupuesto
    • First observedcalcular_mudanza
    • First observedcomparar_municipios
    • First observedficha_municipio
    • First observedmas_por_menos
    • First observedmetodologia_fuentes
    • First observedmunicipios_similares
    • First observedranking_por_perfil
    • First observedzona_tensionada_2027

Related MCP Connectors

Related MCP Servers

  • 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
    40 PyPI
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Access 17M+ geocoded French property transactions (DVF), 22M+ DPE energy ratings, and 20M+ building records via MCP or REST API. Search transactions, market stats, comparables, price trends, rental yield, flip detection, and more.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    UK property area intelligence: validated trajectory scores, gentrification early-warning and area screening for 2,292 England & Wales postcode districts, from 30+ government data sources.
    7
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources