Skip to main content
Glama

IBGE Brasil MCP

Ownership verified

Server Details

MCP server for live, sourced Brazilian public data from the official IBGE APIs.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
SidneyBissoli/ibge-br-mcp
GitHub Stars
2
Server Listing
ibge-br-mcp

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 22 of 22 tools scored. Lowest: 3.8/5.

Server CoherenceA
Disambiguation4/5

Most tools have clearly distinct purposes, reinforced by explicit 'Use a different tool when...' notes. Some overlap between ibge_sidra and its wrappers (ibge_censo, ibge_indicadores) could confuse an agent, but descriptions mitigate this.

Naming Consistency4/5

The vast majority follow the ibge_<noun> pattern (e.g., ibge_censo, ibge_cidades). However, the tool 'datasaude' breaks this pattern by omitting the ibge_ prefix, introducing minor inconsistency.

Tool Count3/5

With 22 tools, the count is at the upper end of what is appropriate for a single server. While each tool has a defined role, the large number may overwhelm agents and suggests room for consolidation.

Completeness4/5

The tool surface covers health, demographics, economy, geography, names, news, and surveys with good depth. Minor gaps exist (e.g., no dedicated foreign trade tool), but SIDRA access fills most needs.

Available Tools

22 tools
datasaudeA
Read-onlyIdempotent
Inspect

Queries Brazil health indicators, served through IBGE's SIDRA (some originally produced by DataSUS, e.g. mortality and births).

Mortality and Birth:

  • mortalidade_infantil: Infant mortality rate

  • nascidos_vivos: Live births by location

  • obitos: Deaths by residence

  • obitos_causas: Deaths by cause (ICD-10)

Demographic Indicators:

  • esperanca_vida: Life expectancy at birth

  • fecundidade: Fertility rate

Sanitation:

  • saneamento_agua: Water supply

  • saneamento_esgoto: Sewage system

Health Coverage:

  • plano_saude: Health insurance coverage

  • autoavaliacao_saude: Self-rated health status

Territorial levels: 1=Brazil, 2=Region, 3=State, 6=Municipality

Examples:

  • Infant mortality: indicador="mortalidade_infantil"

  • Life expectancy by state: indicador="esperanca_vida", nivel_territorial="3"

  • Deaths in SP: indicador="obitos", nivel_territorial="3", localidade="35"

  • List indicators: indicador="listar"

Use a different tool when:

  • A single municipality's general panel (which also includes infant mortality) → ibge_cidades

  • Population/demographic counts (not health-specific) → ibge_censo or ibge_sidra

Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns Markdown plus a typed structuredContent payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
camposNoSelecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta.
formatoNoFormato de saídatabela
periodoNoPeríodo: 'last', 'all', ou ano específicolast
indicadorYesIndicador de saúde. Disponíveis: - mortalidade_infantil: Taxa de mortalidade infantil - esperanca_vida: Esperança de vida ao nascer - nascidos_vivos: Nascidos vivos - obitos: Óbitos por local de residência - obitos_causas: Óbitos por causas (CID-10) - fecundidade: Taxa de fecundidade - saneamento_agua: Abastecimento de água - saneamento_esgoto: Esgotamento sanitário - plano_saude: Cobertura de plano de saúde - listar: Lista indicadores disponíveis
localidadeNoCódigo da localidade ou 'all'all
nivel_territorialNoNível territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=Município1

Output Schema

ParametersJSON Schema
NameRequiredDescription
nomeNoNome do indicador
fonteNoFonte do dado
colunasYesRótulos das colunas, na ordem
indicadorNoChave do indicador de saúde consultado
registrosYesRegistros: cada um mapeia rótulo da coluna -> valor
totalRegistrosYesTotal de registros de dados
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false. The description adds that it's a live GET against the public IBGE SIDRA API and returns Markdown plus typed structuredContent. This confirms behavior without contradicting annotations.

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

Conciseness5/5

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

The description is well-structured with a summary, bullet lists for indicators and territorial levels, and usage examples. It is concise yet comprehensive, front-loading the core purpose.

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?

Given the tool's complexity (6 parameters, multiple indicators, territorial levels), the description covers purpose, parameters, examples, and sibling differentiation. Output schema exists, so return values need not be described in detail. No significant gaps.

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 baseline is 3. The description adds overall context and examples, but parameter-level details are already well-covered in the schema. Some extra value from usage examples but not significant beyond 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 clearly states the tool queries Brazil health indicators from IBGE's SIDRA/DataSUS. It lists specific indicators, territorial levels, and provides examples, making the purpose distinct from sibling tools like ibge_cidades or ibge_sidra.

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

Usage Guidelines5/5

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

Explicit 'Use a different tool when' section directs to ibge_cidades for general municipal panels and ibge_censo/ibge_sidra for population counts. Examples illustrate correct usage for various scenarios.

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

ibge_calendarioA
Read-onlyIdempotent
Inspect

Queries IBGE release and collection calendar.

Features:

  • List upcoming survey releases

  • Filter by product (IPCA, PNAD, GDP, etc.)

  • Filter by period

  • Distinguish releases from field collections

Event types:

  • Release: Publication of survey results

  • Collection: Field research period

Examples:

  • Upcoming releases: (no parameters)

  • IPCA releases: produto="IPCA"

  • 2024 calendar: de="01/01/2024", ate="31/12/2024"

  • Field collections: tipo="coleta"

Use a different tool when:

  • Already-published news and releases → ibge_noticias

Behavior: read-only and idempotent — a live GET against the public IBGE Calendário API. Returns a Markdown list.

ParametersJSON Schema
NameRequiredDescriptionDefault
deNoData inicial no formato DD/MM/AAAA (ex: '01/01/2024')
ateNoData final no formato DD/MM/AAAA (ex: '31/12/2024')
tipoNoTipo de evento: 'divulgacao' (publicações), 'coleta' (pesquisas de campo), ou 'todos'divulgacao
paginaNoNúmero da página (padrão: 1)
produtoNoFiltrar por produto/pesquisa (ex: 'IPCA', 'PNAD', 'PIB')
quantidadeNoQuantidade de resultados por página (padrão: 20)
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds the return format (Markdown list) and that it's a live GET API call, which provides additional behavioral context beyond the annotations.

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

Conciseness5/5

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

Well-structured with a summary, feature list, event types, examples, alternative tool mention, and behavior note. No redundant sentences; each part earns its place.

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?

Despite no output schema, the description explains the return format (Markdown list) and covers purpose, parameter usage, and behavioral traits. With 6 optional parameters, this is sufficient for an agent to use 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 coverage is 100% with descriptions in Portuguese. Description provides usage examples for parameters (produto, de/ate, tipo) but does not add substantive new meaning beyond what the schema already defines, meeting the baseline.

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 clearly states it queries the IBGE release and collection calendar, lists specific features like filtering by product and period, and distinguishes from sibling tool ibge_noticias by specifying when to use that instead.

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

Usage Guidelines5/5

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

Explicitly provides a when-not condition: 'Use a different tool when: Already-published news and releases → ibge_noticias'. Also gives multiple examples of usage scenarios (no parameters, IPCA filter, date range, field collections).

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

ibge_censoA
Read-onlyIdempotent
Inspect

Queries IBGE Demographic Census data (1970-2022).

Simplified tool to access census data without knowing SIDRA table codes.

