Skip to main content
Glama
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
4
Server Listing
IBGE Brasil 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.7/5 across 22 of 22 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct resource or data type (e.g., calendar vs. news, census vs. indicators, municipality panel vs. comparison). The descriptions include explicit 'Use a different tool when' guidance, making it easy for an agent to choose correctly.

Naming Consistency5/5

All tools follow the 'ibge_' prefix with a descriptive noun (e.g., ibge_censo, ibge_cidades, ibge_indicadores). Even compound names like ibge_sidra_tabelas use consistent snake_case and clear resource identifiers. No mixing of naming conventions.

Tool Count4/5

At 22 tools, the set is larger than typical but justified by the breadth of IBGE data (calendar, census, cities, indicators, geography, SIDRA, etc.). Each tool serves a focused purpose, and the count is reasonable for a comprehensive national statistics API.

Completeness5/5

The tool set covers major IBGE domains: calendar, census (with themes), city panels, indicators (economic, social, health), geographic meshes (admin and thematic), population estimates, news, classifications (CNAE), and full SIDRA access. Gaps like specific surveys are addressed by the low-level ibge_sidra tool.

Available Tools

22 tools
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)

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYesTotal de eventos disponíveis para os critérios
paginaNoPágina atual retornada
eventosYesLista de eventos do calendário (divulgações/coletas)
produtoNoFiltro de produto aplicado, quando informado
totalPaginasNoTotal de páginas disponíveis
Behavior5/5

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

Annotations already provide readOnlyHint, idempotentHint, destructiveHint false. The description adds that it is a live GET against the public API and returns a Markdown list, adding 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?

Well-structured with sections: features, event types, examples, alternative tool. Front-loaded with clear purpose. Every sentence adds value; 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 6 optional parameters, full schema coverage, output schema present, strong annotations, the description covers all necessary aspects: purpose, usage, behavior, parameters, and alternatives. Complete for an AI 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% with parameter descriptions. The description adds concrete examples (e.g., produto="IPCA", de="01/01/2024") and explains the tipo parameter with its enums, enhancing 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 queries IBGE release and collection calendar, with specific verbs and resource. It distinguishes event types (release vs. collection) and provides examples. Differentiation from sibling ibge_noticias is explicit.

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 (ibge_noticias for already-published news). Examples cover common use cases, and the description implies usage for upcoming releases and 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
Behavior5/5

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

Description states 'read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns Markdown plus a typed structuredContent payload.' This adds details about the API call and return format beyond annotations that already mark readOnlyHint, idempotentHint, and destructiveHint false. 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.

Conciseness5/5

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

The description is front-loaded with the core purpose, followed by bullet lists of years and themes, then examples, then usage alternatives. Every sentence adds value, and the structure is clear and scannable.

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?

The tool has 6 parameters with no required fields, high schema coverage, and an output schema. The description covers purpose, usage guidelines, behavioral transparency, examples, and alternatives. It is fully adequate for an AI agent to understand when and how to use the 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 description is not required to add parameter meaning, but it includes useful examples like 'Population 2022: ano="2022", tema="populacao"' and 'Literacy 2010 by state: ano="2010", tema="alfabetizacao", nivel_territorial="3"'. These examples enhance understanding, earning a 4.

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 states the tool queries IBGE Demographic Census data from 1970-2022, simplifies access without needing SIDRA table codes, and lists available years and themes. It clearly distinguishes from siblings like ibge_sidra which require arbitrary SIDRA tables.

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 lists when to use a different tool: for real-time population (ibge_populacao), one municipality's panel (ibge_cidades), comparing localities (ibge_comparar), or arbitrary SIDRA tables (ibge_sidra). Provides clear context for choosing this tool over alternatives.

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)
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 public IBGE APIs and returns Markdown with typed structuredContent. This context beyond annotations earns a 4, though 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?

