Skip to main content
Glama

ITBI SP · São Paulo real estate prices

Server Details

Real sale prices (ITBI) for every building, street and district in São Paulo, plus homes for sale.

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-06-18
URL
Repository
itbisp/itbisp-plugin
GitHub Stars
0
Server Listing
ITBI SP
ChatGPT
–
Claude
–

TDQS

A3.8/5.0

Scored across 10 tools

Disambiguation2/5

Several pairs genuinely overlap and even advertise the same example query: 'quanto custa o m² em Moema?' appears in both resumo_bairro and vendas_bairro, and 'quanto vale meu apartamento na Rua X, 123?' appears verbatim in both comparaveis_endereco and vendas_predio. comparaveis_imovel and ficha_imovel also both return comparable evidence plus ITBI building sales, so an agent must guess which surface to call. The long descriptions explain intent, but the boundaries are not crisp enough to reliably pick one.

Naming Consistency4/5

All names are lowercase snake_case and follow a mostly predictable entity_scope scheme, with a clean family (vendas_bairro, vendas_predio, vendas_rua) and a matching pair (comparaveis_endereco, comparaveis_imovel). Minor deviations: buscar_imoveis uses a verb while most others use nouns, and para_voce is opaque about being a personal ranking tool. Overall readable and predictable.

Tool Count5/5

Ten tools is well within the sweet spot for a real-estate data server, and each corresponds to a distinct granularity (listing, building, street, district, city, person). No filler tools are present, and the set is not so large that the agent must wade through options.

Completeness4/5

Coverage is broad for the stated domain: listing search, listing detail, comparables, personal ranking, district rankings/summaries, and ITBI paid-price data at building, street, and district levels (with rentals explicitly out of scope). Minor gaps: no way to compare multiple neighborhoods in one call (one call per bairro), and no tool to enumerate valid districts/bairros names before querying, which agents may need for lookups.

Available Tools

10 tools
buscar_imoveisBuscar imóveis à venda em São PauloA
Read-onlyIdempotent
Inspect

Busca imóveis à venda na cidade de São Paulo (apartamentos, casas, salas comerciais, terrenos) em anúncios de imobiliárias, deduplicados: cada resultado é um imóvel com o menor preço pedido, o link da ficha em itbisp.com e o do anúncio mais barato. O jeito mais simples: passe o pedido da pessoa em q, em português ("apartamento de 3 quartos em Pinheiros até 1,5 milhão perto do metrô, com varanda") — ele vira filtros por regras e a resposta lista os termos_entendidos. Os campos estruturados (bairro, estação, preço, quartos, características, visão...) completam ou corrigem o q e ganham dele. Cada imóvel traz preço, R$/m², nivel_preco em 4 níveis (abaixo do mercado, no preço, acima, 30%+ acima), metrô mais próximo e distância, características lidas do anúncio (varanda, pet, piscina...), etiquetas pela foto e quantos outros estão à venda no mesmo prédio. Só cidade de São Paulo; não cobre aluguel. | Search homes for sale in São Paulo city (Brazil) across agency listings, deduplicated per property. Easiest: pass the user's request in q (Portuguese works best); structured fields refine it. Returns price, price per m², a 4-level price label vs comparables, nearest station, listing features, photo tags, a link to the itbisp.com page and to the cheapest listing. Sale only, São Paulo city only.