Available years: 1970, 1980, 1991, 2000, 2010, 2022

Available themes:

  • populacao: Resident population

  • alfabetizacao: Literacy rate

  • domicilios: Housing characteristics

  • idade_sexo: Age pyramid

  • religiao: Religion distribution

  • cor_raca: Race/color

  • rendimento: Monthly income

  • educacao: Education level

  • trabalho: Employment

Examples:

  • Population 2022: ano="2022", tema="populacao"

  • Historical series: ano="todos", tema="populacao"

  • Literacy 2010 by state: ano="2010", tema="alfabetizacao", nivel_territorial="3"

  • List tables: tema="listar"

Use a different tool when:

  • Current real-time Brazil population → ibge_populacao

  • One municipality's current panel (estimate, HDI, GDP) → ibge_cidades

  • Comparing/ranking localities → ibge_comparar

  • An arbitrary SIDRA table → ibge_sidra

Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns Markdown plus a typed structuredContent payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno do censo (1970, 1980, 1991, 2000, 2010, 2022) ou 'todos' para série histórica
temaNoTema dos dados: - populacao: População residente - alfabetizacao: Taxa de alfabetização - domicilios: Características dos domicílios - idade_sexo: Pirâmide etária - religiao: Distribuição por religião - cor_raca: Cor ou raça - rendimento: Rendimento mensal - migracao: Migração - educacao: Nível de instrução - trabalho: Ocupação e trabalho - indigenas: População indígena - quilombolas: População quilombola - saneamento: Abastecimento de água e esgoto - deficiencia: Pessoas com deficiência - nupcialidade: Estado civil - fecundidade: Taxa de fecundidade - listar: Lista tabelas disponíveispopulacao
camposNoSelecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta.
formatoNoFormato de saídatabela
localidadesNoCódigos das localidades ou 'all'all
nivel_territorialNoNível territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=Município1

Output Schema

ParametersJSON Schema
NameRequiredDescription
anoNoAno(s) de referência
temaNoTema do censo consultado
tabelaNoTabela SIDRA de origem
colunasYesRótulos das colunas, na ordem
descricaoNoDescrição da tabela
registrosYesRegistros: cada um mapeia rótulo da coluna -> valor
totalRegistrosYesTotal de registros de dados
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint false. The description adds that it is a live GET against the public IBGE SIDRA API and returns both Markdown and structuredContent, which goes beyond annotations.

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

Conciseness5/5

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

Well-structured with clear sections: purpose, years, themes, examples, alternatives, behavior. Front-loaded with the main purpose. Every sentence adds value with no 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?

Given the tool's complexity (6 parameters, many enums, no required params), the description is fully complete. It covers all parameters through examples, lists themes extensively, and mentions output format (Markdown + structuredContent).

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% with detailed enum descriptions. The description adds value with usage examples (e.g., historical series with 'todos', listing tables with 'listar') and explains the 'campos' parameter to reduce response volume.

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 clearly states the tool queries IBGE Demographic Census data (1970-2022) and lists available years and themes. It distinguishes from siblings by providing specific alternatives (ibge_populacao, ibge_cidades, etc.).

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

Usage Guidelines5/5

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

Explicitly provides when to use this tool (census data) and when to use other tools (current population, municipality panels, comparisons, arbitrary SIDRA tables). Includes concrete examples of valid inputs.

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

ibge_cidadesA
Read-onlyIdempotent
Inspect

Queries municipal indicators from IBGE (similar to Cidades@ portal).

Features:

  • General overview of a municipality (population, HDI, GDP, etc.)

  • Query specific indicators

  • Historical indicator data over years

  • List available surveys and indicators

Available indicators: populacao, area, densidade, pib_per_capita, idh, escolarizacao, mortalidade, salario_medio, receitas, despesas

Examples:

  • São Paulo overview: tipo="panorama", municipio="3550308"

  • Population history: tipo="historico", municipio="3550308", indicador="populacao"

  • View surveys: tipo="pesquisas"

  • Available indicators: tipo="indicador"

This tool is the panel for a SINGLE municipality (Cidades@). Use a different tool when:

  • Real-time Brazil population → ibge_populacao

  • Census themes / historical series → ibge_censo

  • Comparing multiple municipalities → ibge_comparar

  • A macro indicator time series → ibge_indicadores

Behavior: read-only and idempotent — a live GET against the public IBGE APIs (Cidades@/agregados). Returns Markdown plus a typed structuredContent payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoCódigo ou sigla da UF para filtrar (ex: 35 ou SP)
tipoNoTipo de consulta: panorama (resumo geral), indicador (específico), pesquisas (listar), historicopanorama
pesquisaNoID da pesquisa para filtrar indicadores
indicadorNoID do indicador ou nome para busca
municipioNoCódigo IBGE do município (7 dígitos)

Output Schema

ParametersJSON Schema
NameRequiredDescription
nomeNoNome do município/indicador
tipoYesTipo de consulta (panorama, indicador, pesquisas, historico)
municipioNoCódigo IBGE do município
indicadoresYesIndicadores retornados (vazio para respostas de catálogo)
Behavior5/5

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

Description adds behavioral context beyond annotations: specifies it is a live GET against public IBGE APIs, returns Markdown plus typed structured content. Annotations already declare readOnly, idempotent, and non-destructive, and description reinforces without contradiction.

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

Conciseness5/5

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

Description is concise (short paragraphs, bullet points, and examples), well-structured with clear sections, and front-loaded with the main purpose. Every sentence provides useful information without 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?

Given tool complexity (5 parameters, multiple query types), description completely covers functionality: available indicators, example uses, return format, and relationship to siblings. Output schema exists, so no need to detail return fields.

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. Description adds value by listing available indicator names (populacao, area, etc.) and providing concrete examples showing parameter combinations, though schema already documents each parameter well.

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?

Description clearly states it queries municipal indicators from IBGE's Cidades@ portal, lists specific features (panorama, historical, surveys), and provides examples. It distinguishes itself from 4 sibling tools by name and use case.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool (single municipality panel) and when not to, listing 4 alternative tools (ibge_populacao, ibge_censo, ibge_comparar, ibge_indicadores) with specific scenarios.

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

ibge_cnaeA
Read-onlyIdempotent
Inspect

Queries CNAE (National Classification of Economic Activities) from IBGE.

CNAE is the official classification for economic activities in Brazil.

Hierarchical structure:

  • Section (letter A-U): 21 main categories

  • Division (2 digits): 87 divisions

  • Group (3 digits): 285 groups

  • Class (4-5 digits): 673 classes

  • Subclass (7 digits): 1,332 subclasses

Features:

  • Search by CNAE code

  • Search by activity description

  • List by hierarchical level

  • Show complete hierarchy

Examples:

  • Search software: busca="software"

  • Specific code: codigo="6201-5/01"

  • View section: codigo="J"

  • List divisions: nivel="divisoes"

