Imóveis à venda em São Paulo · itbisp.com
Server Details
Homes for sale in São Paulo: 330+ agencies deduplicated, price vs comparables, real ITBI sales.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 6 tools
The resources are mostly distinct, but three tools (comparaveis_endereco, comparaveis_imovel, ficha_imovel) all advertise answering 'esse preço é bom?', so an agent could easily pick the wrong one for a price-fairness question. There is also friction between buscar_imoveis and para_voce, since both accept a free-text q with lifestyle constraints ('trabalho na Faria Lima, pais em Santana'), and only careful reading reveals that one returns listings while the other ranks them.
All names are lowercase snake_case Portuguese, which is predictable and readable. The pattern is slightly mixed in structure: buscar_imoveis is verb-first, while comparaveis_endereco, comparaveis_imovel, ficha_imovel and resumo_bairro are noun-first, and para_voce is a prepositional phrase that follows no pattern at all.
Six tools is well-scoped for a real-estate search server: one search, one detail record, two comparables views, one neighborhood aggregate, and one personalization ranking. Each tool maps to a genuine user question and none feels like filler.
The lifecycle is covered end-to-end within the stated São Paulo sale-only scope: discovery, full property detail, price evidence, address valuation, and neighborhood market stats, with no obvious dead ends. Gaps are minor: no saved properties/alerts, no agency directory lookup, and no historical market-trend tool beyond per-property price history and 12-month ITBI figures.
Available Tools
6 toolsbuscar_imoveisBuscar imóveis à venda em São PauloARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Pedido 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). | |
| lat | No | Latitude do ponto de referência (use com lon e raio_m). Reference point latitude. | |
| lon | No | Longitude do ponto de referência. Reference point longitude. | |
| rua | No | Nome da rua, com ou sem 'Rua'/'Av.': "Rua dos Pinheiros". Street name. | |
| bbox | No | Caixa [oeste, sul, leste, norte] em graus. Bounding box [west, south, east, north]. | |
| tipo | No | Tipos aceitos. Studio/flat/kitnet/cobertura são 'apartamento'; sobrado é 'casa'. Property types. | |
| ordem | No | Ordem. 'relevancia' põe primeiro preço bom, com foto e confirmado por várias imobiliárias; 'mais_perto' exige lat/lon. Sort order. | relevancia |
| visao | No | Etiquetas estimadas pela foto principal do anúncio (todas valem). Photo-based tags (estimates). | |
| bairro | No | Um ou mais bairros, como as pessoas escrevem: ["Pinheiros", "Vila Madalena"]. Neighborhood names. | |
| limite | No | Quantos imóveis devolver (1-20). Results per page. | |
| pagina | No | Página de resultados. Page number. | |
| raio_m | No | Raio em metros em torno de lat/lon. Radius in meters. | |
| estacao | No | Estação de metrô/trem/monotrilho mais próxima do imóvel: "Fradique Coutinho", "Faria Lima". Nearest station name. | |
| subtipo | No | Subtipo estimado pelo anúncio: cobertura, studio, casa_condominio (casa em condomínio fechado)... Sub-type. | |
| area_max | No | Área máxima em m². Max area (m²). | |
| area_min | No | Área mínima em m² (privativa/útil do anúncio). Min area (m²). | |
| poligono | No | Anel do polígono como lista de [lon, lat] (GeoJSON). Polygon ring as [lon, lat] pairs. | |
| preco_max | No | Preço máximo em reais: 1,5 milhão = 1500000. Max price (BRL). | |
| preco_min | No | Preço mínimo em reais. Min price (BRL). | |
| reformado | No | Só imóveis reformados, pela foto ou pelo texto do anúncio. Renovated (photo or listing text). | |
| vagas_min | No | Vagas de garagem, no mínimo. Min parking spots. | |
| suites_min | No | Suítes, no mínimo. Min suites. | |
| metro_max_m | No | Distâ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_min | No | Quartos (dormitórios), no mínimo. Min bedrooms. | |
| so_preco_bom | No | Só 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_predio | No | Mostra 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. | |
| caracteristicas | No | Caracterí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_avaliacao | No | Corta 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
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.
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.
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.
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.
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.
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 PauloARead-onlyIdempotentInspect
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'.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude, se não houver endereço. Latitude if no address. | |
| lon | No | Longitude. Longitude. | |
| area | No | Área do imóvel avaliado em m²; filtra comparáveis de tamanho parecido e gera a estimativa. Area in m². | |
| tipo | No | Tipo do imóvel avaliado (padrão: o mais comum no prédio, ou apartamento). Property type. | |
| limite | No | Quantos comparáveis listar. How many comparables. | |
| raio_m | No | Raio dos comparáveis ao redor, em metros. Radius in meters. | |
| quartos | No | Quartos do imóvel avaliado. Bedrooms. | |
| endereco | No | Rua e número: "Rua Fradique Coutinho, 1000". Street and number. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | id do imóvel (campo id de buscar_imoveis), ex. im_bae2c52d4cc3. Property id. | |
| limite | No | Quantos comparáveis mostrar. How many comparables. |
TDQS
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.
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.
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.
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.
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.
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 à vendaARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | id do imóvel devolvido por buscar_imoveis (ex.: im_1217cd8f3590). Property id. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Pedido 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. | |
| modo | No | Como vai ao trabalho. Commute mode. | transporte |
| tipo | No | ||
| metro | No | 'sim' quando metrô perto é importante. | |
| limite | No | ||
| bairros | No | Bairros preferidos. Preferred neighborhoods. | |
| pessoas | No | Pessoas ou lugares para ficar perto: [{quem:'pais', onde:'Santana'}, {quem:'escola', onde:'Rua X, 100'}]. People/places to be close to. | |
| area_min | No | ||
| objetivo | No | morar | |
| trabalho | No | Endereço ou lugar do trabalho/estudo: 'Av. Paulista, 1000', 'Faria Lima', 'USP'. Work or study place. | |
| preco_max | No | ||
| tempo_max | No | Minutos aceitáveis até o trabalho. Max commute minutes. | |
| vagas_min | No | ||
| essenciais | No | O que não abre mão. Must-haves. | |
| quartos_min | No |
TDQS
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.
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.
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.
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.
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.
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.
resumo_bairroPreços de um bairro de São PauloARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | Tipo de imóvel. Property type. | apartamento |
| bairro | Yes | Nome do bairro: "Moema", "Vila Madalena". Neighborhood name. |
TDQS
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.
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.
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.
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.
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.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- First observed
buscar_imoveis - First observed
comparaveis_endereco - First observed
comparaveis_imovel - First observed
ficha_imovel - First observed
para_voce - First observed
resumo_bairro
Related MCP Connectors
Brazil property listings for sale/rent from 4 major portals, one schema, optional USD (PTAX) price.
Search Brazilian real estate, simulate financing, qualify leads, schedule visits.
Preço do m² por bairro em 109 cidades do Brasil, nos 27 estados. Dados abertos, todo mês.
First-party Spanish and Portuguese property listings with notary-verified prices.
Related MCP Servers
AlicenseAqualityAmaintenance7M+ real estate transactions from Poland's RCN registry. Search, compare, and analyze prices30174 npm1MIT- FlicenseNot gradedqualityFmaintenanceFrench real estate data platform for AI agents. Identifies property owners likely to sell and tracks behavioral signals on active listings. Coverage: metropolitan France.-
- AlicenseAqualityDmaintenanceSearch 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.34MIT
- AlicenseAqualityBmaintenanceUnified UK property search across major portals with deduplication and open-data enrichment, enabling natural-language queries for listings, sold prices, EPC, crime, schools, and market stats.10MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.