NameRequiredDescriptionDefault
qNoPedido em linguagem natural, em português: '3 quartos perto do metrô em Pinheiros até 1,8 mi com varanda', 'studio até 500 mil perto da estação Faria Lima', 'casa com quintal e piscina que aceita pet'. Vira filtros por regras; veja termos_entendidos na resposta. Natural-language request (Portuguese).
latNoLatitude do ponto de referência (use com lon e raio_m). Reference point latitude.
lonNoLongitude do ponto de referência. Reference point longitude.
ruaNoNome da rua, com ou sem 'Rua'/'Av.': "Rua dos Pinheiros". Street name.
bboxNoCaixa [oeste, sul, leste, norte] em graus. Bounding box [west, south, east, north].
tipoNoTipos aceitos. Studio/flat/kitnet/cobertura são 'apartamento'; sobrado é 'casa'. Property types.
ordemNoOrdem. 'relevancia' põe primeiro preço bom, com foto e confirmado por várias imobiliárias; 'mais_perto' exige lat/lon. Sort order.relevancia
visaoNoEtiquetas estimadas pela foto principal do anúncio (todas valem). Photo-based tags (estimates).
bairroNoUm ou mais bairros, como as pessoas escrevem: ["Pinheiros", "Vila Madalena"]. Neighborhood names.
limiteNoQuantos imóveis devolver (1-20). Results per page.
paginaNoPágina de resultados. Page number.
raio_mNoRaio em metros em torno de lat/lon. Radius in meters.
estacaoNoEstação de metrô/trem/monotrilho mais próxima do imóvel: "Fradique Coutinho", "Faria Lima". Nearest station name.
subtipoNoSubtipo estimado pelo anúncio: cobertura, studio, casa_condominio (casa em condomínio fechado)... Sub-type.
area_maxNoÁrea máxima em m². Max area (m²).
area_minNoÁrea mínima em m² (privativa/útil do anúncio). Min area (m²).
poligonoNoAnel do polígono como lista de [lon, lat] (GeoJSON). Polygon ring as [lon, lat] pairs.
preco_maxNoPreço máximo em reais: 1,5 milhão = 1500000. Max price (BRL).
preco_minNoPreço mínimo em reais. Min price (BRL).
reformadoNoSó imóveis reformados, pela foto ou pelo texto do anúncio. Renovated (photo or listing text).
vagas_minNoVagas de garagem, no mínimo. Min parking spots.
suites_minNoSuítes, no mínimo. Min suites.
metro_max_mNoDistância máxima (metros, em linha reta) até a estação mais próxima. 'Perto do metrô' ≈ 800. Max distance to nearest station in meters.
quartos_minNoQuartos (dormitórios), no mínimo. Min bedrooms.
so_preco_bomNoSó imóveis com pedido abaixo do mercado (comparados ao mesmo prédio, rua ou bairro e ao pago no ITBI). Only below-market asking prices.
um_por_predioNoMostra no máximo um imóvel por prédio (o melhor de cada); cada resultado diz quantos outros estão à venda no prédio. One result per building.
caracteristicasNoCaracterísticas que o imóvel precisa ter, lidas do texto e da lista de características dos anúncios (todas valem): vista, varanda, varanda_gourmet, churrasqueira, piscina, academia, aceita_pet, portaria_24h... Listing features (all required).
faixa_avaliacaoNoCorta pelo selo de preço: so_abaixo (só abaixo do mercado), ate_mercado (tira os acima do mercado), sem_muito_caros (tira só os 30%+ acima). Price label cut.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world, so the safety profile is covered; the description adds real behavioral context beyond that: results are deduplicated per property with the lowest price, q is parsed into rule-based filters and echoes termos_entendidos, and each record carries a 4-level price label, nearest station, feature tags, and building-level counts. It does not discuss pagination limits, response size, or what happens when q parses to nothing, which is why it falls short of a 5.

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 behavior and the q-first strategy are front-loaded, and the sentences are dense with operational detail rather than filler. The Portuguese and English halves restate largely the same content, which adds length; it is defensible for a bilingual audience but not maximally economical.

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?

For a 28-parameter tool with no output schema, the description compensates well: it enumerates what each result contains (price, R$/m², price level, station and distance, features, photo tags, building peers, both links). Combined with 100% schema coverage and read-only annotations, an agent has enough to call it and interpret the response correctly.

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 description coverage is 100%, so the baseline is 3; the description goes further by explaining the relationship between q and the 27 structured fields (structured fields override the natural-language parse) and by noting that the response echoes the interpreted terms. It does not resolve ambiguous interactions, such as which field wins between bairro and a neighborhood mentioned inside q, or how q combines with faixa_avaliacao.

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 names a specific verb and resource ('Busca imóveis à venda') and bounds it tightly: São Paulo city only, sale only, deduplicated per property, with the cheapest asking price and links. Scope and exclusions are unambiguous, but no sibling tool (comparaveis_imovel, ficha_imovel, resumo_bairro, para_voce) is named or contrasted, so the agent must infer the routing itself.

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 clearly when to use which input style: the easiest path is passing the user's request in q in Portuguese, and structured fields 'complete or correct' q and take precedence over it. Exclusions ('Só cidade de São Paulo; não cobre aluguel') prevent misuse. It stops short of naming which sibling to use for comparables, a single property's ficha, or neighborhood summaries.

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