The description is well-structured with bullet points, examples, and a behavior section. Every sentence adds value, no redundancy. Front-loaded with purpose and alternatives.

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 (multiple tipos, many indicators), the description covers all key aspects: features, examples, sibling differentiation, behavior, and return format. Output schema exists, so return details are covered.

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. The description lists available indicators and provides usage examples that clarify parameter combinations, but does not add significant detail beyond the 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 it queries municipal indicators from IBGE's Cidades@ portal, lists features, and provides examples. It distinguishes itself from sibling tools by explicitly naming alternative tools for different queries (e.g., real-time population, census themes, multi-municipality comparison).

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 states when to use this tool (single municipality queries) and when to use other tools (ibge_populacao, ibge_censo, etc.). It provides concrete examples for different tipos, making usage clear.

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)

Output Schema

ParametersJSON Schema
NameRequiredDescription
modoYesModo de resposta que gerou os dados
buscaNoPresente no modo de busca por termo
listaNoPresente no modo de listagem por nível
codigoNoPresente no modo de consulta por código
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds value by specifying it performs a live GET against the public IBGE CNAE API and returns Markdown. It also restates idempotent behavior, but that is consistent with 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 clear sections (definition, hierarchy, features, examples, behavior) and front-loaded purpose. While it is relatively long, every sentence is informative. Minor redundancy could be trimmed (e.g., repeating 'idempotent' already in annotations), but overall efficient.

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 has 4 parameters (none required), full schema coverage, output schema present, and rich annotations, the description sufficiently covers hierarchy explanation, usage patterns, result format, and behavior. No gaps remain for effective use.

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 the description goes well beyond the schema by explaining the hierarchical levels (section, division, etc.), providing multiple examples for each parameter, and clarifying default behavior (e.g., nivel defaults to showing all relevant levels). This adds substantial meaning for correct 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?

The description explicitly states that the tool queries CNAE (National Classification of Economic Activities) from IBGE, explains what CNAE is, and lists key features. This clearly differentiates it from sibling tools like ibge_calendario or ibge_sidra, which deal with different data domains.

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 provides usage examples for different parameters (e.g., busca, codigo, nivel) but does not explicitly state when to use this tool over alternatives or when not to use it. The context of sibling tools implies each IBGE tool is domain-specific, but no direct comparison or exclusion guidance is given.

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)
Behavior5/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds behavioral context: 'read-only and idempotent — a live GET against the public IBGE APIs (SIDRA and Localidades). Returns Markdown plus a typed structuredContent payload.' This enriches the annotations with implementation details and 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?

The description is well-organized with sections, bullet points, and examples. Every sentence adds value, and it is front-loaded with core purpose and features. No wasted words.

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 complexity (multi-locality comparison, multiple indicators, output formats) and the presence of an output schema, the description covers all necessary aspects: constraints, features, examples, and behavioral traits. It is complete for an AI agent to correctly invoke the 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 value beyond the schema by providing usage examples, clarifying code formats (7-digit municipality codes, 2-digit state codes), and listing indicators with examples. This contextualization justifies a 4.

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 compares data between localities (municipalities or states) and lists available indicators. It distinguishes from sibling tools by explicitly directing users to other tools for single locality queries, e.g., 'For a single locality, use ibge_cidades, ibge_censo, 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?

The description provides explicit when-to-use ('Compare up to 10 localities at once') and when-not-to-use guidance ('For a single locality, use...'). It also specifies constraints like maximum number of localities and input code formats.

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

ibge_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 declare readOnlyHint, idempotentHint, and destructiveHint. Description adds that it is a live GET returning Markdown and structuredContent, which adds value 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?

Description is well-organized with sections and bullet points, front-loaded with purpose, and provides examples; while somewhat lengthy, it earns its space.

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 all relevant aspects: indicator list, territorial levels, examples, sibling differentiation, and output format. Given the tool's complexity, the description is complete.

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%, but description adds extra context by listing indicator options and territorial level codes (1,2,3,6) with examples, enhancing understanding.

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 Brazil health indicators via IBGE's SIDRA, lists specific indicators, and distinguishes from sibling tools like ibge_cidades and ibge_censo by specifying when to use alternatives.

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 on when to use other tools (ibge_cidades, ibge_censo, ibge_sidra) and includes examples for different indicators and territorial levels.

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYesTotal de estados retornados
estadosYesLista de estados
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds context: it is a live GET against the public IBGE Localidades API and returns a Markdown table. This goes beyond the annotations without contradicting them.

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 and well-structured: a one-line summary, followed by bulleted features and examples, and ends with alternative usage. Every sentence adds value, and the structure facilitates quick scanning.

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

