MCP 服务器

IBGE Brasil MCP

io.github.SidneyBissoli/ibge-br-mcp
数据与分析 搜索与研究 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Provides searchable access to official Brazilian IBGE statistics, census data, economic and health indicators, geographic information, and municipal comparisons.

fetch
Documento para Deep Research
Returns the full document for an id obtained from `search`, as { id, title, text, url, metadata }: `text` is the readable content (Markdown) and `url` the canonical public page to cite. Companion of `search` in the OpenAI Deep Research contract, over the IBGE (Brazilian official statistics: SIDRA tables, municipalities, known indicators) catalog. Only ids returned by `search` are valid; an unknown id returns an error. The `ibge_*` tools (`ibge_sidra`, `ibge_cidades`, `ibge_indicadores`, `ibge_comparar`…) remain the tools for data queries. Behavior: read-only and idempotent — a live GET against the public source when the document needs it.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Identificador de um documento devolvido por `search`'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'title', 'text', 'url', 'provenance', 'attribution'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Identificador único do documento no servidor; é o que `fetch` recebe'}, 'url': {'type': 'string', 'description': 'URL pública canônica do documento â\x80\x94 a citação do ChatGPT depende dela'}, 'text': {'type': 'string', 'description': 'Conteúdo integral do documento, legÃ\xadvel (Markdown)'}, 'title': {'type': 'string', 'description': 'TÃ\xadtulo legÃ\xadvel do documento'}, 'metadata': {'type': 'object', 'description': 'Pares chave/valor adicionais sobre o documento (tipo, fonte, perÃ\xadodoâ\x80¦)', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}}, 'additionalProperties': False}
ibge_calendario
Calendário de divulgações
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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'de': {'type': 'string', 'description': "Data inicial no formato DD/MM/AAAA (ex: '01/01/2024')"}, 'ate': {'type': 'string', 'description': "Data final no formato DD/MM/AAAA (ex: '31/12/2024')"}, 'tipo': {'enum': ['divulgacao', 'coleta', 'todos'], 'type': 'string', 'default': 'divulgacao', 'description': "Tipo de evento: 'divulgacao' (publicações), 'coleta' (pesquisas de campo), ou 'todos'"}, 'pagina': {'type': 'number', 'default': 1, 'description': 'Número da página (padrão: 1)'}, 'produto': {'type': 'string', 'description': "Filtrar por produto/pesquisa (ex: 'IPCA', 'PNAD', 'PIB')"}, 'quantidade': {'type': 'number', 'default': 20, 'description': 'Quantidade de resultados por página (padrão: 20)'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['eventos', 'total', 'provenance', 'attribution'], 'properties': {'total': {'type': 'number', 'description': 'Total de eventos disponÃ\xadveis para os critérios'}, 'pagina': {'type': 'number', 'description': 'Página atual retornada'}, 'eventos': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'titulo', 'produto', 'dataDivulgacao', 'tipoId', 'tipo'], 'properties': {'id': {'type': 'number', 'description': 'Identificador do evento no calendário'}, 'link': {'type': 'string', 'description': 'Link para mais informações, quando disponÃ\xadvel'}, 'tipo': {'type': 'string', 'description': 'Descrição do tipo do evento'}, 'tipoId': {'type': 'number', 'description': 'ID do tipo (1 = divulgação, 2 = coleta)'}, 'titulo': {'type': 'string', 'description': 'TÃ\xadtulo do evento'}, 'produto': {'type': 'string', 'description': 'Nome do produto/pesquisa associado'}, 'dataDivulgacao': {'type': 'string', 'description': "Data/hora de divulgação no formato 'DD/MM/AAAA HH:MM:SS'"}}, 'additionalProperties': False}, 'description': 'Lista de eventos do calendário (divulgações/coletas)'}, 'produto': {'type': 'string', 'description': 'Filtro de produto aplicado, quando informado'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'totalPaginas': {'type': 'number', 'description': 'Total de páginas disponÃ\xadveis'}}, 'additionalProperties': False}
ibge_censo
Censo Demográfico
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" Statistics mode: for largest/smallest/mean/median/distribution/ranking questions over census data ("which municipality had the largest 2022 population?") use estatisticas=true — full distribution + top/bottom computed over ALL rows before truncation; agruparPor="<column label>" ranks groups by descending sum. In this mode campos/formato are ignored and registros comes empty. Use a different tool when: - 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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'ano': {'enum': ['1970', '1980', '1991', '2000', '2010', '2022', 'todos'], 'type': 'string', 'description': "Ano do censo (1970, 1980, 1991, 2000, 2010, 2022) ou 'todos' para série histórica"}, 'tema': {'enum': ['populacao', 'alfabetizacao', 'domicilios', 'idade_sexo', 'religiao', 'cor_raca', 'rendimento', 'migracao', 'educacao', 'trabalho', 'indigenas', 'quilombolas', 'saneamento', 'deficiencia', 'nupcialidade', 'fecundidade', 'listar'], 'type': 'string', 'default': 'populacao', 'description': 'Tema dos dados:\n- populacao: População residente\n- alfabetizacao: Taxa de alfabetização\n- domicilios: CaracterÃ\xadsticas dos domicÃ\xadlios\n- idade_sexo: Pirâmide etária\n- religiao: Distribuição por religião\n- cor_raca: Cor ou raça\n- rendimento: Rendimento mensal\n- migracao: Migração\n- educacao: NÃ\xadvel de instrução\n- trabalho: Ocupação e trabalho\n- indigenas: População indÃ\xadgena\n- quilombolas: População quilombola\n- saneamento: Abastecimento de água e esgoto\n- deficiencia: Pessoas com deficiência\n- nupcialidade: Estado civil\n- fecundidade: Taxa de fecundidade\n- listar: Lista tabelas disponÃ\xadveis'}, 'topN': {'type': 'integer', 'default': 10, 'maximum': 100, 'minimum': 1, 'description': 'Tamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)'}, 'campos': {'type': 'string', 'description': "Selecionar apenas algumas colunas por rótulo, separadas por vÃ\xadrgula (ex: 'Valor,Ano'). Reduz o volume da resposta."}, 'formato': {'enum': ['tabela', 'json'], 'type': 'string', 'default': 'tabela', 'description': 'Formato de saÃ\xadda'}, 'agruparPor': {'type': 'string', 'description': "Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição. Nome curto ('UF', 'estado', 'cidade', 'região') e rótulo parcial ('Federação') são resolvidos, e a resposta diz em `aviso` por qual coluna agrupou; rótulo que casa com duas colunas é recusado em vez de escolhido"}, 'localidades': {'type': 'string', 'default': 'all', 'description': "Códigos das localidades ou 'all'"}, 'estatisticas': {'type': 'boolean', 'default': False, 'description': "Computa estatÃ\xadsticas (mÃ\xadnimo/máximo/média/mediana/desvio-padrão/percentis) sobre TODOS os registros da consulta, antes da paginação, + ranking top/bottom. Use para 'qual o maior/menor', 'média', 'mediana', 'distribuição', 'ranking'. Quando true, ignora pagina, campos e formato"}, 'nivel_territorial': {'type': 'string', 'default': '1', 'description': 'NÃ\xadvel territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=MunicÃ\xadpio'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['totalRegistros', 'colunas', 'registros', 'provenance', 'attribution'], 'properties': {'ano': {'type': 'string', 'description': 'Ano(s) de referência'}, 'tema': {'type': 'string', 'description': 'Tema do censo consultado'}, 'tabela': {'type': 'string', 'description': 'Tabela SIDRA de origem'}, 'colunas': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Rótulos das colunas, na ordem'}, 'descricao': {'type': 'string', 'description': 'Descrição da tabela'}, 'registros': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'description': 'Registros: cada um mapeia rótulo da coluna -> valor'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'estatisticas': {'type': 'object', 'required': ['colunaValor', 'registrosConsiderados', 'registrosSemValor'], 'properties': {'top': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': 'Maiores valores, com as colunas de identificação do registro (sem agruparPor)'}, 'aviso': {'type': 'string', 'description': 'Avisos sobre agrupamento automático, mistura de unidades ou truncamento'}, 'bottom': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': 'Menores valores (sem agruparPor)'}, 'grupos': {'type': 'array', 'items': {'type': 'object', 'required': ['n', 'soma', 'minimo', 'maximo', 'media', 'mediana', 'desvioPadrao', 'percentis', 'grupo'], 'properties': {'n': {'type': 'number', 'description': 'Registros com valor numérico considerados'}, 'soma': {'type': 'number'}, 'grupo': {'type': 'string'}, 'media': {'type': 'number'}, 'maximo': {'type': 'number'}, 'minimo': {'type': 'number'}, 'mediana': {'type': 'number'}, 'percentis': {'type': 'array', 'items': {'type': 'object', 'required': ['percentil', 'valor', 'rotulo'], 'properties': {'valor': {'type': 'number'}, 'rotulo': {'type': 'string', 'description': 'Enunciado por extenso, pronto para citar ao leitor'}, 'percentil': {'type': 'number', 'description': 'Percentil (50 = mediana)'}}, 'additionalProperties': False}}, 'desvioPadrao': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Grupos ordenados por soma decrescente, cada um com sua mini-distribuição (com agruparPor)'}, 'agrupadoPor': {'type': 'string', 'description': 'Rótulo da coluna de agrupamento (com agruparPor)'}, 'colunaValor': {'type': 'string', 'description': "Rótulo da coluna numérica analisada (sempre 'Valor' no SIDRA)"}, 'totalGrupos': {'type': 'number', 'description': 'Total de grupos existentes antes do teto (com agruparPor)'}, 'distribuicao': {'type': 'object', 'required': ['n', 'soma', 'minimo', 'maximo', 'media', 'mediana', 'desvioPadrao', 'percentis'], 'properties': {'n': {'type': 'number', 'description': 'Registros com valor numérico considerados'}, 'soma': {'type': 'number'}, 'media': {'type': 'number'}, 'maximo': {'type': 'number'}, 'minimo': {'type': 'number'}, 'mediana': {'type': 'number'}, 'percentis': {'type': 'array', 'items': {'type': 'object', 'required': ['percentil', 'valor', 'rotulo'], 'properties': {'valor': {'type': 'number'}, 'rotulo': {'type': 'string', 'description': 'Enunciado por extenso, pronto para citar ao leitor'}, 'percentil': {'type': 'number', 'description': 'Percentil (50 = mediana)'}}, 'additionalProperties': False}}, 'desvioPadrao': {'type': 'number'}}, 'description': 'Distribuição do conjunto inteiro (sem agruparPor)', 'additionalProperties': False}, 'registrosSemValor': {'type': 'number', 'description': "Registros excluÃ\xaddos por marcador de ausência SIDRA ('-', '..', '...', 'X') ou valor não numérico"}, 'registrosConsiderados': {'type': 'number', 'description': 'Registros com valor numérico (contam no n)'}}, 'description': 'Bloco estatÃ\xadstico presente quando estatisticas=true (registros vem vazio nesse modo)', 'additionalProperties': False}, 'totalRegistros': {'type': 'number', 'description': 'Total de registros de dados'}}, 'additionalProperties': False}
ibge_cidades
Panorama municipal (Cidades@)
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: - 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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'uf': {'type': 'string', 'description': 'Código ou sigla da UF para filtrar (ex: 35 ou SP)'}, 'tipo': {'enum': ['panorama', 'indicador', 'pesquisas', 'historico'], 'type': 'string', 'default': 'panorama', 'description': 'Tipo de consulta: panorama (resumo geral), indicador (especÃ\xadfico), pesquisas (listar), historico'}, 'pesquisa': {'type': 'string', 'description': 'ID da pesquisa para filtrar indicadores'}, 'indicador': {'type': 'string', 'description': 'ID do indicador ou nome para busca'}, 'municipio': {'type': 'string', 'description': 'Código IBGE do municÃ\xadpio (7 dÃ\xadgitos)'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tipo', 'indicadores', 'provenance', 'attribution'], 'properties': {'nome': {'type': 'string', 'description': 'Nome do municÃ\xadpio/indicador'}, 'tipo': {'type': 'string', 'description': 'Tipo de consulta (panorama, indicador, pesquisas, historico)'}, 'municipio': {'type': 'string', 'description': 'Código IBGE do municÃ\xadpio'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'indicadores': {'type': 'array', 'items': {'type': 'object', 'required': ['nome', 'valor'], 'properties': {'ano': {'type': 'string'}, 'nome': {'type': 'string'}, 'valor': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'Indicadores retornados (vazio para respostas de catálogo)'}}, 'additionalProperties': False}
ibge_cnae
Classificação CNAE
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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'busca': {'type': 'string', 'description': "Termo para buscar na descrição das atividades (ex: 'software', 'restaurante', 'comércio').\nAcento e caixa não importam, e várias palavras casam em E ('comercio varejista').\nA palavra de todo dia é traduzida para a da CNAE quando preciso â\x80\x94 farmácia â\x86\x92\nprodutos farmacêuticos, academia â\x86\x92 condicionamento fÃ\xadsico, lixo â\x86\x92 resÃ\xadduos â\x80\x94 e a\nresposta diz quando traduziu."}, 'nivel': {'enum': ['secoes', 'divisoes', 'grupos', 'classes', 'subclasses'], 'type': 'string', 'description': 'NÃ\xadvel hierárquico para listar (padrão: mostra todos os nÃ\xadveis relevantes)'}, 'codigo': {'type': 'string', 'description': 'Código CNAE para buscar (seção, divisão, grupo, classe ou subclasse).\nExemplos:\n- Seção: "A" (agricultura)\n- Divisão: "01" (agricultura e pecuária)\n- Grupo: "01.1" (produção de lavouras)\n- Classe: "01.11" (cultivo de cereais)\n- Subclasse: "0111-3/01" (cultivo de arroz)'}, 'limite': {'type': 'number', 'default': 20, 'description': 'Número máximo de resultados (padrão: 20)'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['modo', 'provenance', 'attribution'], 'properties': {'modo': {'enum': ['busca', 'codigo', 'lista', 'estrutura'], 'type': 'string', 'description': 'Modo de resposta que gerou os dados'}, 'busca': {'type': 'object', 'required': ['termo', 'nivel', 'total', 'encontrados', 'resultados'], 'properties': {'nivel': {'type': 'string', 'description': 'NÃ\xadvel hierárquico pesquisado (ex: subclasses, classes)'}, 'termo': {'type': 'string', 'description': 'Termo pesquisado'}, 'total': {'type': 'number', 'description': 'Quantidade de resultados retornados'}, 'resultados': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'descricao'], 'properties': {'id': {'type': 'string', 'description': 'Código CNAE da atividade'}, 'descricao': {'type': 'string', 'description': 'Descrição da atividade'}}, 'additionalProperties': False}, 'description': 'Atividades encontradas para o termo'}, 'encontrados': {'type': 'number', 'description': "Quantidade de atividades que casam o termo no catálogo inteiro (pode ser maior que 'total', que é limitado por 'limite')"}, 'notas_vocabulario': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Presente quando o termo foi traduzido para a palavra que a CNAE usa (ex: farmácia â\x86\x92 produtos farmacêuticos)'}}, 'description': 'Presente no modo de busca por termo', 'additionalProperties': False}, 'lista': {'type': 'object', 'required': ['nivel', 'total', 'exibidos', 'registros'], 'properties': {'nivel': {'type': 'string', 'description': 'NÃ\xadvel hierárquico listado'}, 'total': {'type': 'number', 'description': 'Total de registros existentes no nÃ\xadvel'}, 'exibidos': {'type': 'number', 'description': "Quantidade de registros exibidos (limitada por 'limite')"}, 'registros': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'descricao'], 'properties': {'id': {'type': 'string', 'description': 'Código CNAE do registro'}, 'descricao': {'type': 'string', 'description': 'Descrição do registro'}}, 'additionalProperties': False}, 'description': 'Registros do nÃ\xadvel listado'}}, 'description': 'Presente no modo de listagem por nÃ\xadvel', 'additionalProperties': False}, 'codigo': {'type': 'object', 'required': ['id', 'descricao', 'nivel'], 'properties': {'id': {'type': 'string', 'description': 'Código CNAE consultado'}, 'nivel': {'type': 'string', 'description': 'NÃ\xadvel do código (secao, divisao, grupo, classe ou subclasse)'}, 'descricao': {'type': 'string', 'description': 'Descrição do código'}, 'hierarquia': {'type': 'array', 'items': {'type': 'object', 'required': ['nivel', 'id', 'descricao'], 'properties': {'id': {'type': 'string', 'description': 'Código do nÃ\xadvel'}, 'nivel': {'type': 'string', 'description': 'NÃ\xadvel hierárquico (Seção, Divisão, Grupo, Classe, Subclasse)'}, 'descricao': {'type': 'string', 'description': 'Descrição do nÃ\xadvel'}}, 'additionalProperties': False}, 'description': 'Cadeia hierárquica do código (do mais geral ao mais especÃ\xadfico)'}, 'observacoes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Observações/notas explicativas do código'}}, 'description': 'Presente no modo de consulta por código', 'additionalProperties': False}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}}, 'additionalProperties': False}
ibge_comparar
Comparação entre localidades
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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['localidades'], 'properties': {'formato': {'enum': ['tabela', 'json', 'ranking'], 'type': 'string', 'default': 'tabela', 'description': 'Formato de saÃ\xadda: tabela, json ou ranking (ordenado)'}, 'indicador': {'enum': ['populacao', 'populacao_censo', 'pib', 'area', 'densidade', 'alfabetizacao', 'domicilios', 'listar'], 'type': 'string', 'default': 'populacao', 'description': 'Indicador para comparação:\n- populacao: Estimativa populacional atual\n- populacao_censo: População do Censo 2022\n- pib: PIB a preços correntes (Mil Reais)\n- area: Ã\x81rea territorial (km²)\n- densidade: Densidade demográfica (hab/km²)\n- alfabetizacao: Taxa de alfabetização\n- domicilios: Número de domicÃ\xadlios\n- listar: Lista indicadores disponÃ\xadveis'}, 'localidades': {'type': 'string', 'description': 'Códigos IBGE das localidades separados por vÃ\xadrgula (ex: "3550308,3304557,4106902").\nUse 7 dÃ\xadgitos para municÃ\xadpios, 2 dÃ\xadgitos para UFs.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['localidades', 'provenance', 'attribution'], 'properties': {'nome': {'type': 'string', 'description': 'Nome do indicador'}, 'tabela': {'type': 'string', 'description': 'Tabela SIDRA de origem'}, 'formato': {'type': 'string', 'description': 'Formato solicitado'}, 'indicador': {'type': 'string', 'description': 'Indicador comparado'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'localidades': {'type': 'array', 'items': {'type': 'object', 'required': ['codigo', 'nome', 'valor', 'valorTexto'], 'properties': {'nome': {'type': 'string'}, 'valor': {'type': ['number', 'null']}, 'codigo': {'type': 'string'}, 'valorTexto': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'Localidades comparadas, com o valor do indicador'}, 'estatisticas': {'type': 'object', 'required': ['maior', 'menor', 'media', 'variacaoPct'], 'properties': {'maior': {'type': 'number'}, 'media': {'type': 'number'}, 'menor': {'type': 'number'}, 'variacaoPct': {'type': 'number'}}, 'description': 'EstatÃ\xadsticas agregadas (quando há ao menos 2 valores positivos)', 'additionalProperties': False}}, 'additionalProperties': False}
ibge_datasaude
Indicadores de saúde
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 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" Statistics mode: for largest/smallest/mean/median/distribution/ranking questions ("which state has the highest infant mortality?", "median life expectancy across states") use estatisticas=true — full distribution + top/bottom over ALL rows before truncation; agruparPor="<column label>" ranks groups by descending sum. In this mode campos/formato are ignored and registros comes empty. 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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['indicador'], 'properties': {'topN': {'type': 'integer', 'default': 10, 'maximum': 100, 'minimum': 1, 'description': 'Tamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)'}, 'campos': {'type': 'string', 'description': "Selecionar apenas algumas colunas por rótulo, separadas por vÃ\xadrgula (ex: 'Valor,Ano'). Reduz o volume da resposta."}, 'formato': {'enum': ['tabela', 'json'], 'type': 'string', 'default': 'tabela', 'description': 'Formato de saÃ\xadda'}, 'periodo': {'type': 'string', 'default': 'last', 'description': "PerÃ\xadodo: 'last', 'all', ou ano especÃ\xadfico"}, 'indicador': {'type': 'string', 'description': 'Indicador de saúde. DisponÃ\xadveis:\n- mortalidade_infantil: Taxa de mortalidade infantil\n- esperanca_vida: Esperança de vida ao nascer\n- nascidos_vivos: Nascidos vivos\n- obitos: Ã\x93bitos por local de residência\n- fecundidade: Taxa de fecundidade\n- saneamento_agua: Abastecimento de água\n- saneamento_esgoto: Esgotamento sanitário\n- plano_saude: Cobertura de plano de saúde\n- listar: Lista indicadores disponÃ\xadveis'}, 'agruparPor': {'type': 'string', 'description': "Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição. Nome curto ('UF', 'estado', 'cidade', 'região') e rótulo parcial ('Federação') são resolvidos, e a resposta diz em `aviso` por qual coluna agrupou; rótulo que casa com duas colunas é recusado em vez de escolhido"}, 'localidade': {'type': 'string', 'default': 'all', 'description': "Código da localidade ou 'all'"}, 'estatisticas': {'type': 'boolean', 'default': False, 'description': "Computa estatÃ\xadsticas (mÃ\xadnimo/máximo/média/mediana/desvio-padrão/percentis) sobre TODOS os registros da consulta, antes da paginação, + ranking top/bottom. Use para 'qual o maior/menor', 'média', 'mediana', 'distribuição', 'ranking'. Quando true, ignora pagina, campos e formato"}, 'nivel_territorial': {'type': 'string', 'default': '1', 'description': 'NÃ\xadvel territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=MunicÃ\xadpio'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['totalRegistros', 'colunas', 'registros', 'provenance', 'attribution'], 'properties': {'nome': {'type': 'string', 'description': 'Nome do indicador'}, 'fonte': {'type': 'string', 'description': 'Fonte do dado'}, 'colunas': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Rótulos das colunas, na ordem'}, 'indicador': {'type': 'string', 'description': 'Chave do indicador de saúde consultado'}, 'registros': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'description': 'Registros: cada um mapeia rótulo da coluna -> valor'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'estatisticas': {'type': 'object', 'required': ['colunaValor', 'registrosConsiderados', 'registrosSemValor'], 'properties': {'top': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': 'Maiores valores, com as colunas de identificação do registro (sem agruparPor)'}, 'aviso': {'type': 'string', 'description': 'Avisos sobre agrupamento automático, mistura de unidades ou truncamento'}, 'bottom': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': 'Menores valores (sem agruparPor)'}, 'grupos': {'type': 'array', 'items': {'type': 'object', 'required': ['n', 'soma', 'minimo', 'maximo', 'media', 'mediana', 'desvioPadrao', 'percentis', 'grupo'], 'properties': {'n': {'type': 'number', 'description': 'Registros com valor numérico considerados'}, 'soma': {'type': 'number'}, 'grupo': {'type': 'string'}, 'media': {'type': 'number'}, 'maximo': {'type': 'number'}, 'minimo': {'type': 'number'}, 'mediana': {'type': 'number'}, 'percentis': {'type': 'array', 'items': {'type': 'object', 'required': ['percentil', 'valor', 'rotulo'], 'properties': {'valor': {'type': 'number'}, 'rotulo': {'type': 'string', 'description': 'Enunciado por extenso, pronto para citar ao leitor'}, 'percentil': {'type': 'number', 'description': 'Percentil (50 = mediana)'}}, 'additionalProperties': False}}, 'desvioPadrao': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Grupos ordenados por soma decrescente, cada um com sua mini-distribuição (com agruparPor)'}, 'agrupadoPor': {'type': 'string', 'description': 'Rótulo da coluna de agrupamento (com agruparPor)'}, 'colunaValor': {'type': 'string', 'description': "Rótulo da coluna numérica analisada (sempre 'Valor' no SIDRA)"}, 'totalGrupos': {'type': 'number', 'description': 'Total de grupos existentes antes do teto (com agruparPor)'}, 'distribuicao': {'type': 'object', 'required': ['n', 'soma', 'minimo', 'maximo', 'media', 'mediana', 'desvioPadrao', 'percentis'], 'properties': {'n': {'type': 'number', 'description': 'Registros com valor numérico considerados'}, 'soma': {'type': 'number'}, 'media': {'type': 'number'}, 'maximo': {'type': 'number'}, 'minimo': {'type': 'number'}, 'mediana': {'type': 'number'}, 'percentis': {'type': 'array', 'items': {'type': 'object', 'required': ['percentil', 'valor', 'rotulo'], 'properties': {'valor': {'type': 'number'}, 'rotulo': {'type': 'string', 'description': 'Enunciado por extenso, pronto para citar ao leitor'}, 'percentil': {'type': 'number', 'description': 'Percentil (50 = mediana)'}}, 'additionalProperties': False}}, 'desvioPadrao': {'type': 'number'}}, 'description': 'Distribuição do conjunto inteiro (sem agruparPor)', 'additionalProperties': False}, 'registrosSemValor': {'type': 'number', 'description': "Registros excluÃ\xaddos por marcador de ausência SIDRA ('-', '..', '...', 'X') ou valor não numérico"}, 'registrosConsiderados': {'type': 'number', 'description': 'Registros com valor numérico (contam no n)'}}, 'description': 'Bloco estatÃ\xadstico presente quando estatisticas=true (registros vem vazio nesse modo)', 'additionalProperties': False}, 'totalRegistros': {'type': 'number', 'description': 'Total de registros de dados'}}, 'additionalProperties': False}
ibge_estados
Estados do Brasil
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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'regiao': {'enum': ['N', 'NE', 'SE', 'S', 'CO'], 'type': 'string', 'description': 'Filtrar por região: N (Norte), NE (Nordeste), SE (Sudeste), S (Sul), CO (Centro-Oeste)'}, 'ordenar': {'enum': ['id', 'nome', 'sigla'], 'type': 'string', 'default': 'nome', 'description': 'Campo para ordenação dos resultados'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['estados', 'total', 'provenance', 'attribution'], 'properties': {'total': {'type': 'number', 'description': 'Total de estados retornados'}, 'estados': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sigla', 'nome', 'regiao'], 'properties': {'id': {'type': 'number', 'description': 'Código IBGE do estado'}, 'nome': {'type': 'string', 'description': 'Nome do estado'}, 'sigla': {'type': 'string', 'description': 'Sigla da UF'}, 'regiao': {'type': 'string', 'description': 'Nome da região'}}, 'additionalProperties': False}, 'description': 'Lista de estados'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}}, 'additionalProperties': False}
ibge_geocodigo
Códigos geográficos do IBGE
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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'uf': {'type': 'string', 'description': 'Estado por sigla (SP), nome (São Paulo) ou código IBGE (35) para restringir a busca por nome de municÃ\xadpio'}, 'nome': {'type': 'string', 'description': 'Nome da localidade para encontrar o código IBGE (estado ou municÃ\xadpio)'}, 'codigo': {'type': 'string', 'description': 'Código IBGE para decodificar.\nFormatos aceitos:\n- 1 dÃ\xadgito: Região (1-5)\n- 2 dÃ\xadgitos: UF (11-53)\n- 7 dÃ\xadgitos: MunicÃ\xadpio\n- 9 dÃ\xadgitos: Distrito'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tipo', 'provenance', 'attribution'], 'properties': {'nome': {'type': 'string', 'description': 'Nome da localidade resolvida'}, 'tipo': {'enum': ['regiao', 'uf', 'municipio', 'distrito', 'lista'], 'type': 'string', 'description': 'Tipo do resultado: localidade decodificada (regiao/uf/municipio/distrito) ou lista de municÃ\xadpios encontrados (lista)'}, 'sigla': {'type': 'string', 'description': 'Sigla da região ou UF, quando aplicável'}, 'total': {'type': 'number', 'description': 'Quantidade de municÃ\xadpios encontrados na busca por nome (apenas tipo lista)'}, 'codigo': {'type': 'number', 'description': 'Código IBGE da localidade resolvida (ausente em resultados do tipo lista)'}, 'regiao': {'type': 'string', 'description': 'Nome da região Ã\xa0 qual a UF pertence (apenas tipo uf)'}, 'estados': {'type': 'array', 'items': {'type': 'object', 'required': ['codigo', 'sigla', 'nome'], 'properties': {'nome': {'type': 'string', 'description': 'Nome da UF'}, 'sigla': {'type': 'string', 'description': 'Sigla da UF'}, 'codigo': {'type': 'number', 'description': 'Código IBGE da UF'}}, 'additionalProperties': False}, 'description': 'Estados pertencentes Ã\xa0 região (apenas tipo regiao)'}, 'matches': {'type': 'array', 'items': {'type': 'object', 'required': ['codigo', 'nome'], 'properties': {'nome': {'type': 'string', 'description': 'Nome do municÃ\xadpio'}, 'codigo': {'type': 'number', 'description': 'Código IBGE (7 dÃ\xadgitos) do municÃ\xadpio'}}, 'additionalProperties': False}, 'description': 'MunicÃ\xadpios encontrados na busca por nome (apenas tipo lista)'}, 'hierarquia': {'type': 'array', 'items': {'type': 'object', 'required': ['nivel', 'codigo', 'nome'], 'properties': {'nome': {'type': 'string', 'description': 'Nome da localidade neste nÃ\xadvel'}, 'nivel': {'type': 'string', 'description': 'Nome do nÃ\xadvel territorial (Região, UF, MunicÃ\xadpio, etc.)'}, 'codigo': {'type': 'number', 'description': 'Código IBGE do nÃ\xadvel'}}, 'additionalProperties': False}, 'description': 'Hierarquia geográfica completa, da região ao municÃ\xadpio/distrito (tipo municipio/distrito)'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'codigoSidra': {'type': 'string', 'description': 'Código SIDRA de 6 dÃ\xadgitos do municÃ\xadpio (apenas tipo municipio)'}, 'regiaoCodigo': {'type': 'number', 'description': 'Código IBGE da região Ã\xa0 qual a UF pertence (apenas tipo uf)'}}, 'additionalProperties': False}
ibge_indicadores
Indicadores econômicos e sociais
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" Statistics mode: for largest/smallest/mean/median/distribution/ranking questions ("which state has the highest unemployment?", "median GDP per capita across states") use estatisticas=true — full distribution + top/bottom over ALL rows before truncation; agruparPor="<column label>" (e.g. "Unidade da Federação", "Trimestre") ranks groups by descending sum. In this mode campos/formato are ignored and registros comes empty. 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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'topN': {'type': 'integer', 'default': 10, 'maximum': 100, 'minimum': 1, 'description': 'Tamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)'}, 'campos': {'type': 'string', 'description': "Selecionar apenas algumas colunas por rótulo, separadas por vÃ\xadrgula (ex: 'Valor,Ano'). Reduz o volume da resposta."}, 'formato': {'enum': ['tabela', 'json'], 'type': 'string', 'default': 'tabela', 'description': 'Formato de saÃ\xadda'}, 'periodos': {'type': 'string', 'default': 'last', 'description': "PerÃ\xadodos (ex: '2023', 'last', 'last 4')"}, 'categoria': {'enum': ['economico', 'precos', 'trabalho', 'populacao', 'agropecuaria', 'todos'], 'type': 'string', 'description': 'Filtrar por categoria de indicadores'}, 'indicador': {'type': 'string', 'description': 'Nome do indicador (ex: "pib", "ipca", "desemprego", "populacao").\nUse "listar" para ver todos os indicadores disponÃ\xadveis.'}, 'agruparPor': {'type': 'string', 'description': "Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição. Nome curto ('UF', 'estado', 'cidade', 'região') e rótulo parcial ('Federação') são resolvidos, e a resposta diz em `aviso` por qual coluna agrupou; rótulo que casa com duas colunas é recusado em vez de escolhido"}, 'localidades': {'type': 'string', 'default': 'all', 'description': "Códigos das localidades ou 'all'"}, 'estatisticas': {'type': 'boolean', 'default': False, 'description': "Computa estatÃ\xadsticas (mÃ\xadnimo/máximo/média/mediana/desvio-padrão/percentis) sobre TODOS os registros da consulta, antes da paginação, + ranking top/bottom. Use para 'qual o maior/menor', 'média', 'mediana', 'distribuição', 'ranking'. Quando true, ignora pagina, campos e formato"}, 'nivel_territorial': {'type': 'string', 'default': '1', 'description': 'NÃ\xadvel territorial (código N): 1=Brasil, 2=Região, 3=UF'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['totalRegistros', 'colunas', 'registros', 'provenance', 'attribution'], 'properties': {'nome': {'type': 'string', 'description': 'Nome do indicador'}, 'tabela': {'type': 'string', 'description': 'Tabela SIDRA de origem'}, 'colunas': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Rótulos das colunas, na ordem'}, 'indicador': {'type': 'string', 'description': 'Chave do indicador consultado'}, 'registros': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'description': 'Registros: cada um mapeia rótulo da coluna -> valor'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'estatisticas': {'type': 'object', 'required': ['colunaValor', 'registrosConsiderados', 'registrosSemValor'], 'properties': {'top': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': 'Maiores valores, com as colunas de identificação do registro (sem agruparPor)'}, 'aviso': {'type': 'string', 'description': 'Avisos sobre agrupamento automático, mistura de unidades ou truncamento'}, 'bottom': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': 'Menores valores (sem agruparPor)'}, 'grupos': {'type': 'array', 'items': {'type': 'object', 'required': ['n', 'soma', 'minimo', 'maximo', 'media', 'mediana', 'desvioPadrao', 'percentis', 'grupo'], 'properties': {'n': {'type': 'number', 'description': 'Registros com valor numérico considerados'}, 'soma': {'type': 'number'}, 'grupo': {'type': 'string'}, 'media': {'type': 'number'}, 'maximo': {'type': 'number'}, 'minimo': {'type': 'number'}, 'mediana': {'type': 'number'}, 'percentis': {'type': 'array', 'items': {'type': 'object', 'required': ['percentil', 'valor', 'rotulo'], 'properties': {'valor': {'type': 'number'}, 'rotulo': {'type': 'string', 'description': 'Enunciado por extenso, pronto para citar ao leitor'}, 'percentil': {'type': 'number', 'description': 'Percentil (50 = mediana)'}}, 'additionalProperties': False}}, 'desvioPadrao': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Grupos ordenados por soma decrescente, cada um com sua mini-distribuição (com agruparPor)'}, 'agrupadoPor': {'type': 'string', 'description': 'Rótulo da coluna de agrupamento (com agruparPor)'}, 'colunaValor': {'type': 'string', 'description': "Rótulo da coluna numérica analisada (sempre 'Valor' no SIDRA)"}, 'totalGrupos': {'type': 'number', 'description': 'Total de grupos existentes antes do teto (com agruparPor)'}, 'distribuicao': {'type': 'object', 'required': ['n', 'soma', 'minimo', 'maximo', 'media', 'mediana', 'desvioPadrao', 'percentis'], 'properties': {'n': {'type': 'number', 'description': 'Registros com valor numérico considerados'}, 'soma': {'type': 'number'}, 'media': {'type': 'number'}, 'maximo': {'type': 'number'}, 'minimo': {'type': 'number'}, 'mediana': {'type': 'number'}, 'percentis': {'type': 'array', 'items': {'type': 'object', 'required': ['percentil', 'valor', 'rotulo'], 'properties': {'valor': {'type': 'number'}, 'rotulo': {'type': 'string', 'description': 'Enunciado por extenso, pronto para citar ao leitor'}, 'percentil': {'type': 'number', 'description': 'Percentil (50 = mediana)'}}, 'additionalProperties': False}}, 'desvioPadrao': {'type': 'number'}}, 'description': 'Distribuição do conjunto inteiro (sem agruparPor)', 'additionalProperties': False}, 'registrosSemValor': {'type': 'number', 'description': "Registros excluÃ\xaddos por marcador de ausência SIDRA ('-', '..', '...', 'X') ou valor não numérico"}, 'registrosConsiderados': {'type': 'number', 'description': 'Registros com valor numérico (contam no n)'}}, 'description': 'Bloco estatÃ\xadstico presente quando estatisticas=true (registros vem vazio nesse modo)', 'additionalProperties': False}, 'totalRegistros': {'type': 'number', 'description': 'Total de registros de dados'}}, 'additionalProperties': False}
ibge_localidade
Detalhes de localidade
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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['codigo'], 'properties': {'tipo': {'enum': ['estado', 'municipio', 'distrito'], 'type': 'string', 'description': 'Tipo da localidade. Se não informado, será inferido pelo tamanho do código.'}, 'codigo': {'type': 'number', 'description': 'Código IBGE da localidade (estado: 2 dÃ\xadgitos, municÃ\xadpio: 7 dÃ\xadgitos, distrito: 9 dÃ\xadgitos)'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tipo', 'id', 'nome', 'provenance', 'attribution'], 'properties': {'id': {'type': 'number', 'description': 'Código IBGE da localidade'}, 'nome': {'type': 'string', 'description': 'Nome da localidade'}, 'tipo': {'enum': ['estado', 'municipio', 'distrito'], 'type': 'string', 'description': 'Tipo da localidade retornada'}, 'sigla': {'type': 'string', 'description': 'Sigla da UF (apenas para estados)'}, 'estado': {'type': 'object', 'required': ['id', 'sigla', 'nome'], 'properties': {'id': {'type': 'number', 'description': 'Código IBGE do estado'}, 'nome': {'type': 'string', 'description': 'Nome do estado'}, 'sigla': {'type': 'string', 'description': 'Sigla da UF'}}, 'description': 'Estado da localidade (municÃ\xadpio ou distrito)', 'additionalProperties': False}, 'regiao': {'type': 'object', 'required': ['id', 'sigla', 'nome'], 'properties': {'id': {'type': 'number', 'description': 'Código IBGE da região'}, 'nome': {'type': 'string', 'description': 'Nome da região'}, 'sigla': {'type': 'string', 'description': 'Sigla da região'}}, 'description': 'Região do estado (apenas para estados)', 'additionalProperties': False}, 'municipio': {'type': 'object', 'required': ['id', 'nome'], 'properties': {'id': {'type': 'number', 'description': 'Código IBGE do municÃ\xadpio'}, 'nome': {'type': 'string', 'description': 'Nome do municÃ\xadpio'}}, 'description': 'MunicÃ\xadpio ao qual o distrito pertence (apenas para distritos)', 'additionalProperties': False}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'mesorregiao': {'type': 'object', 'required': ['id', 'nome'], 'properties': {'id': {'type': 'number', 'description': 'Código IBGE da mesorregião'}, 'nome': {'type': 'string', 'description': 'Nome da mesorregião'}}, 'description': 'Mesorregião do municÃ\xadpio', 'additionalProperties': False}, 'microrregiao': {'type': 'object', 'required': ['id', 'nome'], 'properties': {'id': {'type': 'number', 'description': 'Código IBGE da microrregião'}, 'nome': {'type': 'string', 'description': 'Nome da microrregião'}}, 'description': 'Microrregião do municÃ\xadpio', 'additionalProperties': False}, 'regiaoImediata': {'type': 'object', 'required': ['id', 'nome'], 'properties': {'id': {'type': 'number', 'description': 'Código IBGE da região imediata'}, 'nome': {'type': 'string', 'description': 'Nome da região imediata'}}, 'description': 'Região imediata do municÃ\xadpio', 'additionalProperties': False}, 'regiaoIntermediaria': {'type': 'object', 'required': ['id', 'nome'], 'properties': {'id': {'type': 'number', 'description': 'Código IBGE da região intermediária'}, 'nome': {'type': 'string', 'description': 'Nome da região intermediária'}}, 'description': 'Região intermediária do municÃ\xadpio', 'additionalProperties': False}}, 'additionalProperties': False}
ibge_malhas
Malhas geográficas
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).
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['localidade'], 'properties': {'tipo': {'enum': ['paises', 'regioes', 'estados', 'mesorregioes', 'microrregioes', 'municipios', 'regioes-imediatas', 'regioes-intermediarias'], 'type': 'string', 'description': 'Tipo de divisão territorial'}, 'formato': {'enum': ['geojson', 'topojson', 'svg'], 'type': 'string', 'default': 'geojson', 'description': 'Formato de saÃ\xadda (padrão: geojson)'}, 'qualidade': {'enum': ['1', '2', '3', '4', 'minima', 'intermediaria', 'maxima'], 'type': 'string', 'default': 'maxima', 'description': "Qualidade do traçado: 'minima', 'intermediaria' ou 'maxima' (padrão). Os números 1â\x80\x934 do IBGE antigo continuam aceitos e são traduzidos."}, 'resolucao': {'enum': ['0', '1', '2', '3', '4', '5'], 'type': 'string', 'default': '0', 'description': 'Divisões internas a desenhar dentro da malha pedida:\n0 = Sem divisões internas (só o contorno)\n1 = Macrorregiões (apenas quando localidade=BR)\n2 = Unidades da Federação (BR ou uma região)\n3 = Mesorregiões\n4 = Microrregiões\n5 = MunicÃ\xadpios\nCada nÃ\xadvel aceita só as divisões menores que ele: municÃ\xadpio aceita nenhuma, UF aceita 3, 4 e 5.'}, 'localidade': {'type': 'string', 'description': "Código IBGE ou sigla da localidade (ex: 'BR', 'SP', '35', '3550308')"}, 'intrarregiao': {'type': 'string', 'description': "Divisão interna pelo nome, alternativa a resolucao: 'regiao', 'UF', 'regiao-intermediaria', 'regiao-imediata', 'mesorregiao', 'microrregiao' ou 'municipio'. Quando informado, prevalece sobre resolucao."}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['localidade', 'formato', 'provenance', 'attribution'], 'properties': {'url': {'type': 'string', 'description': 'URL para download da malha completa'}, 'tipo': {'type': 'string', 'description': 'Tipo de divisão territorial, quando informado'}, 'formato': {'type': 'string', 'description': 'Formato de saÃ\xadda solicitado (geojson, topojson ou svg)'}, 'qualidade': {'type': 'string', 'description': 'Qualidade do traçado solicitada'}, 'resolucao': {'type': 'string', 'description': 'Resolução/divisões internas solicitada'}, 'localidade': {'type': 'string', 'description': 'Código IBGE ou sigla da localidade consultada'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'intrarregiao': {'type': 'string', 'description': 'Divisão interna desenhada dentro da malha (vocabulário da API v3)'}}, 'additionalProperties': False}
ibge_malhas_tema
Malhas temáticas
Lists what a THEMATIC territorial recorte of Brazil contains: how many features, with which codes and names, and the URL to download its geometry. Available recortes: - biomas: the six continental biomes - amazonia_legal: Legal Amazon boundary - semiarido: semi-arid area - costeiro: coastal municipalities - fronteira: border-strip municipalities - metropolitana: metropolitan regions - ride: Integrated Development Regions - listar: the catalogue itself, without querying the source Filtering with `codigo`: only the recortes that have a per-feature code accept it — biomas (the biome code) and the two municipality ones, costeiro and fronteira (the 7-digit IBGE municipality code). Ask without `codigo` to see what exists; biome codes come from the source, not from a fixed table. GEOMETRY IS NOT IN THE RESPONSE, on purpose: one biome polygon alone is over 9 MB. The response carries the attributes plus a canonical WFS URL that returns the recorte with geometry in GeoJSON. Use a different tool when: - Administrative meshes WITH geometry (country/region/state/municipality outlines) → ibge_malhas Behavior: read-only and idempotent — a live GET against the public IBGE Geosserviços WFS (IBGE Geociências), which is a different service from the Malhas API and the only one that publishes these recortes. Returns Markdown plus a typed structuredContent payload.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tema'], 'properties': {'tema': {'enum': ['biomas', 'amazonia_legal', 'semiarido', 'costeiro', 'fronteira', 'metropolitana', 'ride', 'listar'], 'type': 'string', 'description': 'Recorte temático do território:\n- biomas: os seis biomas continentais\n- amazonia_legal: limite da Amazônia Legal\n- semiarido: área do semiárido\n- costeiro: municÃ\xadpios da zona costeira\n- fronteira: municÃ\xadpios da faixa de fronteira\n- metropolitana: regiões metropolitanas\n- ride: Regiões Integradas de Desenvolvimento\n- listar: lista os recortes disponÃ\xadveis, sem consultar a fonte'}, 'codigo': {'type': 'string', 'description': 'Filtra uma feição do recorte. Só os recortes que têm código próprio aceitam: biomas (cd_bioma, ex. "1") e os dois de municÃ\xadpios, costeiro e fronteira (código IBGE de 7 dÃ\xadgitos). Nos demais a chamada é recusada com a lista do que aceita.'}, 'limite': {'type': 'integer', 'default': 50, 'maximum': 600, 'minimum': 1, 'description': 'Quantas feições trazer (padrão 50, máx. 600). O total do recorte vem sempre, mesmo quando o limite corta a lista.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tema', 'provenance', 'attribution'], 'properties': {'tema': {'type': 'string', 'description': "Recorte solicitado (ou 'listar')"}, 'temas': {'type': 'array', 'items': {'type': 'object', 'required': ['tema', 'nome', 'descricao'], 'properties': {'nome': {'type': 'string', 'description': 'Nome do recorte'}, 'tema': {'type': 'string', 'description': 'Identificador do recorte'}, 'descricao': {'type': 'string', 'description': 'Descrição do recorte'}}, 'additionalProperties': False}, 'description': "Lista de recortes disponÃ\xadveis (somente no modo 'listar')"}, 'camada': {'type': 'string', 'description': 'Camada WFS do IBGE Geosserviços consultada'}, 'codigo': {'type': 'string', 'description': 'Código usado como filtro, quando informado'}, 'feicoes': {'type': 'number', 'description': 'Total de feições do recorte na fonte'}, 'registros': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': 'Atributos de cada feição (sem geometria)'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'url_geometria': {'type': 'string', 'description': 'URL canônica do WFS que devolve a malha COM geometria, em GeoJSON'}, 'feicoes_retornadas': {'type': 'number', 'description': 'Quantas vieram nesta resposta'}}, 'additionalProperties': False}
ibge_municipios
Municípios do Brasil
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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'uf': {'type': 'string', 'description': 'Estado por sigla (SP), nome (São Paulo) ou código IBGE (35). Se não informado, retorna todos os municÃ\xadpios do Brasil.'}, 'busca': {'type': 'string', 'description': 'Termo para buscar no nome do municÃ\xadpio'}, 'limite': {'type': 'number', 'default': 100, 'maximum': 5570, 'minimum': 1, 'description': 'Número máximo de resultados (padrão: 100, máximo: 5570)'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['municipios', 'total', 'provenance', 'attribution'], 'properties': {'uf': {'type': 'string', 'description': 'UF informada no filtro (como recebida na entrada)'}, 'busca': {'type': 'string', 'description': 'Termo de busca aplicado ao nome do municÃ\xadpio'}, 'total': {'type': 'number', 'description': 'Total de municÃ\xadpios encontrados antes do limite'}, 'municipios': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'nome'], 'properties': {'id': {'type': 'number', 'description': 'Código IBGE do municÃ\xadpio'}, 'nome': {'type': 'string', 'description': 'Nome do municÃ\xadpio'}}, 'additionalProperties': False}, 'description': 'Lista de municÃ\xadpios retornados (após filtro e limite)'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}}, 'additionalProperties': False}
ibge_nomes
Frequência e ranking de nomes
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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tipo'], 'properties': {'sexo': {'enum': ['M', 'F'], 'type': 'string', 'description': 'Filtrar por sexo: M (masculino) ou F (feminino)'}, 'tipo': {'enum': ['frequencia', 'ranking'], 'type': 'string', 'description': "Tipo de consulta: 'frequencia' para buscar nomes especÃ\xadficos ou 'ranking' para ver os mais populares"}, 'nomes': {'type': 'string', 'description': "Para tipo='frequencia': Nome ou nomes separados por vÃ\xadrgula"}, 'decada': {'type': 'number', 'description': "Para tipo='ranking': Década do ranking (ex: 1990, 2000, 2010)"}, 'limite': {'type': 'number', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': "Para tipo='ranking': Número de nomes (padrão: 20)"}, 'localidade': {'type': 'string', 'description': 'Código IBGE da localidade (UF: 2 dÃ\xadgitos, MunicÃ\xadpio: 7 dÃ\xadgitos)'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tipo', 'provenance', 'attribution'], 'properties': {'tipo': {'enum': ['frequencia', 'ranking'], 'type': 'string', 'description': 'Tipo da consulta realizada'}, 'ranking': {'type': 'object', 'required': ['localidade', 'itens'], 'properties': {'sexo': {'type': ['string', 'null'], 'description': 'Sexo do ranking: M, F ou nulo'}, 'itens': {'type': 'array', 'items': {'type': 'object', 'required': ['ranking', 'nome', 'frequencia'], 'properties': {'nome': {'type': 'string', 'description': 'Nome'}, 'ranking': {'type': 'number', 'description': 'Posição no ranking'}, 'frequencia': {'type': 'number', 'description': 'Frequência de registros do nome'}}, 'additionalProperties': False}, 'description': "Itens do ranking, limitados pelo parâmetro 'limite'"}, 'decada': {'type': 'number', 'description': 'Década do ranking, quando informada'}, 'localidade': {'type': 'string', 'description': 'Código IBGE da localidade (ou BR para Brasil)'}}, 'description': "Resultado do ranking (presente quando tipo='ranking')", 'additionalProperties': False}, 'frequencia': {'type': 'array', 'items': {'type': 'object', 'required': ['nome', 'localidade', 'periodos', 'total'], 'properties': {'nome': {'type': 'string', 'description': 'Nome consultado'}, 'sexo': {'type': ['string', 'null'], 'description': 'Sexo do nome: M, F ou nulo'}, 'total': {'type': 'number', 'description': 'Soma das frequências de todos os perÃ\xadodos'}, 'periodos': {'type': 'array', 'items': {'type': 'object', 'required': ['periodo', 'frequencia'], 'properties': {'periodo': {'type': 'string', 'description': "PerÃ\xadodo/década (ex: '1930[', '1990,2000[')"}, 'frequencia': {'type': 'number', 'description': 'Frequência de registros do nome no perÃ\xadodo'}}, 'additionalProperties': False}, 'description': 'Frequência do nome por perÃ\xadodo'}, 'localidade': {'type': 'string', 'description': 'Código IBGE da localidade (ou BR para Brasil)'}}, 'additionalProperties': False}, 'description': "Resultados de frequência (presente quando tipo='frequencia')"}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}}, 'additionalProperties': False}
ibge_noticias
Notícias do IBGE
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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'de': {'type': 'string', 'description': 'Data inicial no formato DD/MM/AAAA (ex: 01/01/2024)'}, 'ate': {'type': 'string', 'description': 'Data final no formato DD/MM/AAAA (ex: 31/12/2024)'}, 'tipo': {'enum': ['release', 'noticia'], 'type': 'string', 'description': "Tipo de publicação: 'release' ou 'noticia'"}, 'busca': {'type': 'string', 'description': 'Termo para buscar nas notÃ\xadcias'}, 'pagina': {'type': 'number', 'default': 1, 'minimum': 1, 'description': 'Número da página para paginação'}, 'destaque': {'type': 'boolean', 'description': 'Filtrar apenas notÃ\xadcias em destaque'}, 'quantidade': {'type': 'number', 'default': 10, 'maximum': 100, 'minimum': 1, 'description': 'Quantidade de notÃ\xadcias a retornar (padrão: 10, máximo: 100)'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['noticias', 'total', 'pagina', 'totalPaginas', 'provenance', 'attribution'], 'properties': {'busca': {'type': 'string', 'description': 'Termo de busca aplicado, se houver'}, 'total': {'type': 'number', 'description': 'Total de notÃ\xadcias encontradas na consulta'}, 'pagina': {'type': 'number', 'description': 'Página atual'}, 'noticias': {'type': 'array', 'items': {'type': 'object', 'required': ['titulo', 'tipo', 'dataPublicacao', 'link'], 'properties': {'link': {'type': 'string', 'description': 'URL para a publicação completa'}, 'tipo': {'type': 'string', 'description': "Tipo de publicação (ex: 'Release' ou 'NotÃ\xadcia')"}, 'titulo': {'type': 'string', 'description': 'TÃ\xadtulo da notÃ\xadcia ou release'}, 'destaque': {'type': 'boolean', 'description': 'Indica se a publicação está em destaque'}, 'produtos': {'type': 'string', 'description': 'Produtos do IBGE relacionados Ã\xa0 publicação'}, 'editorias': {'type': 'string', 'description': 'Editoria(s) associada(s) Ã\xa0 publicação'}, 'introducao': {'type': 'string', 'description': 'Introdução/resumo da publicação (texto limpo)'}, 'dataPublicacao': {'type': 'string', 'description': 'Data de publicação (formato original da API)'}}, 'additionalProperties': False}, 'description': 'Lista de notÃ\xadcias retornadas'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'totalPaginas': {'type': 'number', 'description': 'Número total de páginas'}}, 'additionalProperties': False}
ibge_paises
Dados de países
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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'pais': {'type': 'string', 'description': 'Código ISO-ALPHA-2 do paÃ\xads (ex: BR, US, AR) ou código M49'}, 'tipo': {'enum': ['listar', 'detalhes', 'indicadores', 'buscar'], 'type': 'string', 'default': 'listar', 'description': 'Tipo de consulta: listar (todos), detalhes (de um paÃ\xads), indicadores, buscar'}, 'busca': {'type': 'string', 'description': 'Termo de busca para filtrar paÃ\xadses pelo nome'}, 'regiao': {'type': 'string', 'description': 'Filtrar por região/continente: americas, europa, africa, asia, oceania'}, 'indicadores': {'type': 'string', 'description': 'IDs dos indicadores separados por | (ex: 77819|77820)'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tipo', 'provenance', 'attribution'], 'properties': {'pais': {'type': 'object', 'required': ['nome', 'm49', 'isoAlpha2', 'isoAlpha3'], 'properties': {'m49': {'type': 'number', 'description': 'Código M49 do paÃ\xads'}, 'nome': {'type': 'string', 'description': 'Nome do paÃ\xads'}, 'moedas': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'nome'], 'properties': {'id': {'type': 'string', 'description': 'Código da unidade monetária'}, 'nome': {'type': 'string', 'description': 'Nome da unidade monetária'}}, 'additionalProperties': False}, 'description': 'Unidades monetárias do paÃ\xads'}, 'regiao': {'type': 'string', 'description': 'Nome da região/continente'}, 'linguas': {'type': 'array', 'items': {'type': 'string'}, 'description': 'LÃ\xadnguas faladas no paÃ\xads'}, 'historico': {'type': 'string', 'description': 'Texto histórico sobre o paÃ\xads'}, 'isoAlpha2': {'type': 'string', 'description': 'Código ISO-ALPHA-2'}, 'isoAlpha3': {'type': 'string', 'description': 'Código ISO-ALPHA-3'}, 'subRegiao': {'type': 'string', 'description': 'Nome da sub-região'}, 'indicadores': {'type': 'array', 'items': {'type': 'object', 'required': ['indicador', 'valor', 'ano'], 'properties': {'ano': {'type': 'string', 'description': 'Ano de referência do valor'}, 'valor': {'type': 'string', 'description': 'Valor mais recente do indicador'}, 'indicador': {'type': 'string', 'description': 'Nome do indicador'}}, 'additionalProperties': False}, 'description': 'Indicadores principais com o valor mais recente disponÃ\xadvel'}, 'areaTotalKm2': {'type': 'number', 'description': 'Ã\x81rea territorial total em km²'}, 'regiaoIntermediaria': {'type': 'string', 'description': 'Nome da região intermediária'}}, 'description': 'Detalhes de um paÃ\xads especÃ\xadfico (modo detalhes)', 'additionalProperties': False}, 'tipo': {'enum': ['listar', 'buscar', 'detalhes', 'indicadores'], 'type': 'string', 'description': 'Modo de consulta que originou este resultado'}, 'busca': {'type': 'string', 'description': 'Termo de busca aplicado, se houver'}, 'total': {'type': 'number', 'description': 'Total de paÃ\xadses encontrados (modos listar/buscar)'}, 'paises': {'type': 'array', 'items': {'type': 'object', 'required': ['codigo', 'nome', 'regiao', 'subRegiao'], 'properties': {'nome': {'type': 'string', 'description': 'Nome do paÃ\xads'}, 'codigo': {'type': 'string', 'description': "Código ISO-ALPHA-2 do paÃ\xads (ou '-' se ausente)"}, 'regiao': {'type': 'string', 'description': "Nome da região/continente (ou '-' se ausente)"}, 'subRegiao': {'type': 'string', 'description': "Nome da sub-região (ou '-' se ausente)"}}, 'additionalProperties': False}, 'description': 'Lista de paÃ\xadses (modos listar/buscar). Limitada aos 50 primeiros na exibição'}, 'regiao': {'type': 'string', 'description': 'Filtro de região/continente aplicado, se houver'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'indicadores': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'nome', 'alias'], 'properties': {'id': {'type': 'number', 'description': 'ID do indicador na API do IBGE'}, 'nome': {'type': 'string', 'description': 'Nome do indicador'}, 'alias': {'type': 'string', 'description': 'Apelido amigável do indicador'}}, 'additionalProperties': False}, 'description': 'Indicadores disponÃ\xadveis para consulta de paÃ\xadses (modo indicadores)'}}, 'additionalProperties': False}
ibge_pesquisas
Pesquisas do IBGE
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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'busca': {'type': 'string', 'description': 'Termo para buscar no nome ou ID da pesquisa'}, 'detalhes': {'type': 'string', 'description': 'Código da pesquisa para ver detalhes e tabelas disponÃ\xadveis'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['modo', 'provenance', 'attribution'], 'properties': {'modo': {'enum': ['lista', 'detalhes'], 'type': 'string', 'description': 'Modo de consulta que originou este resultado: lista de pesquisas ou detalhes de uma'}, 'busca': {'type': 'string', 'description': 'Termo de busca aplicado, se houver (modo lista)'}, 'total': {'type': 'number', 'description': 'Total de pesquisas encontradas (modo lista)'}, 'pesquisa': {'type': 'object', 'required': ['id', 'nome', 'totalTabelas', 'tabelas'], 'properties': {'id': {'type': 'string', 'description': 'Código da pesquisa'}, 'nome': {'type': 'string', 'description': 'Nome da pesquisa'}, 'tabelas': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'nome'], 'properties': {'id': {'type': 'string', 'description': 'Código da tabela (agregado)'}, 'nome': {'type': 'string', 'description': 'Nome da tabela'}}, 'additionalProperties': False}, 'description': 'Tabelas disponÃ\xadveis na pesquisa'}, 'totalTabelas': {'type': 'number', 'description': 'Quantidade de tabelas da pesquisa'}}, 'description': 'Detalhes de uma pesquisa especÃ\xadfica (modo detalhes)', 'additionalProperties': False}, 'pesquisas': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'nome', 'totalTabelas'], 'properties': {'id': {'type': 'string', 'description': 'Código da pesquisa'}, 'nome': {'type': 'string', 'description': 'Nome da pesquisa'}, 'totalTabelas': {'type': 'number', 'description': 'Quantidade de tabelas (agregados) da pesquisa'}}, 'additionalProperties': False}, 'description': 'Lista de pesquisas (modo lista)'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}}, 'additionalProperties': False}
ibge_sidra
Consulta de tabelas SIDRA
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: Population, territorial area and density (Census 2022) - 4099: Unemployment rate (PNAD Contínua, quarterly) - 5436: Average real income (PNAD Contínua, quarterly) - 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" Statistics mode: for **largest/smallest/mean/median/distribution/ranking** questions ("which municipality has the largest population?", "median GDP by state") use estatisticas=true — it computes min/max/mean/median/std-dev/labeled percentiles over ALL data rows BEFORE pagination and returns top/bottom rankings (default 10, cap 100 via topN), so one call answers what would otherwise require paging thousands of records. With agruparPor="<column label>" (e.g. "Unidade da Federação", "Ano") it ranks groups by descending sum, each with its own mini-distribution. Queries mixing several variables auto-group by "Variável" (units differ). SIDRA absence markers ("-", "..", "...", "X") are excluded from n. In this mode pagina/campos/formato are ignored and registros comes empty. Very large queries are refused by the source (since 2026-09-16 SIDRA tables are read through the Aggregates API, whose ceiling is lower than SIDRA's old 100,000-value cap: all municipalities × 12 yearly periods fails, × 8 works) — narrow periodos (e.g. "last 4") or raise nivel_territorial. 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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tabela'], 'properties': {'topN': {'type': 'integer', 'default': 10, 'maximum': 100, 'minimum': 1, 'description': 'Tamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)'}, 'campos': {'type': 'string', 'description': "Selecionar apenas algumas colunas por rótulo, separadas por vÃ\xadrgula (ex: 'Valor,Ano'). Reduz o volume da resposta. Omitir traz todas."}, 'pagina': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Página de resultados (100 registros por página)'}, 'tabela': {'type': 'string', 'description': 'Código da tabela SIDRA (ex: 6579 para estimativas de população, 9514 para censo 2022)'}, 'formato': {'enum': ['json', 'tabela'], 'type': 'string', 'default': 'tabela', 'description': "Formato de saÃ\xadda: 'json' para dados brutos ou 'tabela' para formato legÃ\xadvel"}, 'periodos': {'type': 'string', 'default': 'last', 'description': "PerÃ\xadodos: 'last' para último, 'all' para todos, ou anos especÃ\xadficos (ex: 2020,2021,2022)"}, 'variaveis': {'type': 'string', 'default': 'allxp', 'description': "IDs das variáveis separados por vÃ\xadrgula, ou 'allxp' para todas"}, 'agruparPor': {'type': 'string', 'description': "Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição. Nome curto ('UF', 'estado', 'cidade', 'região') e rótulo parcial ('Federação') são resolvidos, e a resposta diz em `aviso` por qual coluna agrupou; rótulo que casa com duas colunas é recusado em vez de escolhido"}, 'localidades': {'type': 'string', 'default': 'all', 'description': "Códigos das localidades separados por vÃ\xadrgula, ou 'all' para todas"}, 'estatisticas': {'type': 'boolean', 'default': False, 'description': "Computa estatÃ\xadsticas (mÃ\xadnimo/máximo/média/mediana/desvio-padrão/percentis) sobre TODOS os registros da consulta, antes da paginação, + ranking top/bottom. Use para 'qual o maior/menor', 'média', 'mediana', 'distribuição', 'ranking'. Quando true, ignora pagina, campos e formato"}, 'classificacoes': {'type': 'string', 'description': "Classificações no formato 'id[categorias]' (ex: '2[6794]' para sexo masculino)"}, 'nivel_territorial': {'type': 'string', 'default': '1', 'description': 'NÃ\xadvel territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=MunicÃ\xadpio, 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árido'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tabela', 'nome', 'totalRegistros', 'colunas', 'registros', 'paginacao', 'provenance', 'attribution'], 'properties': {'nome': {'type': 'string', 'description': 'Nome da tabela (quando conhecido)'}, 'tabela': {'type': 'string', 'description': 'Código da tabela SIDRA consultada'}, 'colunas': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Rótulos das colunas, na ordem'}, 'paginacao': {'type': 'object', 'required': ['pagina', 'porPagina', 'totalPaginas', 'temMais'], 'properties': {'pagina': {'type': 'number'}, 'temMais': {'type': 'boolean'}, 'porPagina': {'type': 'number'}, 'totalPaginas': {'type': 'number'}}, 'description': 'Metadados de paginação para continuação', 'additionalProperties': False}, 'registros': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'description': 'Registros da página atual: cada um mapeia rótulo da coluna -> valor'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'estatisticas': {'type': 'object', 'required': ['colunaValor', 'registrosConsiderados', 'registrosSemValor'], 'properties': {'top': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': 'Maiores valores, com as colunas de identificação do registro (sem agruparPor)'}, 'aviso': {'type': 'string', 'description': 'Avisos sobre agrupamento automático, mistura de unidades ou truncamento'}, 'bottom': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': 'Menores valores (sem agruparPor)'}, 'grupos': {'type': 'array', 'items': {'type': 'object', 'required': ['n', 'soma', 'minimo', 'maximo', 'media', 'mediana', 'desvioPadrao', 'percentis', 'grupo'], 'properties': {'n': {'type': 'number', 'description': 'Registros com valor numérico considerados'}, 'soma': {'type': 'number'}, 'grupo': {'type': 'string'}, 'media': {'type': 'number'}, 'maximo': {'type': 'number'}, 'minimo': {'type': 'number'}, 'mediana': {'type': 'number'}, 'percentis': {'type': 'array', 'items': {'type': 'object', 'required': ['percentil', 'valor', 'rotulo'], 'properties': {'valor': {'type': 'number'}, 'rotulo': {'type': 'string', 'description': 'Enunciado por extenso, pronto para citar ao leitor'}, 'percentil': {'type': 'number', 'description': 'Percentil (50 = mediana)'}}, 'additionalProperties': False}}, 'desvioPadrao': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Grupos ordenados por soma decrescente, cada um com sua mini-distribuição (com agruparPor)'}, 'agrupadoPor': {'type': 'string', 'description': 'Rótulo da coluna de agrupamento (com agruparPor)'}, 'colunaValor': {'type': 'string', 'description': "Rótulo da coluna numérica analisada (sempre 'Valor' no SIDRA)"}, 'totalGrupos': {'type': 'number', 'description': 'Total de grupos existentes antes do teto (com agruparPor)'}, 'distribuicao': {'type': 'object', 'required': ['n', 'soma', 'minimo', 'maximo', 'media', 'mediana', 'desvioPadrao', 'percentis'], 'properties': {'n': {'type': 'number', 'description': 'Registros com valor numérico considerados'}, 'soma': {'type': 'number'}, 'media': {'type': 'number'}, 'maximo': {'type': 'number'}, 'minimo': {'type': 'number'}, 'mediana': {'type': 'number'}, 'percentis': {'type': 'array', 'items': {'type': 'object', 'required': ['percentil', 'valor', 'rotulo'], 'properties': {'valor': {'type': 'number'}, 'rotulo': {'type': 'string', 'description': 'Enunciado por extenso, pronto para citar ao leitor'}, 'percentil': {'type': 'number', 'description': 'Percentil (50 = mediana)'}}, 'additionalProperties': False}}, 'desvioPadrao': {'type': 'number'}}, 'description': 'Distribuição do conjunto inteiro (sem agruparPor)', 'additionalProperties': False}, 'registrosSemValor': {'type': 'number', 'description': "Registros excluÃ\xaddos por marcador de ausência SIDRA ('-', '..', '...', 'X') ou valor não numérico"}, 'registrosConsiderados': {'type': 'number', 'description': 'Registros com valor numérico (contam no n)'}}, 'description': 'Bloco estatÃ\xadstico presente quando estatisticas=true (registros vem vazio nesse modo)', 'additionalProperties': False}, 'totalRegistros': {'type': 'number', 'description': 'Total de registros de dados disponÃ\xadveis (todas as páginas)'}}, 'additionalProperties': False}
ibge_sidra_metadados
Metadados de tabela SIDRA
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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tabela'], 'properties': {'tabela': {'type': 'string', 'description': "Código da tabela/agregado SIDRA (ex: '6579', '9514', '4714')"}, 'incluir_periodos': {'type': 'boolean', 'default': True, 'description': 'Incluir lista de perÃ\xadodos disponÃ\xadveis (padrão: true)'}, 'incluir_localidades': {'type': 'boolean', 'default': False, 'description': 'Incluir nÃ\xadveis territoriais disponÃ\xadveis (padrão: false)'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['codigo', 'nome', 'provenance', 'attribution'], 'properties': {'url': {'type': 'string', 'description': 'URL da tabela no SIDRA'}, 'nome': {'type': 'string', 'description': 'Nome da tabela'}, 'codigo': {'type': 'string', 'description': 'Código da tabela/agregado SIDRA'}, 'assunto': {'type': 'string', 'description': 'Assunto/tema da tabela'}, 'periodos': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'literais'], 'properties': {'id': {'type': 'string', 'description': 'Código do perÃ\xadodo'}, 'literais': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Descrições textuais do perÃ\xadodo'}}, 'additionalProperties': False}, 'description': 'PerÃ\xadodos disponÃ\xadveis para a tabela (quando incluir_periodos)'}, 'pesquisa': {'type': 'string', 'description': 'Nome da pesquisa de origem'}, 'variaveis': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'nome'], 'properties': {'id': {'type': 'number', 'description': 'ID da variável'}, 'nome': {'type': 'string', 'description': 'Nome da variável'}, 'unidade': {'type': 'string', 'description': 'Unidade de medida da variável'}, 'classificacoes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'nome', 'categorias'], 'properties': {'id': {'type': 'number', 'description': 'ID da classificação'}, 'nome': {'type': 'string', 'description': 'Nome da classificação'}, 'categorias': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'nome'], 'properties': {'id': {'type': 'number', 'description': 'ID da categoria'}, 'nome': {'type': 'string', 'description': 'Nome da categoria'}, 'nivel': {'type': 'number', 'description': 'NÃ\xadvel hierárquico da categoria'}, 'unidade': {'type': 'string', 'description': 'Unidade da categoria'}}, 'additionalProperties': False}, 'description': 'Categorias da classificação'}}, 'additionalProperties': False}, 'description': 'Classificações aplicáveis Ã\xa0 variável'}}, 'additionalProperties': False}, 'description': 'Variáveis da tabela, com unidades e classificações/categorias'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'periodicidade': {'type': 'object', 'properties': {'fim': {'type': 'number', 'description': 'Ano/perÃ\xadodo final da série'}, 'inicio': {'type': 'number', 'description': 'Ano/perÃ\xadodo inicial da série'}, 'frequencia': {'type': 'string', 'description': 'Frequência de coleta (ex: anual, mensal)'}}, 'description': 'Periodicidade da pesquisa', 'additionalProperties': False}, 'niveisTerritoriais': {'type': 'array', 'items': {'type': 'object', 'required': ['codigo', 'nome'], 'properties': {'nome': {'type': 'string', 'description': 'Nome do nÃ\xadvel territorial (ex: Brasil, UF, MunicÃ\xadpio)'}, 'codigo': {'type': 'string', 'description': 'Código do nÃ\xadvel territorial (ex: N1, N3, N6)'}}, 'additionalProperties': False}, 'description': 'NÃ\xadveis territoriais disponÃ\xadveis para a tabela'}}, 'additionalProperties': False}
ibge_sidra_tabelas
Busca de tabelas SIDRA
Lists and searches available SIDRA tables. Features: - List all SIDRA tables (aggregates) - Search by table name: every word must match (AND), accents and case ignored, and everyday Portuguese is resolved to the IBGE's own wording (renda→rendimento, desemprego→desocupação, cidade→município, gênero→sexo); when that happens the response says so in notas_vocabulario - 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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'busca': {'type': 'string', 'description': 'Termos para buscar no nome das tabelas/agregados (sem distinção de acento ou caixa; AND entre as palavras; a palavra de todo dia é traduzida para a do IBGE â\x80\x94 rendaâ\x86\x92rendimento, desempregoâ\x86\x92desocupação, cidadeâ\x86\x92municÃ\xadpio)'}, 'limite': {'type': 'number', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Número máximo de resultados (padrão: 20)'}, 'pesquisa': {'type': 'string', 'description': "Filtrar por código ou nome da pesquisa (ex: 'censo', 'pnad', 'pib')"}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['tabelas', 'total', 'provenance', 'attribution'], 'properties': {'busca': {'type': 'string', 'description': 'Termo de busca aplicado, se houver'}, 'total': {'type': 'number', 'description': 'Total de tabelas que correspondem aos critérios'}, 'tabelas': {'type': 'array', 'items': {'type': 'object', 'required': ['codigo', 'nome'], 'properties': {'nome': {'type': 'string', 'description': 'Nome da tabela/agregado'}, 'codigo': {'type': 'string', 'description': 'Código da tabela/agregado SIDRA'}, 'pesquisa': {'type': 'string', 'description': 'Pesquisa de origem (código - nome)'}}, 'additionalProperties': False}, 'description': 'Lista de tabelas SIDRA retornadas'}, 'pesquisa': {'type': 'string', 'description': 'Filtro de pesquisa aplicado, se houver'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}, 'notas_vocabulario': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Quando a busca foi ampliada para a palavra que o IBGE usa (rendaâ\x86\x92rendimento), diz qual'}}, 'additionalProperties': False}
ibge_vizinhos
Municípios vizinhos
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.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['municipio'], 'properties': {'uf': {'type': 'string', 'description': 'Estado por sigla (SP), nome (São Paulo) ou código IBGE (35) â\x80\x94 obrigatório se usar nome do municÃ\xadpio'}, 'raio': {'type': 'number', 'description': 'Raio em km para buscar municÃ\xadpios próximos (usa centróides)'}, 'municipio': {'type': 'string', 'description': 'Código IBGE do municÃ\xadpio (7 dÃ\xadgitos) ou nome do municÃ\xadpio'}, 'incluir_dados': {'type': 'boolean', 'default': False, 'description': 'Incluir dados populacionais dos vizinhos'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['municipio', 'vizinhos', 'total', 'provenance', 'attribution'], 'properties': {'total': {'type': 'number', 'description': 'Quantidade de municÃ\xadpios próximos encontrados'}, 'vizinhos': {'type': 'array', 'items': {'type': 'object', 'required': ['codigo', 'nome'], 'properties': {'uf': {'type': 'string', 'description': 'Sigla da UF do municÃ\xadpio vizinho'}, 'nome': {'type': 'string', 'description': 'Nome do municÃ\xadpio vizinho'}, 'codigo': {'type': 'string', 'description': 'Código IBGE do municÃ\xadpio vizinho'}, 'populacao': {'type': 'number', 'description': 'População do municÃ\xadpio vizinho (apenas quando incluir_dados=true)'}}, 'additionalProperties': False}, 'description': 'Lista de municÃ\xadpios próximos (mesma mesorregião)'}, 'municipio': {'type': 'object', 'required': ['codigo', 'nome'], 'properties': {'nome': {'type': 'string', 'description': 'Nome do municÃ\xadpio consultado'}, 'codigo': {'type': 'string', 'description': 'Código IBGE do municÃ\xadpio consultado'}}, 'description': 'MunicÃ\xadpio de referência da consulta', 'additionalProperties': False}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}}, 'additionalProperties': False}
search
Busca para Deep Research
Searches the IBGE (Brazilian official statistics: SIDRA tables, municipalities, known indicators) catalog and returns up to 10 matching documents as { id, title, url }, ordered by relevance (an empty list means nothing matched). This tool exists for the OpenAI Deep Research contract: ChatGPT deep research, company knowledge and research workflows over the Responses API require exactly the tools `search` and `fetch`. Pass one of the returned ids to `fetch` to read the document. For direct questions and for data (values, series, rankings) prefer the `ibge_*` tools (`ibge_sidra`, `ibge_cidades`, `ibge_indicadores`, `ibge_comparar`…), which return the actual data with provenance — this is a catalog index, not a data query. Query: natural language or keywords, Portuguese or English; accents and case are ignored. Behavior: read-only and idempotent — the catalog comes from the public source and is cached in memory.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Termos de busca em linguagem natural ou palavras-chave (acentos e caixa são ignorados)'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['results', 'provenance', 'attribution'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'url'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Identificador único do documento no servidor; é o que `fetch` recebe'}, 'url': {'type': 'string', 'description': 'URL pública canônica do documento â\x80\x94 a citação do ChatGPT depende dela'}, 'title': {'type': 'string', 'description': 'TÃ\xadtulo legÃ\xadvel do documento'}}, 'additionalProperties': False}, 'description': 'Documentos encontrados, em ordem de relevância'}, 'provenance': {'type': 'object', 'required': ['source', 'source_url', 'data_vintage', 'retrieved_at', 'retrieval', 'citation', 'license'], 'properties': {'source': {'type': 'string', 'description': 'Fonte oficial do dado (API do IBGE consultada)'}, 'license': {'type': ['string', 'null'], 'description': 'Regime legal do dado'}, 'citation': {'type': 'string', 'description': 'Citação pronta para uso'}, 'retrieval': {'anyOf': [{'type': 'object', 'required': ['requests', 'attempts', 'anomalies', 'unstable'], 'properties': {'attempts': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Tentativas somadas, incluindo as repetidas (>= requests)'}, 'requests': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Idas distintas Ã\xa0 origem que compõem esta resposta (fatias, páginas)'}, 'unstable': {'type': 'boolean', 'description': 'true se houve repetição (attempts > requests) ou alguma anomalia'}, 'anomalies': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'count'], 'properties': {'kind': {'enum': ['timeout', 'network', 'http_4xx', 'http_5xx', 'rate_limited', 'malformed_body'], 'type': 'string', 'description': 'Classe da anomalia (vocabulário fechado do contrato)'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Ocorrências desta classe na chamada'}}, 'additionalProperties': False}, 'description': 'Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Diagnóstico de origem desta chamada (contrato v1.1): idas Ã\xa0 API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)'}, 'source_url': {'type': 'string', 'description': 'URL canônica que reproduz a consulta'}, 'data_vintage': {'type': ['string', 'null'], 'description': 'PerÃ\xadodo de referência do dado segundo a fonte; null se a fonte não expõe'}, 'retrieved_at': {'type': 'string', 'description': 'Instante real da extração no upstream (ISO-8601, horário de BrasÃ\xadlia)'}}, 'description': 'Bloco de proveniência (contrato v1.1): fonte, URL, perÃ\xadodo, extração, diagnóstico de origem e licença', 'additionalProperties': False}, 'attribution': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs canônicas das fontes desta resposta (lista de atribuição)'}}, 'additionalProperties': False}
已更改
fetch
2026年10月3日 02:57
已更改
search
2026年10月3日 02:57
已更改
fetch
2026年9月29日 02:58
已更改
search
2026年9月29日 02:58
已更改
ibge_cidades
2026年9月29日 02:58
已更改
ibge_paises
2026年9月29日 02:58
已更改
ibge_datasaude
2026年9月29日 02:58
已更改
ibge_vizinhos
2026年9月29日 02:58
已更改
ibge_malhas_tema
2026年9月29日 02:58
已更改
ibge_comparar
2026年9月29日 02:58
已更改
ibge_calendario
2026年9月29日 02:58
已更改
ibge_geocodigo
2026年9月29日 02:58
已更改
ibge_cnae
2026年9月29日 02:58
已更改
ibge_indicadores
2026年9月29日 02:58
已更改
ibge_censo
2026年9月29日 02:58
已更改
ibge_pesquisas
2026年9月29日 02:58
已更改
ibge_malhas
2026年9月29日 02:58
已更改
ibge_sidra_metadados
2026年9月29日 02:58
已更改
ibge_sidra_tabelas
2026年9月29日 02:58
已更改
ibge_noticias
2026年9月29日 02:58
已更改
ibge_nomes
2026年9月29日 02:58
已更改
ibge_sidra
2026年9月29日 02:58
已更改
ibge_localidade
2026年9月29日 02:58
已更改
ibge_municipios
2026年9月29日 02:58
已更改
ibge_estados
2026年9月29日 02:58
已更改
ibge_cnae
2026年9月23日 02:49
已添加
fetch
2026年9月17日 12:52
已添加
search
2026年9月17日 12:52
已添加
ibge_cidades
2026年9月17日 12:52
已添加
ibge_paises
2026年9月17日 12:52