comparaveis_enderecoComparáveis de um endereço em São PauloA
Read-onlyIdempotent
Inspect

Para um endereço da cidade de São Paulo (rua e número) ou um ponto lat/lon: imóveis à venda no mesmo prédio e ao redor parecidos com o informado, R$/m² pedido mediano, uma estimativa de preço pedido para a área informada e o preço realmente pago no prédio e no distrito segundo o ITBI. Use para "quanto vale meu apartamento na Rua X, 123?", "quanto pedem por apartamentos no meu prédio?", "esse preço está caro para essa rua?". | For a São Paulo address (street + number) or a point: comparable homes for sale in the same building and nearby, median asking price per m², an asking-price estimate for the given area, and prices actually paid in that building and district (ITBI). Use for 'how much is my apartment worth' or 'is this price high for this street'.

NameRequiredDescriptionDefault
latNoLatitude, se não houver endereço. Latitude if no address.
lonNoLongitude. Longitude.
areaNoÁrea do imóvel avaliado em m²; filtra comparáveis de tamanho parecido e gera a estimativa. Area in m².
tipoNoTipo do imóvel avaliado (padrão: o mais comum no prédio, ou apartamento). Property type.
limiteNoQuantos comparáveis listar. How many comparables.
raio_mNoRaio dos comparáveis ao redor, em metros. Radius in meters.
quartosNoQuartos do imóvel avaliado. Bedrooms.
enderecoNoRua e número: "Rua Fradique Coutinho, 1000". Street and number.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so the safety bar is met; the description adds genuine context by disclosing the two authoritative data sources (asking prices vs. ITBI recorded prices) and their geographic granularity (same building vs. district). It does not cover failure behavior, e.g. what happens with an unresolvable address or a building with no comparables, which is the main remaining gap.

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 Portuguese sentence is well front-loaded (input scope first, then outputs, then use cases) and wastes little. However, the English version is a near-verbatim full-length duplicate, roughly doubling the text without adding information, which is frontal-loading preserved but conciseness hurt.

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 an eight-parameter, all-optional tool with no output schema, the description does the important extra work of enumerating what comes back (comparables, median R$/m², estimate, ITBI prices) and constraining geography to São Paulo. It stops short of describing output shape/ordering or the empty-result case, but an agent has enough 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?

With 100% schema description coverage the schema already documents each of the eight parameters, so the baseline is 3. The description adds one thing the schema does not: that endereco and lat/lon are alternative input modes ('Para um endereço ... ou um ponto lat/lon'), which clarifies the mutual-exclusivity relationship; otherwise it only restates area/tipo behavior 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 description names a specific verb and resource — it returns for-sale comparables, median asking R$/m², an asking-price estimate, and ITBI paid prices for a São Paulo address or lat/lon point. It is clearly distinguishable from ficha_imovel or resumo_bairro, but it never explicitly contrasts itself with the closest sibling, comparaveis_imovel, leaving the address-vs-property-id distinction 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?

Concrete question templates ('quanto vale meu apartamento na Rua X, 123?', 'esse preço está caro para essa rua?') give strong positive guidance about the situations this tool serves. What is missing is the negative side: no explicit statement of when NOT to use it, and no named alternative (e.g. use comparaveis_imovel when you have a listing rather than an address).

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

comparaveis_imovelPor que o preço é bom ou ruim (comparáveis e ITBI)AInspect

Mostra a evidência do selo de preço de um imóvel: os imóveis parecidos (mesmo prédio, rua ou bairro, tamanho próximo) que entraram na conta, com preço, área e R$/m², a mediana usada, e as vendas registradas no ITBI do mesmo prédio (data, valor pago, área). Use quando a pessoa pergunta 'esse preço é bom?', 'com o que vocês compararam?', 'por quanto venderam apartamentos nesse prédio?'. | Evidence behind a listing's price label: the comparable listings used (same building/street/neighborhood, similar size) and the registered ITBI sales in the same building.

NameRequiredDescriptionDefault
idYesid do imóvel (campo id de buscar_imoveis), ex. im_bae2c52d4cc3. Property id.
limiteNoQuantos comparáveis mostrar. How many comparables.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full disclosure burden, and it does describe the payload in unusual detail (comparables with price, area, R$/m², the median, ITBI sales with date, paid value, area). It omits the behavioral edges that matter for a data-evidence tool: it is implicitly a read-only lookup but never says so, and it does not say what is returned when no comparable or ITBI sale exists.

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 opening clause is well front-loaded — the resource and its evidence are named before the usage cues. However, the entire content is then restated in an English gloss that adds no new information, roughly doubling length for a bilingual reader who needs only one half.

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?