Completeness5/5

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

For a simple list tool with 0 required parameters and an output schema (not shown but implied), the description covers filtering, sorting, result format (Markdown table), and distinguishes from related tools. It is fully sufficient for correct tool selection and use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description reinforces the enum values for region (e.g., 'N' for North) and sort field, and provides examples. This adds marginal value but not significantly 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?

The description clearly states 'Lists all Brazilian states from IBGE.' It specifies the verb (list) and resource (Brazilian states), and distinguishes from siblings like ibge_municipios and ibge_localidade by naming them explicitly.

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 explicit when-to-use guidance: 'List all states' with optional filtering and sorting. It also states when not to use: for municipalities or locality details, use specific alternative tools. Examples are provided for common use cases.

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
nomeNoNome da localidade resolvida
tipoYesTipo do resultado: localidade decodificada (regiao/uf/municipio/distrito) ou lista de municípios encontrados (lista)
siglaNoSigla da região ou UF, quando aplicável
totalNoQuantidade de municípios encontrados na busca por nome (apenas tipo lista)
codigoNoCódigo IBGE da localidade resolvida (ausente em resultados do tipo lista)
regiaoNoNome da região à qual a UF pertence (apenas tipo uf)
estadosNoEstados pertencentes à região (apenas tipo regiao)
matchesNoMunicípios encontrados na busca por nome (apenas tipo lista)
hierarquiaNoHierarquia geográfica completa, da região ao município/distrito (tipo municipio/distrito)
codigoSidraNoCódigo SIDRA de 6 dígitos do município (apenas tipo municipio)
regiaoCodigoNoCódigo IBGE da região à qual a UF pertence (apenas tipo uf)
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 'Behavior: read-only and idempotent — a live GET against the public IBGE Localidades API. Returns Markdown.' This confirms and expands on the annotations 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 well-organized with clear sections (features, code structure, examples, usage guidance). Every sentence adds value, and it is appropriately concise 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 the tool's multiple capabilities (decode, search, hierarchy), the description covers all use cases, includes examples, mentions output format (Markdown), and references an output schema exists. 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 description coverage is 100%, but description adds significant value: examples for each parameter, code structure explanation, and context on how parameters relate (e.g., nome with uf). This goes 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 explicitly states 'Decodes IBGE codes or searches codes by locality name' and lists features like decode region/state/municipality/district, search by name, etc. It clearly distinguishes from siblings by naming ibge_municipios and ibge_localidade as alternatives.

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?

Description directly tells when to use a different tool: for listing/searching municipalities use ibge_municipios, for full detailed record of one locality use ibge_localidade. This provides clear guidance.

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
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds value by noting it's a live GET against the public IBGE SIDRA API and returns Markdown plus typed structuredContent. 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 categories, examples, and usage guidelines. Every sentence adds value, 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 7 parameters and many indicators, the description is complete: covers all indicator categories, provides examples, and references other tools. Output schema exists so return values are handled elsewhere.

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 each parameter having a description. The description adds an explicit list of indicator names and examples, which adds some value beyond the schema. However, it does not provide deep semantic detail for each parameter beyond what's in 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?