Behavior: read-only and idempotent — a live GET against the public IBGE CNAE API. Returns Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
buscaNoTermo para buscar na descrição das atividades (ex: 'software', 'restaurante', 'comércio')
nivelNoNível hierárquico para listar (padrão: mostra todos os níveis relevantes)
codigoNoCódigo CNAE para buscar (seção, divisão, grupo, classe ou subclasse). Exemplos: - Seção: "A" (agricultura) - Divisão: "01" (agricultura e pecuária) - Grupo: "01.1" (produção de lavouras) - Classe: "01.11" (cultivo de cereais) - Subclasse: "0111-3/01" (cultivo de arroz)
limiteNoNúmero máximo de resultados (padrão: 20)
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by specifying it is a 'live GET against the public IBGE CNAE API' and 'Returns Markdown', which provides behavioral context beyond the annotations.

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 description is well-structured with bullet points for hierarchy, features, and examples. It is front-loaded with the main purpose and each section adds relevant information. While slightly verbose, it remains efficient and earns its length.

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?

Given the tool has 4 parameters, no output schema, and annotations covering safety, the description provides adequate context: explains the classification system, features, and return format (Markdown). Lacks details on error handling or empty results, but overall complete for its complexity.

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?

The input schema covers all parameters with 100% description coverage (baseline 3). The description enriches understanding with practical examples (e.g., busca='software', codigo='6201-5/01') and explains the hierarchical code structure, adding meaning 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?

The description clearly states the tool queries CNAE from IBGE, explains what CNAE is, and provides a detailed hierarchical structure. While it does not explicitly distinguish from sibling tools, the specific focus on economic activities makes the purpose unambiguous.

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 lists features (search by code, description, hierarchy level) and provides examples, implying when to use the tool. However, it does not provide explicit guidance on when not to use this tool or mention alternative sibling tools, leaving usage context somewhat implied.

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

ibge_compararA
Read-onlyIdempotent
Inspect

Compares data between localities (municipalities or states).

Available indicators:

  • populacao: Current population estimate

  • populacao_censo: Census 2022 population

  • pib: GDP per capita

  • area: Territorial area (km²)

  • densidade: Population density (inhab/km²)

  • alfabetizacao: Literacy rate

  • domicilios: Number of households

Features:

  • Compare up to 10 localities at once

  • Calculate statistics (max, min, average, variation)

  • Generate ranked output

  • Accept municipality codes (7 digits) or state codes (2 digits)

Examples:

  • Compare capitals: localidades="3550308,3304557,4106902", indicador="populacao"

  • Compare states: localidades="35,33,41", indicador="pib"

  • Area ranking: localidades="3550308,3304557", formato="ranking"

  • List indicators: indicador="listar"

Use this tool ONLY to rank/compare 2–10 localities on one indicator. For a single locality, use ibge_cidades (municipal panel), ibge_censo, or ibge_sidra.

Behavior: read-only and idempotent — a live GET against the public IBGE APIs (SIDRA and Localidades). Returns Markdown plus a typed structuredContent payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatoNoFormato de saída: tabela, json ou ranking (ordenado)tabela
indicadorNoIndicador para comparação: - populacao: Estimativa populacional atual - populacao_censo: População do Censo 2022 - pib: PIB per capita - area: Área territorial (km²) - densidade: Densidade demográfica (hab/km²) - alfabetizacao: Taxa de alfabetização - domicilios: Número de domicílios - listar: Lista indicadores disponíveispopulacao
localidadesYesCódigos IBGE das localidades separados por vírgula (ex: "3550308,3304557,4106902"). Use 7 dígitos para municípios, 2 dígitos para UFs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nomeNoNome do indicador
tabelaNoTabela SIDRA de origem
formatoNoFormato solicitado
indicadorNoIndicador comparado
localidadesYesLocalidades comparadas, com o valor do indicador
estatisticasNoEstatísticas agregadas (quando há ao menos 2 valores positivos)
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that it's a live GET against IBGE APIs and returns Markdown plus structuredContent payload, providing useful context beyond annotations.

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?

Well-structured with bullet points and examples. While detailed, all information is relevant and front-loaded; minor redundancy with schema descriptions.

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?

Thorough coverage: purpose, alternatives, behavior, parameter semantics, output format, and examples. Output schema exists, so return values are handled.

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% with descriptions. Description further adds examples, constraints (max 10 localities), and indicator list context, surpassing the baseline 3.

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?

Clear verb 'compares' and resource 'localities data' with specific scope (municipalities/states). Distinguishes from siblings like ibge_cidades (single locality) and ibge_sidra.

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

Usage Guidelines5/5

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

Explicitly states 'Use this tool ONLY to rank/compare 2–10 localities on one indicator' and lists alternatives for single locality queries (ibge_cidades, ibge_censo, ibge_sidra).

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

ibge_estadosA
Read-onlyIdempotent
Inspect

Lists all Brazilian states from IBGE.

Features:

  • Lists all 27 states (26 states + Federal District)

  • Filter by region (North, Northeast, Southeast, South, Central-West)

  • Sort by ID, name, or abbreviation

Examples:

  • List all states: (no parameters)

  • Northeast states: regiao="NE"

  • Sorted by abbreviation: ordenar="sigla"

Use a different tool when:

  • Municipalities of a state → ibge_municipios

  • Details/hierarchy of one locality by code → ibge_localidade

Behavior: read-only and idempotent — a live GET against the public IBGE Localidades API. Returns a Markdown table.

ParametersJSON Schema
NameRequiredDescriptionDefault
regiaoNoFiltrar por região: N (Norte), NE (Nordeste), SE (Sudeste), S (Sul), CO (Centro-Oeste)
ordenarNoCampo para ordenação dos resultadosnome
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds that it is a live GET against a public API and returns a Markdown table, which is useful but not extensive.

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 description is well-structured with sections for features, examples, and alternatives. It is concise but includes a minor redundancy (listing 27 states twice).

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?

Given no output schema, the description covers return format (Markdown table), all parameters are documented, and sibling tools are referenced. It is complete for the tool's complexity.

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% with clear enum descriptions. The description adds value by providing usage examples and listing enum values in plain text, aiding agent understanding beyond 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 clearly states it lists all Brazilian states, specifies the count (27 states), and distinguishes from sibling tools by directing users to ibge_municipios for municipalities and ibge_localidade for locality details.

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

Usage Guidelines5/5

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

Explicitly provides when-to-use guidance with examples (no parameters, region filter, sort) and when-not-to-use by specifying alternative tools for municipalities and locality details.

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

ibge_geocodigoA
Read-onlyIdempotent
Inspect

Decodes IBGE codes or searches codes by locality name.

Features:

  • Decode region, state, municipality, or district codes

  • Search IBGE code by name

  • Show complete geographic hierarchy

  • Return related codes

Code structure:

  • 1 digit: Region (1=North, 2=Northeast, 3=Southeast, 4=South, 5=Central-West)

  • 2 digits: State (11-53)

  • 7 digits: Municipality

  • 9 digits: District

Examples:

  • Decode municipality: codigo="3550308"

  • Decode state: codigo="35"

  • Search by name: nome="São Paulo"

  • Municipality in state: nome="Campinas", uf="SP"

This tool decodes a code's structure and resolves name→code at any level. Use a different tool when:

  • You only need to list/search municipalities → ibge_municipios

  • You want the full detailed record of one locality → ibge_localidade

Behavior: read-only and idempotent — a live GET against the public IBGE Localidades API. Returns Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoEstado por sigla (SP), nome (São Paulo) ou código IBGE (35) para restringir a busca por nome de município
nomeNoNome da localidade para encontrar o código IBGE (estado ou município)
codigoNoCódigo IBGE para decodificar. Formatos aceitos: - 1 dígito: Região (1-5) - 2 dígitos: UF (11-53) - 7 dígitos: Município - 9 dígitos: Distrito
Behavior5/5

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