No output schema exists, and the description compensates by enumerating the returned fields and the median calculation, which is the main thing an agent would otherwise have to guess. Combined with 100% schema coverage on the two parameters and a read-only operation, the definition is close to self-sufficient.

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 required id (pointing at buscar_imoveis output) and the limite cap of 30 are already documented, making the baseline 3 correct. The description reinforces the comparison criteria ('tamanho próximo', same building/street/neighborhood) but adds nothing about what limite controls or how comparables are ranked when truncated.

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: it shows the evidence behind a listing's price label — the comparables used (same building/street/neighborhood, similar size) plus the ITBI registered sales in the same building, including the median. That is concrete enough to separate it from ficha_imovel or resumo_bairro, though it never names comparaveis_endereco, the sibling whose scope (address vs. property id) is closest and most confusable.

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 explicit trigger conditions by quoting the user questions it answers ('esse preço é bom?', 'com o que vocês compararam?', 'por quanto venderam apartamentos nesse prédio?'), which is genuinely useful for routing. It stops short of when-not guidance or naming an alternative when the caller has an address instead of a property id.

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

ficha_imovelFicha de um imóvel à vendaA
Read-onlyIdempotent
Inspect

Ficha completa de um imóvel devolvido por buscar_imoveis: todos os anúncios ativos (imobiliária, preço pedido, link, código), histórico de preço, fotos, descrição, características, condomínio e IPTU, metrô, como o preço se compara ao mercado e o que foi pago nas vendas do mesmo prédio segundo o ITBI. Use quando a pessoa quer detalhes, quer comparar imobiliárias anunciando o mesmo imóvel ou perguntar se o preço é bom. | Full record of one property from buscar_imoveis: every active listing (agency, asking price, link), price history, photos, description, amenities, condo fee and property tax, subway, price label explanation and prices actually paid in the same building (ITBI).

NameRequiredDescriptionDefault
idYesid do imóvel devolvido por buscar_imoveis (ex.: im_1217cd8f3590). Property id.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so safety is covered. The description adds substantive context beyond that: the payload spans listing history, market comparison and ITBI transaction data, which tells the agent this is a heavy, single-property read rather than a light lookup. No rate limits or failure modes are mentioned, but for a read-only detail tool that is a minor gap.

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 content is front-loaded on what the record contains, then the usage clause, then a separator and full English restatement. The bilingual duplication doubles length, but it serves a stated Portuguese/English audience, and no sentence is filler.

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 takes on the burden of describing returns and does so thoroughly — listings, price history, photos, amenities, fees, transit, price explanation, ITBI comparables. Combined with a single fully-documented required parameter, an agent has everything needed to call and interpret this tool.

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?

There is one parameter and schema coverage is 100%, with the schema already saying the id comes from buscar_imoveis and giving an example format. The description repeats the same provenance hint without adding format, validation or edge-case guidance beyond the schema. Baseline 3 is appropriate when the schema carries the semantics.

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 ('Ficha completa de um imóvel') and enumerates exactly what the record contains: active listings, price history, photos, amenities, condo fee/IPTU, subway, price label, ITBI sales. It also names the sibling that produces the input (buscar_imoveis), so an agent can place it in the workflow 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 Guidelines4/5

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

Gives clear trigger conditions: 'Use quando a pessoa quer detalhes, quer comparar imobiliárias anunciando o mesmo imóvel ou perguntar se o preço é bom.' That covers the main intents well. It stops short of routing away from siblings like comparaveis_imovel or comparaveis_endereco, which overlap with the price-comparison intent, so no explicit when-not guidance.

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

para_voceRecomendar imóveis para uma pessoa (trabalho, família, metrô)AInspect

Ordena imóveis à venda pelo que importa para a pessoa: tempo de trajeto até o trabalho (transporte, carro, bike ou a pé), distância de pessoas importantes (pais, escola), metrô a pé, preço contra parecidos, o que ela não abre mão e regiões que prefere. Devolve nota de 0 a 100, motivos e alertas por imóvel ("~25 min de ônibus até o trabalho", "441 m dos sogros", "19% abaixo de parecidos na mesma rua"). Use quando a pessoa cita trabalho, escola, família ou rotina: 'trabalho na Faria Lima, meus pais moram em Santana, até 1,2 mi, 3 quartos'. Pode mandar tudo em q, ou os pontos já com endereço ou lat/lon. | Rank homes for a person: commute time to work, distance to family/school, subway, price vs comparables, must-haves and preferred areas. Returns a 0-100 score with reasons. Use when work/family locations are mentioned.