The description clearly states it queries IBGE economic and social indicators, listing available indicators by category. It differentiates from siblings by specifying when to use other tools like ibge_comparar, ibge_censo, and 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/ranking localities → ibge_comparar', 'Census themes → ibge_censo', 'One municipality's panel → ibge_cidades') and provides usage examples.

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)

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesCódigo IBGE da localidade
nomeYesNome da localidade
tipoYesTipo da localidade retornada
siglaNoSigla da UF (apenas para estados)
estadoNoEstado da localidade (município ou distrito)
regiaoNoRegião do estado (apenas para estados)
municipioNoMunicípio ao qual o distrito pertence (apenas para distritos)
mesorregiaoNoMesorregião do município
microrregiaoNoMicrorregião do município
regiaoImediataNoRegião imediata do município
regiaoIntermediariaNoRegião intermediária do município
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds that it's a live GET against the public IBGE Localidades API and returns a Markdown record, which provides 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 concise and well-structured with bullet points and examples. It front-loads the main purpose and provides clear, actionable information without wasted words.

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 low complexity (2 parameters, output schema exists), the description is complete. It covers what the tool does, when to use it, parameter semantics, and the output format (Markdown record).

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%, but the description adds examples and explains that the 'tipo' parameter can be inferred from code length if not provided, which adds meaning beyond the schema alone.

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 returns details of a specific locality by IBGE code, with examples of codes at different levels and mention of hierarchy. It distinguishes from sibling tools by specifying when to use ibge_municipios or ibge_geocodigo 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 guidance on when not to use this tool: when you have a name and need a code, or need to decompose a code's structure. It names specific alternative tools, which helps an agent select the correct tool.

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)

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNoURL para download da malha completa
tipoNoTipo de divisão territorial, quando informado
formatoYesFormato de saída solicitado (geojson, topojson ou svg)
qualidadeNoQualidade do traçado solicitada
resolucaoNoResolução/divisões internas solicitada
localidadeYesCódigo IBGE ou sigla da localidade consultada
intrarregiaoNoCódigo de região usado para filtrar (apenas quando localidade=BR)
Behavior4/5

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

Annotations already declare read-only and idempotent; the description adds that it's a live GET request, confirming and extending transparency 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.

Conciseness4/5

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

Well-structured, front-loaded, with clear sections; slightly verbose but every part 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?

Given the tool's complexity (6 params, 1 required, no output schema), the description covers usage, parameters, examples, and alternatives adequately.

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?

Adds meaning beyond the schema by explaining locality types, resolution values, and providing examples, even though schema coverage is 100%.

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 fetches geographic meshes from IBGE in three formats, distinguishes from sibling ibge_malhas_tema, and specifies the resource types.

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 alternative for thematic meshes (ibge_malhas_tema) and includes usage examples, but does not list all cases when not to use.

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
temaYesTema da malha solicitada (ou 'listar')
temasNoLista de temas disponíveis (somente no modo 'listar')
codigoNoCódigo específico do tema, quando informado
formatoNoFormato de saída (geojson, topojson, svg)
resolucaoNoResolução da malha (0 = contorno, 5 = com municípios)
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 IBGE Malhas API' and mentions return formats, which enriches understanding 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.

Conciseness4/5

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

The description is well-structured with clear sections for themes, codes, examples, and differentiation. While slightly long, every sentence adds value and it's efficiently organized.

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

Completeness5/5

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

For a tool with 5 parameters and 4 enums, the description covers all necessary context: themes, codes, example invocations, differentiation from sibling, behavior, and return format. Output schema exists, so no need to detail return structure.

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 semantic value with examples, biome code mappings, and usage patterns (e.g., 'tema="listar"') that go beyond the enum definitions.

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 'gets thematic geographic meshes from IBGE', listing all available themes and providing a clear contrast with the sibling tool ibge_malhas for administrative meshes. The verb 'gets' and resource specification are precise.

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'. This provides clear usage context by naming an alternative.

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)

Output Schema

ParametersJSON Schema
NameRequiredDescription
ufNoUF informada no filtro (como recebida na entrada)
buscaNoTermo de busca aplicado ao nome do município
totalYesTotal de municípios encontrados antes do limite
municipiosYesLista de municípios retornados (após filtro e limite)
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. Description adds that it is a live GET against a public API and returns a Markdown table, which complements but does not contradict 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?