Annotations provide readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description confirms with 'read-only and idempotent — a live GET against the public IBGE Localidades API. Returns Markdown.' No contradiction; adds context about API call and return format.

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 description is well-structured with clear sections (features, code structure, examples, alternatives). It is slightly verbose but every part adds value. Front-loads purpose and features.

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?

Given the tool's complexity (code decoding), full parameter schema, rich annotations, and no output schema, the description is thorough. It explains what the tool returns (Markdown) and covers all usage scenarios, making it self-contained.

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

Parameters5/5

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

Schema coverage is 100% with parameter descriptions. The description adds significant meaning: explains code structure (1/2/7/9 digits), provides multiple examples for each parameter, and clarifies how parameters interact (e.g., using uf to restrict municipality search).

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 clearly states the tool decodes IBGE codes or searches codes by locality name, lists features, explains code structure, and provides examples. It distinguishes from sibling tools ibge_municipios and ibge_localidade by specifying when to use them instead.

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

Usage Guidelines5/5

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

The description explicitly says 'Use a different tool when:' and lists two specific alternatives with their purposes. Examples show how to use parameters for different scenarios (decode code, search by name, restrict by UF).

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

ibge_indicadoresA
Read-onlyIdempotent
Inspect

Queries IBGE economic and social indicators.

Available indicators:

Economic:

  • pib: GDP at current prices

  • pib_variacao: GDP variation (%)

  • pib_per_capita: GDP per capita

  • industria: Industrial production

  • comercio: Retail sales

  • servicos: Services volume

Prices:

  • ipca: Monthly IPCA

  • ipca_acumulado: 12-month IPCA

  • inpc: Monthly INPC

Labor:

  • desemprego: Unemployment rate

  • ocupacao: Employed people

  • rendimento: Average income

  • informalidade: Informality rate

Population:

  • populacao: Population estimate

  • densidade: Population density

Examples:

  • GDP: indicador="pib"

  • IPCA last 12 months: indicador="ipca", periodos="last 12"

  • Unemployment by state: indicador="desemprego", nivel_territorial="3"

  • List indicators: indicador="listar"

Use a different tool when:

  • Comparing/ranking localities → ibge_comparar

  • Census themes → ibge_censo

  • One municipality's panel → ibge_cidades

Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns Markdown plus a typed structuredContent payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
camposNoSelecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta.
formatoNoFormato de saídatabela
periodosNoPeríodos (ex: '2023', 'last', 'last 4')last
categoriaNoFiltrar por categoria de indicadores
indicadorNoNome do indicador (ex: "pib", "ipca", "desemprego", "populacao"). Use "listar" para ver todos os indicadores disponíveis.
localidadesNoCódigos das localidades ou 'all'all
nivel_territorialNoNível territorial (código N): 1=Brasil, 2=Região, 3=UF1

Output Schema

ParametersJSON Schema
NameRequiredDescription
nomeNoNome do indicador
tabelaNoTabela SIDRA de origem
colunasYesRótulos das colunas, na ordem
indicadorNoChave do indicador consultado
registrosYesRegistros: cada um mapeia rótulo da coluna -> valor
totalRegistrosYesTotal de registros de dados
Behavior5/5

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

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. The description adds that it is a read-only, idempotent live GET against the public IBGE SIDRA API, and returns Markdown plus a typed structuredContent payload. This enriches beyond annotations.

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

Conciseness5/5

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

Well-structured with bullet points for indicator categories and examples. Concise yet comprehensive, with front-loaded purpose and clear formatting.

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?

Given 7 parameters, none required, and an output schema, the description provides a complete overview: purpose, available indicators, usage examples, behavior, and alternatives. No gaps.

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 covers 100% of parameters with descriptions. The description lists available indicator names and usage examples but does not significantly add to parameter meaning beyond what the schema already provides. 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?

The description clearly states it queries IBGE economic and social indicators, listing specific categories and indicators. It distinguishes from siblings by naming alternative tools for different use cases (ibge_comparar, ibge_censo, ibge_cidades).

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

Usage Guidelines5/5

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

Explicitly states when to use alternative tools: comparing localities → ibge_comparar, census themes → ibge_censo, municipal panel → ibge_cidades. Includes examples of typical queries (GDP, IPCA, unemployment).

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

ibge_localidadeA
Read-onlyIdempotent
Inspect

Returns details of a specific locality by IBGE code.

Features:

  • State information (2-digit code)

  • Municipality information (7-digit code)

  • District information (9-digit code)

  • Complete hierarchy (region, mesoregion, microregion)

Examples:

  • São Paulo state: codigo=35

  • São Paulo city: codigo=3550308

  • District: codigo=355030805

This tool returns the full record of ONE locality you already have the code for. Use a different tool when:

  • You have a name and need the code → ibge_municipios (municipalities) or ibge_geocodigo (any level)

  • You want to decompose/understand a code's structure → ibge_geocodigo

Behavior: read-only and idempotent — a live GET against the public IBGE Localidades API. Returns a Markdown record.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoNoTipo da localidade. Se não informado, será inferido pelo tamanho do código.
codigoYesCódigo IBGE da localidade (estado: 2 dígitos, município: 7 dígitos, distrito: 9 dígitos)
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds specificity: 'live GET against public IBGE API' and 'returns Markdown record', providing richer behavioral context.

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

Conciseness5/5

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

Well-structured with front-loaded purpose, features list, examples, usage guidelines, and behavior summary. Every sentence adds value without 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?

Covers input, output (Markdown record), behavior, and use cases. No missing information given the tool's simplicity and presence of annotations.

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

Parameters5/5

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

Schema description coverage is 100%. Description adds examples mapping codes to types and clarifies that 'tipo' is optional and inferred from code length, providing meaning beyond 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?

Clear verb+resource: 'Returns details of a specific locality by IBGE code.' Examples and sibling differentiation make purpose unambiguous.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool (when you have a code) and when to use alternatives (ibge_municipios, ibge_geocodigo) for names or code decomposition.

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

ibge_malhasA
Read-onlyIdempotent
Inspect

Gets geographic meshes (maps) from IBGE in GeoJSON, TopoJSON, or SVG format.

Features:

  • Meshes for Brazil, regions, states, municipalities

  • Different resolution levels (internal divisions)

  • Different quality levels

  • Formats: GeoJSON (data), TopoJSON (compact), SVG (image)

Locality types:

  • "BR" or "1" = Entire Brazil

  • State abbreviation (e.g., "SP", "RJ")

  • State code (e.g., "35" for SP)

  • Municipality code (7 digits)

Resolution (internal divisions):

  • 0 = Outline only

  • 2 = States

  • 5 = Municipalities

Examples:

  • Brazil with states: localidade="BR", resolucao="2"

  • São Paulo with municipalities: localidade="SP", resolucao="5"

  • SVG format: localidade="BR", formato="svg"

Use a different tool when:

  • Thematic meshes (biomes, Legal Amazon, semi-arid, metropolitan regions) → ibge_malhas_tema