NameRequiredDescriptionDefault
qNoPedido em linguagem natural: 'casal com bebê, trabalho na Faria Lima, sogros na Rua Cardeal Arcoverde, até 1,8 mi, 3 quartos, metrô perto, com varanda'. Lugares citados viram pontos. Natural-language request.
modoNoComo vai ao trabalho. Commute mode.transporte
tipoNo
metroNo'sim' quando metrô perto é importante.
limiteNo
bairrosNoBairros preferidos. Preferred neighborhoods.
pessoasNoPessoas ou lugares para ficar perto: [{quem:'pais', onde:'Santana'}, {quem:'escola', onde:'Rua X, 100'}]. People/places to be close to.
area_minNo
objetivoNomorar
trabalhoNoEndereço ou lugar do trabalho/estudo: 'Av. Paulista, 1000', 'Faria Lima', 'USP'. Work or study place.
preco_maxNo
tempo_maxNoMinutos aceitáveis até o trabalho. Max commute minutes.
vagas_minNo
essenciaisNoO que não abre mão. Must-haves.
quartos_minNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and mostly succeeds: it declares the operation is a read-only ranking over 'imóveis à venda', describes the return payload as a 0-100 score plus reasons and alerts, and shows example alerts so the agent knows what comes back. It omits any statement about how many candidates are evaluated or whether results are capped, which is where the remaining opacity lies.

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 ranking criteria and the output contract before the trigger example, and every clause earns its place. The full English restatement roughly doubles the length for little new information, which is the only structural cost.

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

Completeness3/5

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

For a 15-parameter tool with no annotations and no output schema, the description covers the conceptual model and return shape well, but leaves several levers unexplained — notably limite (how many recommendations, default 8, cap 20) and the filtro params (tipo, area_min, objetivo, quartos_min, vagas_min). An agent can call it, but can't confidently predict result count or how those filters interact with ranking.

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 only 53%, but the description compensates meaningfully: it maps commute modes (transporte, carro, bike, a pé) to modo, 'distância de pessoas importantes (pais, escola)' to pessoas, 'metrô a pé' to metro, 'o que ela não abre mão' to essenciais, and 'regiões que prefere' to bairros. It also explains the two input styles — everything inside q as free text, or pre-resolved points with address or lat/lon — which is genuine added meaning. Undocumented params like limite, objetivo and area_min are left to their names.

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 — it orders/ranks for-sale homes for a person — and enumerates the ranking criteria (commute time, distance to family/school, subway, price vs comparables, must-haves, preferred areas). It also pins the output form ('nota de 0 a 100, motivos e alertas'), which no sibling (buscar_imoveis, ficha_imovel, comparaveis_*) provides.

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 an explicit trigger — 'Use quando a pessoa cita trabalho, escola, família ou rotina' — with a concrete example request, which clearly separates it from a plain listing search. It does not name a sibling or state when NOT to use it (e.g. when the user just wants raw listings, use buscar_imoveis), so it falls 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_bairrosBairros mais caros e mais baratos de São Paulo (vendas reais do ITBI)A
Read-onlyIdempotent
Inspect

Ranking dos 96 distritos de São Paulo pelo m² realmente pago nos últimos 12 meses (ITBI): mais caros, mais baratos, maior alta ou maior queda em 12 meses, por zona (centro, norte, sul, leste, oeste) e por tipo (apartamento ou casa). Use para "quais os bairros mais caros de São Paulo?", "bairro mais barato da zona leste", "onde o m² mais subiu?". | Ranking of São Paulo's 96 districts by actual price paid per m² over the last 12 months: most/least expensive, biggest rise or fall, by zone and property type.