Highly efficient: front-loaded purpose, structured bullet features, clear examples, and no extraneous words. 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 3 parameters, full schema coverage, rich annotations, and existence of output schema, the description covers all necessary context: purpose, filtering, limits, behavior, return format, and when to use other tools.

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 3 parameters. Description adds contextual examples and clarifies usage (e.g., uf can be abbreviation, name, or code) 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?

Description clearly states it lists Brazilian municipalities, enumerates features (by state, search, all), includes IBGE code, and distinguishes from siblings by naming specific alternative tools for other tasks.

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 (uf, busca) and lists specific alternatives (ibge_geocodigo, ibge_localidade, ibge_vizinhos) for different needs.

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)

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipoYesTipo da consulta realizada
rankingNoResultado do ranking (presente quando tipo='ranking')
frequenciaNoResultados de frequência (presente quando tipo='frequencia')
Behavior4/5

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

The description adds behavioral context beyond annotations: it states read-only and idempotent behavior, that it performs a live GET against the public IBGE API, and returns a Markdown table. These details complement the annotations (readOnlyHint, idempotentHint) 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?

The description is well-structured with sections, bullet points, and examples. It is concise, front-loaded, and every sentence serves a purpose. No wasted words or redundant 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 has 6 parameters (1 required) and a complex output (Markdown table from IBGE API), the description covers both modes, all filtering options, and provides concrete examples. It is complete enough for an agent to understand when and how to use the tool correctly.

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

Parameters4/5

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

The schema already describes all parameters with 100% coverage. The description adds value through examples that illustrate how parameters like 'nomes', 'decada', 'limite', and 'localidade' are used in context. This helps clarify their role beyond the schema definitions.

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 name frequency and rankings in Brazil (IBGE). It distinguishes two modes: 'frequencia' for specific names and 'ranking' for most popular. This is a specific verb+resource with clear differentiation from other sibling tools.

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 explicit examples for different scenarios (frequency, ranking) and explains filtering by sex, decade, and locality. It mentions available decades (1930-2010) and demonstrates parameter combinations. However, it does not explicitly state when not to use this tool or mention alternatives among siblings.

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)

Output Schema

ParametersJSON Schema
NameRequiredDescription
buscaNoTermo de busca aplicado, se houver
totalYesTotal de notícias encontradas na consulta
paginaYesPágina atual
noticiasYesLista de notícias retornadas
totalPaginasYesNúmero total de páginas
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds further context: 'Behavior: read-only and idempotent — a live GET against the public IBGE Notícias API. Returns a Markdown list.' This extends beyond annotations with API details 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: purpose, usage guidelines, parameter details, return format, examples, and alternatives. It is front-loaded with the main action. While it is thorough, it is slightly verbose in the parameter listing section, which could be more concise, but overall it is well-organized.

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 has 7 parameters, 0 required, and an output schema exists, the description covers all necessary aspects: when to use, parameter details with examples, return format, behavioral traits, and alternative tools. It is complete and leaves no significant 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%, so baseline is 3. However, the description provides extensive additional meaning: it explains each parameter in plain language, gives date format examples, describes the meaning of 'tipo' values, and provides usage examples. This goes far beyond the schema's property 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 that the tool 'Searches and lists already-published IBGE news articles and press releases.' This is a specific verb+resource combination, and it differentiates from sibling tool ibge_calendario by explicitly noting the alternative for scheduled dates.

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 states when to use the tool ('find recent IBGE publications or announcements about a survey or topic') and provides a clear alternative: 'Use a different tool when: Scheduled/upcoming release dates (not yet published) → ibge_calendario'. This is direct guidance.

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)

Output Schema

ParametersJSON Schema
NameRequiredDescription
paisNoDetalhes de um país específico (modo detalhes)
tipoYesModo de consulta que originou este resultado
buscaNoTermo de busca aplicado, se houver
totalNoTotal de países encontrados (modos listar/buscar)
paisesNoLista de países (modos listar/buscar). Limitada aos 50 primeiros na exibição
regiaoNoFiltro de região/continente aplicado, se houver
indicadoresNoIndicadores disponíveis para consulta de países (modo indicadores)
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior; the description confirms these traits and adds 'live GET against the public IBGE Países API' and 'Returns Markdown.', which provides additional 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?