Behavior: read-only and idempotent — a live GET against the public IBGE Malhas API. Returns the mesh in the requested format (GeoJSON, TopoJSON, or SVG).

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoNoTipo de divisão territorial
formatoNoFormato de saída (padrão: geojson)geojson
qualidadeNoQualidade do traçado: 1=mínima, 2=baixa, 3=intermediária, 4=máxima4
resolucaoNoResolução/divisões internas: 0 = Sem divisões internas 1 = Macrorregiões (apenas para BR) 2 = Unidades da Federação 3 = Mesorregiões 4 = Microrregiões 5 = Municípios0
localidadeYesCódigo IBGE ou sigla da localidade (ex: 'BR', 'SP', '35', '3550308')
intrarregiaoNoCódigo de região para filtrar (apenas quando localidade=BR)
Behavior4/5

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

Annotations already declare readOnly and idempotent. Description adds that it's a live GET against the public IBGE Malhas API. This is good context but not critical beyond annotations.

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

Conciseness5/5

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

Well-structured with clear sections, bullet points, and examples. Every sentence serves a purpose. Front-loaded with core functionality.

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?

Given 6 parameters (4 enums) and no output schema, the description fully covers usage, parameters, alternatives, and behavior. Complete for agent invocation.

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

Parameters5/5

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

Schema coverage is 100% baseline. Description significantly adds value with detailed explanations of locality types, resolution meanings, and concrete examples, going beyond schema 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?

The description clearly states the tool gets geographic meshes from IBGE in specific formats. It distinguishes itself from sibling ibge_malhas_tema by mentioning thematic meshes as a separate case.

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

Usage Guidelines5/5

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

Explicitly tells when to use a different tool (ibge_malhas_tema for thematic meshes) and provides detailed examples for various locality types and resolutions.

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

ibge_malhas_temaA
Read-onlyIdempotent
Inspect

Gets thematic geographic meshes from IBGE.

Available themes:

  • biomas: Brazilian biomes (Amazon, Cerrado, Atlantic Forest, Caatinga, Pampa, Pantanal)

  • amazonia_legal: Legal Amazon area

  • semiarido: Semi-arid region

  • costeiro: Coastal zone

  • fronteira: Border strip

  • metropolitana: Metropolitan regions

  • ride: Integrated Development Regions

Biome codes:

  • 1: Amazon

  • 2: Cerrado

  • 3: Atlantic Forest

  • 4: Caatinga

  • 5: Pampa

  • 6: Pantanal

Examples:

  • All biomes: tema="biomas"

  • Amazon biome: tema="biomas", codigo="1"

  • Legal Amazon: tema="amazonia_legal"

  • Metropolitan regions: tema="metropolitana"

  • With municipalities: tema="biomas", resolucao="5"

  • List themes: tema="listar"

Use a different tool when:

  • Administrative meshes (Brazil/region/state/municipality outlines) → ibge_malhas

Behavior: read-only and idempotent — a live GET against the public IBGE Malhas API. Returns the mesh in the requested format (GeoJSON, TopoJSON, or SVG).

ParametersJSON Schema
NameRequiredDescriptionDefault
temaYesTema da malha: - biomas: Biomas brasileiros (Amazônia, Cerrado, etc.) - amazonia_legal: Área da Amazônia Legal - semiarido: Região do semiárido - costeiro: Zona costeira - fronteira: Faixa de fronteira - metropolitana: Regiões metropolitanas - ride: Regiões Integradas de Desenvolvimento - listar: Lista temas disponíveis
codigoNoCódigo específico do tema (ex: código do bioma, da região metropolitana)
formatoNoFormato de saídageojson
qualidadeNoQualidade do traçado: 1=mínima, 4=máxima4
resolucaoNo0 = Apenas contorno, 5 = Com municípios0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. Description adds context: 'read-only and idempotent — a live GET against the public IBGE Malhas API. Returns the mesh in the requested format.' While repeating idempotent is redundant, it provides useful API behavior clarity.

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

Conciseness5/5

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

Description is well-organized with clear sections for themes, codes, examples, and alternatives. Front-loaded with purpose. Every sentence adds value, no fluff.

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?

Given 5 parameters with 100% schema coverage and no output schema, the description fully covers usage: parameter semantics, examples, behavioral notes, and sibling differentiation. No gaps.

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

Parameters5/5

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

Schema coverage is 100%, and description adds significant meaning: lists biome codes with names, provides example parameter combinations (e.g., tema='biomas', codigo='1'), and explains format/quality/resolution options beyond enum values.

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?

Clearly states 'Gets thematic geographic meshes from IBGE' followed by a comprehensive list of available themes and their codes. Provides multiple examples. Explicitly distinguishes from sibling ibge_malhas for administrative meshes.

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

Usage Guidelines5/5

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

Explicitly states when to use a different tool ('Administrative meshes → ibge_malhas'). Includes examples for various use cases (all biomes, specific biome, list themes, with municipalities), giving clear guidance on parameter usage.

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

ibge_municipiosA
Read-onlyIdempotent
Inspect

Lists Brazilian municipalities from IBGE.

Features:

  • List municipalities by state (using state abbreviation)

  • List all municipalities in Brazil (5,570 municipalities)

  • Search by municipality name

  • Returns 7-digit IBGE code

Examples:

  • São Paulo municipalities: uf="SP"

  • Search by name: busca="Campinas"

  • MG municipalities containing "Belo": uf="MG", busca="Belo"

Use a different tool when:

  • Resolve/decode a code at any level (region, state, district), not just municipalities → ibge_geocodigo

  • Full details/hierarchy of one locality by code → ibge_localidade

  • Neighboring municipalities → ibge_vizinhos

Behavior: read-only and idempotent — a live GET against the public IBGE Localidades API. Returns a Markdown table.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoEstado por sigla (SP), nome (São Paulo) ou código IBGE (35). Se não informado, retorna todos os municípios do Brasil.
buscaNoTermo para buscar no nome do município
limiteNoNúmero máximo de resultados (padrão: 100, máximo: 5570)
Behavior5/5

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

Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds that the tool is a 'live GET against the public IBGE Localidades API' and returns a 'Markdown table', extending behavioral understanding beyond the annotations.

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

Conciseness5/5

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

The description is concise yet structured with clear sections (Features, Examples, Use a different tool when, Behavior). Every sentence adds value without 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?

Given the absence of an output schema, the description specifies the return format as a 'Markdown table'. It covers all functionality, parameters, and context for differentiation, making it fully complete for the tool's purpose.

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 schema already documents parameters. The description adds value with concrete usage examples (e.g., uf='SP' for São Paulo) and explanatory context for the 'limite' parameter, including default and maximum values.

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 starts with a clear verb+resource: 'Lists Brazilian municipalities from IBGE.' It further details capabilities (by state, all, search) and provides multiple examples. It explicitly distinguishes from sibling tools like ibge_geocodigo, ibge_localidade, and ibge_vizinhos.

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

Usage Guidelines5/5

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

The description includes a dedicated 'Use a different tool when' section that lists exactly when to use alternative tools, providing explicit context for selection.

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

ibge_nomesA
Read-onlyIdempotent
Inspect

Queries name frequency and rankings in Brazil (IBGE).

Features:

  1. Name frequency (tipo='frequencia'):

    • Birth frequency by decade

    • Multiple names separated by comma

    • Filter by sex and locality

  2. Name ranking (tipo='ranking'):

    • Most popular names

    • Filter by decade, sex, and locality

Available decades: 1930-2010