NameRequiredDescriptionDefault
tipoNoOpcional: só apartamentos ou só casas. Optional property type.
zonaNoOpcional: zona da cidade. Optional zone.
ordemNoOrdem. Sort order.mais_caros
limiteNoQuantos bairros (1–96). How many.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish that this is a read-only, idempotent, closed-world operation. The description adds meaningful behavioral context beyond that: the metric is actual price paid rather than asking price, the source is ITBI, the window is the last 12 months, and coverage is all 96 districts. It does not describe the return shape or data limitations, but with annotations covering safety it is reasonably transparent.

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 and the example queries are useful, but the description duplicates the same content in Portuguese and English, which nearly doubles length without adding information. It is not badly structured, but the bilingual repetition reduces 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?

For a read-only ranking tool with four optional parameters and no output schema, the description supplies the key context: geography, metric, timeframe, sort modes, and filters. It leaves out details such as the exact response fields or handling of districts with sparse data, but the agent has enough to select and invoke 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 all four optional parameters and their enums are already documented in the schema. The description restates the available filters and sort modes but adds little semantic meaning beyond what the schema provides, making the baseline 3 appropriate.

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 clearly states a specific resource and scope: a ranking of São Paulo's 96 districts by actual paid m² over 12 months, with sort modes and filters. It is easy to distinguish at a high level from property-level or address-level siblings, but it never names or explicitly contrasts those alternatives.

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?

The description gives concrete example questions such as 'quais os bairros mais caros de São Paulo?' and 'bairro mais barato da zona leste', which clearly show when to use it. It does not state when not to use it or explicitly route users to siblings like vendas_bairro or resumo_bairro.

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

resumo_bairroPreços de um bairro de São PauloA
Read-onlyIdempotent
Inspect

Resumo de um bairro de São Paulo: quantos imóveis estão à venda, preço pedido mediano e R$/m² pedido (no total e por número de quartos), quantos estão abaixo do mercado, perto do metrô, e o preço realmente pago no distrito nos últimos 12 meses segundo o ITBI (R$/m² e valor mediano). Use para "quanto custa um apartamento em Moema?", "qual o preço do m² em Pinheiros?", "Tatuapé ou Mooca, qual é mais barato?" (chame uma vez por bairro). | Summary of a São Paulo neighborhood: homes for sale, median asking price and asking price per m² (overall and by bedrooms), share below market and near the subway, and prices actually paid in the district over the last 12 months (ITBI). Use for 'how much does an apartment cost in Moema' or comparing neighborhoods (one call per neighborhood).

NameRequiredDescriptionDefault
tipoNoTipo de imóvel. Property type.apartamento
bairroYesNome do bairro: "Moema", "Vila Madalena". Neighborhood name.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so safety and idempotency are covered. The description adds real behavioral context the annotations lack: the data sources (asking prices vs. ITBI registry), the 12-month window, and the fact that comparisons require one call per neighborhood. No rate limits or failure behavior are mentioned.

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 metric list is front-loaded and useful, but the entire description is duplicated in Portuguese and English, roughly doubling length without adding information for an agent. The core content is tight; the bilingual redundancy is the main cost.

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 must describe return values, and it does so thoroughly by enumerating every reported metric and its time window. What remains unstated is response shape (structured vs. narrative) and behavior for unknown neighborhoods, which keeps it from a 5.

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 are documented with bilingual descriptions and an enum for tipo. The description adds only marginal meaning, mainly the example neighborhood names echoed from the schema and the implied default of apartment in its examples. Baseline 3 applies when the schema carries the parameter semantics.

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 names the resource (a São Paulo neighborhood) and enumerates exactly what is returned: listing counts, median asking price, R$/m² overall and by bedrooms, below-market share, subway proximity, and ITBI paid prices for the last 12 months. This is far more specific than the title and lets an agent distinguish it from listing-oriented siblings like buscar_imoveis or ficha_imovel.

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 gives three concrete trigger queries ("quanto custa um apartamento em Moema?", "qual o preço do m² em Pinheiros?", "Tatuapé ou Mooca, qual é mais barato?") plus the operational instruction to call once per neighborhood for comparisons. It does not state exclusions or what to use instead when the agent needs individual listings, so it falls 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.

vendas_bairroPreço do m² num bairro de São Paulo (vendas reais do ITBI)A
Read-onlyIdempotent
Inspect