The description is well-structured with bullet points and examples, front-loaded with the main purpose, and every sentence adds useful information without redundancy.

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

Completeness4/5

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

With an output schema present, the description covers the main usage modes (list, details, search, indicators) and required codes; it is comprehensive enough for the tool's complexity, though could mention pagination or rate limits if applicable.

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%, but the description adds value by including examples, listing valid region values, and explaining how to use the 'indicadores' parameter with pipe-separated IDs.

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 'Queries international country data via IBGE.' and lists specific features like listing all countries, details, search, and filter, differentiating it from sibling tools which cover other IBGE domains.

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 concrete usage examples for different 'tipo' values, filter options, and valid region list, but does not explicitly state when to avoid this tool in favor of siblings.

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
modoYesModo de consulta que originou este resultado: lista de pesquisas ou detalhes de uma
buscaNoTermo de busca aplicado, se houver (modo lista)
totalNoTotal de pesquisas encontradas (modo lista)
pesquisaNoDetalhes de uma pesquisa específica (modo detalhes)
pesquisasNoLista de pesquisas (modo lista)
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds value by stating 'Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA/Pesquisas API. Returns a Markdown list.' This reinforces behavioral traits and adds details about the API source and return format, complementing annotations 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?

The description is well-structured with clear sections: main purpose, features, list of main surveys, examples, and usage guidance. It is concise, front-loaded with the primary function, and 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 tool's complexity (many siblings, rich annotations, and output schema), the description covers all necessary aspects: purpose, usage boundaries, behavior, parameter semantics via examples, and links to alternative tools. It fully equips an agent to understand 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 description coverage is 100% with both parameters documented. The description adds practical value by providing examples (e.g., 'busca="população"', 'detalhes="pnad"') and explaining their usage context ('Search by name or code', 'Show details and tables of a specific survey'). This goes beyond the schema's minimal 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 it lists available IBGE surveys and tables, with features and examples. It distinguishes itself from siblings by explicitly stating it does not return data, directing users to ibge_sidra_tabelas for table codes and ibge_sidra for data queries, which differentiates its purpose effectively.

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 explicit when-to-use and when-not-to-use guidance: '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).' This gives clear alternatives and context for correct tool selection.

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
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive. The description adds that it is a live GET against a public API and returns Markdown plus structuredContent, providing valuable 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?

Description is well-organized with bullet points and clear sections. It is informative yet concise, though a slight reduction in detail could improve conciseness.

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 (one parameter, no required params, output schema present), the description fully covers what an agent needs to know, including return format and source.

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 one parameter and a clear description. The description does not add new parameter details beyond what the schema provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns real-time Brazilian population projection and lists specific features. It distinguishes itself from sibling tools by specifying what it does NOT do and naming alternatives.

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 the tool only works for Brazil's national projection and provides a bulleted list of conditions for using alternative tools, leaving no ambiguity.

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)
Behavior5/5

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

Annotations already provide readOnlyHint, idempotentHint, destructiveHint, openWorldHint. The description adds behavioral context: 'read-only and idempotent — a live GET against the public IBGE SIDRA API' and mentions return format (Markdown + typed structuredContent). 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?