Examples:

  • Frequency of "Maria": tipo="frequencia", nomes="Maria"

  • Compare names: tipo="frequencia", nomes="João,José,Pedro"

  • 2000s ranking: tipo="ranking", decada=2000

  • Female names: tipo="ranking", sexo="F"

Behavior: read-only and idempotent — a live GET against the public IBGE Nomes (Censo) API. Returns a Markdown table.

ParametersJSON Schema
NameRequiredDescriptionDefault
sexoNoFiltrar por sexo: M (masculino) ou F (feminino)
tipoYesTipo de consulta: 'frequencia' para buscar nomes específicos ou 'ranking' para ver os mais populares
nomesNoPara tipo='frequencia': Nome ou nomes separados por vírgula
decadaNoPara tipo='ranking': Década do ranking (ex: 1990, 2000, 2010)
limiteNoPara tipo='ranking': Número de nomes (padrão: 20)
localidadeNoCódigo IBGE da localidade (UF: 2 dígitos, Município: 7 dígitos)
Behavior4/5

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

Annotations already indicate readOnly, openWorld, idempotent, and non-destructive hints. The description adds that it performs a live GET against the IBGE API and returns a Markdown table, providing useful behavioral context beyond annotations.

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

Conciseness5/5

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

The description is well-structured with sections, bullet points, and examples. It is concise, front-loaded with purpose, and every sentence adds value.

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?

Given the tool's complexity (two modes, multiple parameters, no output schema), the description covers all necessary context: available decades, filtering options, and return format (Markdown table).

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% with descriptions for all parameters. The description further explains parameter usage in context (e.g., which parameters apply to each tipo), adding meaning beyond the raw 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 clearly states the tool queries name frequency and rankings in Brazil, with two distinct modes (frequencia and ranking). It differentiates from sibling tools like ibge_populacao or ibge_censo, which handle different data.

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 provides clear guidance on when to use each tipo with examples. It does not explicitly state when not to use this tool or list alternatives, but the context is sufficient for a specialized tool.

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

ibge_noticiasA
Read-onlyIdempotent
Inspect

Searches and lists already-published IBGE news articles and press releases.

Use this to find recent IBGE publications or announcements about a survey or topic — when an indicator was released, or news mentioning a term like "censo". Results are sorted newest-first; with no parameters it returns the 10 most recent items.

Parameters:

  • busca: free-text term to match (e.g. "PIB", "censo")

  • tipo: "release" (official publication of survey results) or "noticia" (general news); omit for both

  • de / ate: date range, format DD/MM/AAAA (e.g. de="01/01/2024", ate="31/12/2024")

  • destaque: true to return only featured items

  • quantidade: how many to return (default 10, max 100); pagina: page number to page through more

Each item returns: title, type (release/news), publication date, editoria (section), related products/surveys, a featured flag, a plain-text summary, and a link to the full article. The header reports the total count and current page.

Examples:

  • Latest 10 news: (no parameters)

  • Search census: busca="censo"

  • 2024 news: de="01/01/2024", ate="31/12/2024"

  • Releases only: tipo="release"

Use a different tool when:

  • Scheduled/upcoming release dates (not yet published) → ibge_calendario

Behavior: read-only and idempotent — a live GET against the public IBGE Notícias API. Returns a Markdown list.

ParametersJSON Schema
NameRequiredDescriptionDefault
deNoData inicial no formato DD/MM/AAAA (ex: 01/01/2024)
ateNoData final no formato DD/MM/AAAA (ex: 31/12/2024)
tipoNoTipo de publicação: 'release' ou 'noticia'
buscaNoTermo para buscar nas notícias
paginaNoNúmero da página para paginação
destaqueNoFiltrar apenas notícias em destaque
quantidadeNoQuantidade de notícias a retornar (padrão: 10, máximo: 100)
Behavior5/5

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

Description confirms read-only and idempotent behavior, matching annotations. Adds that it performs a live GET and returns a Markdown list, providing context beyond annotations.

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?

Well-structured with clear sections and examples, but slightly verbose. Could be more concise without losing clarity, but still effective.

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?

Given 7 parameters and no output schema, description fully explains output fields (title, type, date, etc.) and provides usage examples, making it complete for an agent.

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

Parameters5/5

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

Schema coverage is 100%, but description adds meaningful context: groups parameters, explains defaults, date format, and output structure. Includes examples demonstrating parameter usage.

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?

Description clearly states the tool searches and lists IBGE news articles and press releases, using specific verbs and resources. Differentiates from sibling ibge_calendario by focusing on already-published content.

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

Usage Guidelines5/5

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

Explicitly states when to use (find recent IBGE publications) and when not (use ibge_calendario for scheduled releases). Provides multiple examples with parameters.

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

ibge_paisesA
Read-onlyIdempotent
Inspect

Queries international country data via IBGE.

Features:

  • List all countries (following UN M49 methodology)

  • Country details (area, languages, currency, location)

  • Search countries by name

  • Filter by region/continent

Available regions: americas, europa, africa, asia, oceania

Country codes: Use ISO-ALPHA-2 (e.g., BR, US, AR, PT, JP)

Examples:

  • List all: tipo="listar"

  • Brazil details: tipo="detalhes", pais="BR"

  • Search: tipo="buscar", busca="Argentina"

  • Americas countries: tipo="listar", regiao="americas"

  • Available indicators: tipo="indicadores"

Behavior: read-only and idempotent — a live GET against the public IBGE Países API. Returns Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
paisNoCódigo ISO-ALPHA-2 do país (ex: BR, US, AR) ou código M49
tipoNoTipo de consulta: listar (todos), detalhes (de um país), indicadores, buscarlistar
buscaNoTermo de busca para filtrar países pelo nome
regiaoNoFiltrar por região/continente: americas, europa, africa, asia, oceania
indicadoresNoIDs dos indicadores separados por | (ex: 77819|77820)
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that it performs a live GET against the public API and returns Markdown. No contradiction.

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?

Description is well-structured with bullet points and examples, making it easy to scan. Could be slightly more concise but front-loaded with main purpose.

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?

Given 5 parameters, full annotations, and no output schema, the description provides sufficient behavioral and usage context including examples. Adequately covers edge cases.

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%, so baseline is 3. Description adds context (e.g., ISO-ALPHA-2 codes, region names) but does not substantially enhance understanding 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?

Description clearly states it queries international country data via IBGE, listing specific features like listing all countries, details, search, and filtering. It distinguishes itself from sibling IBGE tools by focusing on countries.

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 explicit guidance on when to use each 'tipo' parameter (listar, detalhes, buscar, indicadores) with concrete examples. Does not explicitly state when not to use, but context is clear.

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

ibge_pesquisasA
Read-onlyIdempotent
Inspect

Lists available IBGE surveys and their tables.

Features:

  • List all IBGE surveys (Census, PNAD, GDP, etc.)

  • Search by name or code

  • Show details and tables of a specific survey

  • Categorize surveys by theme

Main surveys:

  • Census: Demographic, Agricultural, MUNIC

  • PNAD Contínua: Employment, income, education

  • National Accounts: GDP, investments

  • Economic Surveys: Industry, Commerce, Services

  • Price Indices: IPCA, INPC

Examples:

  • List all: (no parameters)

  • Search population: busca="população"

  • PNAD details: detalhes="pnad"