Preço realmente pago num bairro (distrito) de São Paulo nos últimos 12 meses, pelas vendas registradas no ITBI: m² mediano, variação em 12 meses, valor e área medianos, apartamento e casa separados, faixa do m² (p25–p75), posição entre os bairros mais caros, comparação com a cidade, série por ano desde 2006 (com IPCA), ganho real em revendas do mesmo apartamento e as ruas com mais vendas. Aceita os 96 distritos, bairros como Vila Nova Conceição, Vila Olímpia, Brooklin e Higienópolis, e "São Paulo" para a cidade. Use para "quanto custa o m² em Moema?", "Pinheiros valorizou?", "Tatuapé ou Mooca?" (uma chamada por bairro). | Actual prices paid in a São Paulo district over the last 12 months (ITBI): median price per m², 12-month change, apartments vs houses, rank, yearly series since 2006 and resale gains.

NameRequiredDescriptionDefault
bairroYesBairro ou distrito: "Moema", "Vila Olímpia", "Tatuapé"; "São Paulo" para a cidade. District or neighborhood.

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 and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavior context beyond that: the data source is ITBI registry records, the window is a fixed trailing 12 months, and coverage spans 96 districts plus city-level aggregation. It omits error behavior for unknown neighborhood names and any data-lag 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?

The purpose and scope are front-loaded in the first clause before the metric enumeration, and every clause carries substantive information rather than filler. It runs long in a single dense block, and the trailing English restatement partly duplicates the Portuguese text, though for a bilingual tool that redundancy has some justification.

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 one parameter, no output schema and closed-world annotations, the tool is simple, and the description compensates for the missing output schema by enumerating the returned indicators instead of leaving returns opaque. Input scope is fully specified. Only edge-case behavior (unknown neighborhood, accent sensitivity) 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 coverage is 100% and the single parameter already carries a description with examples, so the schema does the heavy lifting. The prose adds marginal value by expanding the accepted vocabulary (Vila Nova Conceição, Vila Olímpia, Brooklin, Higienópolis) and confirming 'São Paulo' as the city-wide value, but does not cover accent/fuzzy matching or invalid-input handling.

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 names a specific resource and metric set: actual ITBI-registered prices paid per m² in a São Paulo district over the last 12 months, plus the derived indicators returned. It is clearly not a generic search tool, but it never names the overlapping siblings (resumo_bairro, ranking_bairros, vendas_rua) or states how it differs from them, leaving that differentiation 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?

Concrete trigger questions are given ('quanto custa o m² em Moema?', 'Pinheiros valorizou?', 'Tatuapé ou Mooca?') along with the operational note 'uma chamada por bairro', which tells the agent how to handle comparisons. There are no explicit exclusions or named alternatives for cases better served by another tool.

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

vendas_predioQuanto vale um imóvel neste prédio (vendas reais do ITBI)A
Read-onlyIdempotent
Inspect

Preço pago de verdade num prédio ou casa de São Paulo, pelas vendas registradas no ITBI da Prefeitura desde 2019: m² mediano (corrigido pelo IPCA), número de vendas, faixa de preço das vendas recentes, tendência, mês da última venda e uma estimativa de quanto vale uma unidade (para a área informada ou para o tamanho mais vendido), com a comparação com o bairro e o link da página do prédio. Use para "quanto vale meu apartamento na Rua X, 123?", "por quanto o vizinho vendeu?", "quanto vale um apê de 80 m² na Alameda Franca, 1633?". Se o número não tiver vendas, devolve os prédios mais perto na mesma rua. | Actual sale prices in a São Paulo building from ITBI records (2019+): median price per m² (inflation-adjusted), number of sales, recent price range, trend and a value estimate for a unit of the given area. Use for 'how much is my apartment at <street, number> worth?'.

NameRequiredDescriptionDefault
areaNoÁrea do imóvel em m² (área construída do IPTU, se souber) para a estimativa. Unit area in m².
slugNoAlternativa ao endereço: o final da URL itbisp.com/predio/<slug>.
enderecoNoRua e número: "Rua Capote Valente, 1307", "Av. Paulista 1000". Street and number.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, and the description goes well beyond that: it names the data source and vintage (ITBI, 2019+), the adjustment method (IPCA-corrected m²), and — critically — the failure behavior when a building has no recorded sales. That fallback disclosure is the kind of operational detail annotations cannot carry.

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 Portuguese sentence front-loads the value proposition and the returned fields, then examples, then fallback — a sensible order. The trailing English block is a condensed restatement that partially duplicates the Portuguese text; it is useful for English queries but is not free of redundancy.

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 full burden of describing return values, and it does: m² median, sale count, price range, trend, last sale month, unit estimate, neighborhood comparison and building page link. Combined with the no-data fallback and all-optional params, an agent has everything needed to call it and interpret results.

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 baseline is 3, but the description adds real meaning: it explains that 'area' drives the unit estimate and that when no area is supplied the estimate falls back to the most-sold unit size, and it clarifies that 'endereco' expects street plus number, with 'slug' as the alternate identifier. That is genuine semantic value beyond the field descriptions.

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 — real sale prices paid for a building/house in São Paulo sourced from ITBI records since 2019 — and enumerates the exact outputs (median m² price, sale count, range, trend, estimate, neighborhood comparison). The phrase 'num prédio' scopes it to a single building, distinguishing it in substance from the street- and neighborhood-level siblings.

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?