The description is well-structured with sections (intro, common tables, territorial levels, examples, sibling recommendations, behavior note). Every sentence adds value; no redundancy or fluff. Appropriately sized for a complex tool.

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 complexity (9 parameters, output schema exists), the description is complete: explains purpose, provides examples, lists common parameters, advises on exploration, and notes output format. The output schema covers return details, so no need for more.

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 listing common table codes and territorial level numbers with examples, which helps parameter selection beyond schema descriptions. It also explains effects like 'reduz o volume da resposta' for campos.

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 it queries SIDRA tables from IBGE, lists common tables and territorial levels, and provides examples. It clearly distinguishes itself from sibling tools by positioning itself as the low-level engine with alternatives like ibge_censo for specific themes.

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 explicit when-to-use guidance by listing sibling tools (ibge_censo, ibge_indicadores, ibge_comparar, ibge_cidades) for specific cases and advises using ibge_sidra_tabelas/metadados to find table codes first. This helps agents select the right tool.

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)

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNoURL da tabela no SIDRA
nomeYesNome da tabela
codigoYesCódigo da tabela/agregado SIDRA
assuntoNoAssunto/tema da tabela
periodosNoPeríodos disponíveis para a tabela (quando incluir_periodos)
pesquisaNoNome da pesquisa de origem
variaveisNoVariáveis da tabela, com unidades e classificações/categorias
periodicidadeNoPeriodicidade da pesquisa
niveisTerritoriaisNoNíveis territoriais disponíveis para a tabela
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 'a live GET against the public IBGE SIDRA API' and 'Returns Markdown,' providing operational 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, examples, and a behavioral note. Every line adds value; it is brief yet comprehensive.

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 presence of an output schema, the description need not detail return values. It covers purpose, usage, examples, and behavior, providing complete guidance for an agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters. The description's feature list loosely maps to parameters but does not add significant semantic depth beyond the existing 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 explicitly states 'Returns metadata for a specific SIDRA table' and lists specific features (general info, territorial levels, variable list, classifications, periods). It clearly distinguishes from siblings by specifying its role as a precursor to 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?

Provides explicit usage guidance: 'Use this tool to understand table structure BEFORE querying data with ibge_sidra' and 'Use this after finding a table code (ibge_sidra_tabelas) and before querying with ibge_sidra.' Clearly defines the workflow.

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')

Output Schema

ParametersJSON Schema
NameRequiredDescription
buscaNoTermo de busca aplicado, se houver
totalYesTotal de tabelas que correspondem aos critérios
tabelasYesLista de tabelas SIDRA retornadas
pesquisaNoFiltro de pesquisa aplicado, se houver
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds valuable context: it's a live GET against the public API, returns a Markdown table, and is idempotent. 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?

The description is well-structured with sections (features, examples, workflow, behavior), but it is somewhat verbose. Each sentence adds value, but could be tightened slightly without losing 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 rich annotations and presence of output schema, the description is complete: covers purpose, parameters, workflow step, alternatives, and behavioral traits. It fully equips an agent to use the tool correctly.

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

Parameters4/5

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

Schema coverage is 100% with clear parameter descriptions. The description adds meaning by explaining the role of each param (search by table name, filter by survey) and showing usage in examples. It does not deeply elaborate beyond schema but provides enough context.

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, with explicit features (list all, search by name, filter by survey). It distinguishes from siblings by positioning as step 1 of the SIDRA workflow and noting simpler wrappers for common data (ibge_censo, 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?

Provides explicit when-to-use (first step in SIDRA workflow, find a table code) and when-not-to-use (for common data, use wrappers). Examples demonstrate typical queries, and the workflow chain is clearly outlined.

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYesQuantidade de municípios próximos encontrados
vizinhosYesLista de municípios próximos (mesma mesorregião)
municipioYesMunicípio de referência da consulta
Behavior5/5

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

Annotations declare readOnlyHint=true and idempotentHint=true. Description adds 'read-only and idempotent — a live GET against the public IBGE Localidades API. Returns a Markdown list', providing API source and return format. Consistent with 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 bullets and examples, but contains slight redundancy: the mesoregion approximation note appears twice. Still front-loaded and each sentence is useful.

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 4 parameters, full schema coverage, and output schema present, the description is comprehensive. Explains limitations, provides examples, and describes behavior and return format. 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%. Description adds meaning: explains municipio accepts code or name, uf required for name, incluir_dados for population, and provides example usage. This goes beyond schema properties.

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 'Finds nearby/neighboring municipalities' with specific verb and resource. Differentiates from sibling ibge_municipios by noting alternative use.

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 when-to-use context with examples and notes on approximation. Directs to alternative tool for exact spatial neighborhood and for listing municipalities.

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!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.