This lists surveys, not data. To find table codes use ibge_sidra_tabelas; to query data use ibge_sidra (or a wrapper: ibge_censo, ibge_indicadores, ibge_comparar, ibge_cidades).

Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA/Pesquisas API. Returns a Markdown list.

ParametersJSON Schema
NameRequiredDescriptionDefault
buscaNoTermo para buscar no nome ou ID da pesquisa
detalhesNoCódigo da pesquisa para ver detalhes e tabelas disponíveis
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds that it performs a 'live GET against the public IBGE SIDRA/Pesquisas API' and returns a 'Markdown list', providing additional behavioral context beyond annotations.

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?

Well-structured with bullet points and sections, front-loading the main purpose. Some redundancy in listing main surveys, but overall every sentence adds value and it is appropriately sized.

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?

Given no output schema, description states 'Returns a Markdown list' and clarifies the scope (lists surveys, not data). Context from siblings and annotations makes it sufficiently complete without missing critical details.

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% with descriptions for both parameters. Description adds usage examples like 'Search population: busca="população"' and 'PNAD details: detalhes="pnad"', which enhance understanding 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?

Clearly states 'Lists available IBGE surveys and their tables' with specific verb and resource. Distinguishes from siblings by explaining 'This lists surveys, not data' and directing to other tools.

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

Usage Guidelines5/5

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

Explicitly says when to use this tool vs alternatives: to list surveys, not query data. Provides examples and references sibling tools like ibge_sidra_tabelas and ibge_sidra for data retrieval.

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

ibge_populacaoA
Read-onlyIdempotent
Inspect

Returns real-time Brazilian population projection.

Features:

  • Current population estimate

  • Birth rate (average time between births)

  • Death rate (average time between deaths)

  • Daily population increment

Source: IBGE - Brazilian Population Projection

This tool ONLY returns Brazil's real-time national projection.

Use a different tool when:

  • Population of a specific municipality/state → ibge_cidades (panorama)

  • Census or historical population → ibge_censo

  • Comparing/ranking multiple localities → ibge_comparar

  • Population time series → ibge_indicadores

  • An arbitrary SIDRA table → ibge_sidra

Behavior: read-only and idempotent — a live GET against the public IBGE population-projection API. Returns Markdown plus a typed structuredContent payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
localidadeNoLocalidade para projeção populacional (atualmente apenas BR disponível)BR

Output Schema