Three concrete example queries ('quanto vale meu apartamento na Rua X, 123?', 'por quanto o vizinho vendeu?', 'quanto vale um apê de 80 m² na Alameda Franca, 1633?') make the intended trigger clear. It also discloses the no-data fallback (returns nearby buildings on the same street). It never names vendas_rua, vendas_bairro or comparaveis_endereco as the alternatives for street-wide or comparison queries, so the exclusions are left implicit.

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

vendas_ruaPreço do m² numa rua de São Paulo (vendas reais do ITBI)A
Read-onlyIdempotent
Inspect

Vendas registradas no ITBI numa rua de São Paulo: m² mediano e valor mediano desde 2024, por tipo (apartamento, casa), série por ano desde 2006 (com correção pelo IPCA), bairros por onde passa e os prédios com mais vendas, com links. Use para "qual o preço do m² na Rua Oscar Freire?", "a Alameda Olga valorizou?". Se houver ruas com o mesmo nome em bairros diferentes, passe bairro. | Registered ITBI sales on a São Paulo street: median price per m² since 2024, yearly series since 2006 (inflation-adjusted), districts and the buildings with most sales.

NameRequiredDescriptionDefault
ruaYesNome da rua: "Rua Oscar Freire", "Alameda Olga". Street name.
bairroNoOpcional: bairro, para ruas com nome repetido. Optional district.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so safety is covered; the description adds real context on the data source (ITBI registry), temporal coverage (medians since 2024, series since 2006 with IPCA correction) and that links are returned. What is missing is any caveat about data lag, gaps for streets with few transactions, or minimum-sample 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 first sentence front-loads what the tool returns, followed by use-case examples and the disambiguation hint — a sensible order. The full Portuguese-to-English duplication adds length that does not earn much additional clarity, though it does not obscure the core content.

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 the necessary work of describing return contents (median m², yearly series, districts, buildings, links) for a fairly rich analytical tool. The only gap is operational caveats about data coverage, freshness, or sparse streets, which an agent would want before quoting numbers.

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 already documented, including the 'bairro' disambiguation note. The description restates that same rule ('passe bairro') without adding new syntax or constraints, so it sits at the baseline for a fully documented 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?

The description names a specific verb and resource ('vendas registradas no ITBI numa rua de São Paulo') and enumerates the concrete outputs — median m², yearly series, districts, top buildings. The street-level scope makes it immediately distinguishable from the bairro and prédio siblings.

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?

Two concrete example questions ('qual o preço do m² na Rua Oscar Freire?', 'a Alameda Olga valorizou?') show exactly when to reach for it, and the disambiguation rule ('Se houver ruas com o mesmo nome em bairros diferentes, passe bairro') is clear. It never names siblings like vendas_bairro or vendas_predio as alternatives, so the routing is implied rather than explicit.

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. 10 tool updates
    • First observedbuscar_imoveis
    • First observedcomparaveis_endereco
    • First observedcomparaveis_imovel
    • First observedficha_imovel
    • First observedpara_voce
    • First observedranking_bairros
    • First observedresumo_bairro
    • First observedvendas_bairro
    • First observedvendas_predio
    • First observedvendas_rua

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural-language queries for São Paulo's official reference property value (Valor Venal de Referência) via a hosted, read-only MCP tool with prepaid per-query credit.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Search comparable property sales across 16 global markets with 43M+ government-sourced transactions. Tools: search comps by location, get area statistics and trends, list available markets. Covers UK, France, Singapore, NYC, Chicago, Dubai, and 10 more cities.
    3
    4
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides access to actual residential and commercial real estate transaction prices in Japan.
    217 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.