ParametersJSON Schema
NameRequiredDescription
horarioYesData/hora da consulta
populacaoYesPopulação projetada (habitantes)
localidadeYesLocalidade da projeção
periodoMedioYesIndicadores do período médio
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering safety and idempotency. The description adds useful context: it's a live GET against the public IBGE API, and returns Markdown plus structuredContent. This enriches the behavioral profile beyond annotations.

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 description is well-structured with bullet points and clear sections, but it is slightly verbose (e.g., repeats that the tool is for Brazil's national projection). Still, it is easy to parse and front-loads key information.

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?

Given the tool's simplicity (single enum parameter) and presence of an output schema, the description covers all necessary context: what it returns, source, behavior, and when to use alternatives. No gaps remain.

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 a single parameter (localidade) that has an enum and default. The description does not add new parameter meaning, but the schema itself fully documents the parameter. Baseline score of 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?

The description explicitly states the tool returns a 'real-time Brazilian population projection' with specific features (current estimate, birth/death rates, daily increment). It distinguishes itself from siblings by listing alternative tools for other population queries, providing excellent purpose clarity.

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

Usage Guidelines5/5

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

The description provides clear when-to-use guidance: for Brazil's national projection only. It explicitly lists alternative tools for specific use cases (e.g., ibge_cidades for municipalities, ibge_censo for census data), making it easy for an agent to decide.

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

ibge_sidraA
Read-onlyIdempotent
Inspect

Queries SIDRA tables (IBGE's Automatic Recovery System).

SIDRA contains data from IBGE surveys like Census, PNAD, GDP, etc.

Common tables:

  • 6579: Population estimates (annual)

  • 9514: Census 2022 population

  • 200: Census population (1970-2010)

  • 4714: Unemployment rate (PNAD Contínua)

  • 6381: Average income (PNAD Contínua)

  • 6706: GDP at current prices

  • 5938: GDP per capita

Territorial levels:

  • 1: Brazil

  • 2: Region (North, Northeast, etc.)

  • 3: State (UF)

  • 6: Municipality

  • 7: Metropolitan Region

Examples:

  • Brazil population 2023: tabela="6579", periodos="2023"

  • Population by state: tabela="6579", nivel_territorial="3"

  • Census 2022 by municipality: tabela="9514", nivel_territorial="6", localidades="3550308"

ibge_sidra is the low-level engine. Prefer a friendlier wrapper when it fits:

  • Census themes (1970–2022) → ibge_censo

  • Economic/social time series → ibge_indicadores

  • Rank/compare 2–10 localities → ibge_comparar

  • One municipality's panel → ibge_cidades Use ibge_sidra_tabelas and ibge_sidra_metadados to find a table code and its structure before querying.

Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns Markdown plus a typed structuredContent payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
camposNoSelecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta. Omitir traz todas.
paginaNoPágina de resultados (100 registros por página)
tabelaYesCódigo da tabela SIDRA (ex: 6579 para estimativas de população, 9514 para censo 2022)
formatoNoFormato de saída: 'json' para dados brutos ou 'tabela' para formato legíveltabela
periodosNoPeríodos: 'last' para último, 'all' para todos, ou anos específicos (ex: 2020,2021,2022)last
variaveisNoIDs das variáveis separados por vírgula, ou 'allxp' para todasallxp
localidadesNoCódigos das localidades separados por vírgula, ou 'all' para todasall
classificacoesNoClassificações no formato 'id[categorias]' (ex: '2[6794]' para sexo masculino)
nivel_territorialNoNível territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=Município, 7=Região Metropolitana, 8=Mesorregião, 9=Microrregião, 10=Distrito, 11=Subdistrito, 13=RM/RIDE, 14=RIDE, 15=Aglomeração Urbana, 17=Região Geográfica Imediata, 18=Região Geográfica Intermediária, 105=Macrorregião de Saúde, 106=Região de Saúde, 114=Aglomerado Subnormal, 127=Amazônia Legal, 128=Semiárido1

Output Schema

ParametersJSON Schema
NameRequiredDescription
nomeYesNome da tabela (quando conhecido)
tabelaYesCódigo da tabela SIDRA consultada
colunasYesRótulos das colunas, na ordem
paginacaoYesMetadados de paginação para continuação
registrosYesRegistros da página atual: cada um mapeia rótulo da coluna -> valor
totalRegistrosYesTotal de registros de dados disponíveis (todas as páginas)
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, etc. The description adds that it's a live GET against the public API and returns Markdown plus structuredContent. No contradictions; adds useful context beyond annotations.

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?

Well-organized with clear sections (common tables, territorial levels, examples, sibling tool comparison, behavior). Front-loaded with purpose and concrete data. Only slightly verbose due to thoroughness, but each sentence adds value.

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?

Complex tool (9 params, 1 required) with rich sibling set. Description provides comprehensive examples, usage guidance, and behavioral notes. Output schema exists, so return format is covered. Could mention rate limits or pagination limits, but overall 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 baseline is 3. The description adds example usage (e.g., 'tabela="6579", periodos="2023"') and clarifies territorial level codes, but these are already well covered in the schema descriptions. No significant extra semantic depth.

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 clearly states it queries SIDRA tables from IBGE, provides common table codes and territorial levels, and includes examples. It effectively distinguishes itself from sibling tools by naming alternatives like ibge_censo and ibge_indicadores.

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

Usage Guidelines5/5

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

Explicitly advises when to prefer friendlier wrappers (e.g., 'Prefer a friendlier wrapper when it fits') and recommends using ibge_sidra_tabelas and ibge_sidra_metadados to find table codes first. Provides clear context for this tool as the low-level engine.

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

ibge_sidra_metadadosA
Read-onlyIdempotent
Inspect

Returns metadata for a specific SIDRA table.

Features:

  • General info (name, survey, subject, periodicity)

  • Available territorial levels

  • Variable list with units

  • Classifications and categories

  • Available periods

Use this tool to understand table structure BEFORE querying data with ibge_sidra.

Examples:

  • Population table metadata: tabela="6579"

  • Census 2022 metadata: tabela="9514"

  • PNAD unemployment: tabela="4714"

Use this after finding a table code (ibge_sidra_tabelas) and before querying with ibge_sidra.

Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabelaYesCódigo da tabela/agregado SIDRA (ex: '6579', '9514', '4714')
incluir_periodosNoIncluir lista de períodos disponíveis (padrão: true)
incluir_localidadesNoIncluir níveis territoriais disponíveis (padrão: false)
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true. The description adds context: 'read-only and idempotent — a live GET against the public IBGE SIDRA API' and 'Returns Markdown.' This adds value beyond annotations by specifying the API nature and return format, though rate limits or authentication are not mentioned.

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

Conciseness5/5

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

The description is concise with a bulleted list of features, usage guidance, examples, and a behavior note. Every sentence is informative and no redundancy. It is front-loaded with the core purpose.

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?

Given no output schema, the description explains the return format ('Returns Markdown') and lists content categories (general info, territorial levels, variables, etc.). It provides examples of table codes and references sibling tools. Could be slightly more detailed on response structure, but overall adequate for a metadata retrieval 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?

Input schema has 100% description coverage for all 3 parameters. The description does not add new semantic meaning beyond the schema; it only implies the output content related to the boolean parameters. Baseline 3 is appropriate as the schema already documents parameters sufficiently.

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 clearly states 'Returns metadata for a specific SIDRA table' and lists specific features (info, territorial levels, variables, classifications, periods). It distinguishes itself from siblings like ibge_sidra_tabelas (finds table codes) and ibge_sidra (queries data) by positioning itself as a pre-query metadata tool.

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

Usage Guidelines5/5

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

Explicitly instructs 'Use this tool to understand table structure BEFORE querying data with ibge_sidra' and outlines a workflow: 'Use this after finding a table code (ibge_sidra_tabelas) and before querying with ibge_sidra.' Examples reinforce when to use.

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

ibge_sidra_tabelasA
Read-onlyIdempotent
Inspect

Lists and searches available SIDRA tables.

Features:

  • List all SIDRA tables (aggregates)

  • Search by table name

  • Filter by survey (Census, PNAD, GDP, etc.)

  • Shows code and name of each table

SIDRA contains data from various surveys:

  • Demographic Census

  • PNAD Contínua (employment, income)

  • National Accounts (GDP)

  • Industrial Survey

  • Agricultural Survey

Examples:

  • List tables: (no parameters)

  • Search population tables: busca="população"

  • Census tables: pesquisa="censo"

This is step 1 of the SIDRA workflow: find a table code → ibge_sidra_metadados (structure) → ibge_sidra (query). For common data, a wrapper is usually easier: ibge_censo, ibge_indicadores, ibge_comparar, ibge_cidades.

Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns a Markdown table.

ParametersJSON Schema
NameRequiredDescriptionDefault
buscaNoTermo para buscar no nome das tabelas/agregados
limiteNoNúmero máximo de resultados (padrão: 20)
pesquisaNoFiltrar por código ou nome da pesquisa (ex: 'censo', 'pnad', 'pib')
Behavior4/5

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

Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds that the tool is read-only and idempotent, mentions it performs a live GET against the public IBGE SIDRA API, and states it returns a Markdown table. This adds useful context beyond annotations.

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

Conciseness5/5

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

The description is well-structured with bullet points and sections (Features, Examples, Workflow). It is front-loaded with the purpose. Every sentence adds value, and the length is appropriate for the tool's complexity.

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?

Given that there are 3 optional parameters, rich annotations, and no output schema, the description provides complete context: workflow (step 1), behavior (read-only, returns Markdown), and examples. It adequately informs an agent when and how to use this 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 baseline is 3. The description adds examples showing how to use each parameter (busca='população', pesquisa='censo') and explains the purpose in the features list. This reinforces understanding, justifying a score above baseline.

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 clearly states the tool lists and searches SIDRA tables. It provides a specific verb 'list' and 'search', specifies the resource 'SIDRA tables', and distinguishes itself from siblings by explaining it is step 1 of the SIDRA workflow and that wrappers exist for common data.

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

Usage Guidelines5/5

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

The description explicitly says when to use this tool (step 1 of SIDRA workflow) and when not (use wrappers like ibge_censo for common data). It also mentions alternative tools (ibge_censo, ibge_indicadores, etc.) and provides examples for different use cases (list all, search, filter by survey).

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

ibge_vizinhosA
Read-onlyIdempotent
Inspect

Finds nearby/neighboring municipalities.

Features:

  • Search by IBGE code (7 digits) or municipality name

  • Returns municipalities in the same mesoregion (proximity approximation)

  • Optionally includes population data

Note: Uses mesoregion as geographic proximity proxy. For exact spatial neighborhood, mesh processing would be required.

Examples:

  • By code: municipio="3550308"

  • By name: municipio="Campinas", uf="SP"

  • With population: municipio="3550308", incluir_dados=true

Note: proximity is approximated by shared mesoregion (not exact spatial adjacency). For listing/searching municipalities, use ibge_municipios.

Behavior: read-only and idempotent — a live GET against the public IBGE Localidades API. Returns a Markdown list.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoEstado por sigla (SP), nome (São Paulo) ou código IBGE (35) — obrigatório se usar nome do município
raioNoRaio em km para buscar municípios próximos (usa centróides)
municipioYesCódigo IBGE do município (7 dígitos) ou nome do município
incluir_dadosNoIncluir dados populacionais dos vizinhos
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds that it's a live GET against the public IBGE Localidades API and returns a Markdown list, plus warns about proximity approximation. No contradictions.

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

Conciseness5/5

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

Well-structured with sections (Features, Note, Examples), bullet points, and clear language. Every sentence is informative with no waste.

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?

Given no output schema, the description explains return format (Markdown list). Covers all aspects: purpose, parameters, behavior, limitations, and examples. Complete for a read-only proximity search 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% (baseline 3). The description adds value by explaining raio (radius in km using centroids), incluir_dados (population inclusion), and providing usage examples for municipio with code or name.

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 clearly states the tool finds nearby/neighboring municipalities. It lists features (search by code or name, mesoregion approximation, optional population data) and distinguishes from sibling tool ibge_municipios.

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

Usage Guidelines5/5

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

Provides explicit guidance: when to use, example queries for code and name, optional parameters (raio, incluir_dados), and a note about limitations and alternatives (ibge_municipios).

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.