IBGE Brasil MCP について
IBGE Brasil MCPは、AIアシスタントや研究者向けに、ブラジルの地理、国勢調査、経済、健康に関する公式データへリアルタイムでアクセスできるサーバーです。応答には出典、対象期間、取得時刻、引用などの来歴情報が含まれます。
主な機能
- 01IBGEデータ向けの23個のツール
- 02公式APIへのリアルタイム照会
- 03応答に来歴情報と引用を付与
- 04参照リソースと分析プロンプト
- 05キャッシュとリトライ処理
活用シーン
- 01地域別の国勢調査データの確認
- 02自治体間の指標比較
- 03SIDRAの表とメタデータの調査
- 04最新のブラジル公共データの引用
MCP 対応
MCPツールを通じてIBGEデータの照会を提供し、参照リソースと分析プロンプトも公開します。応答には構造化された来歴情報、出典URL、対象期間、引用が含まれます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://ibge.sidneybissoli.com/mcpclaude mcp add --transport http sidneybissoli-ibge-br https://ibge.sidneybissoli.com/mcp{"mcpServers":{"sidneybissoli-ibge-br":{"type":"http","url":"https://ibge.sidneybissoli.com/mcp"}}}Cursor で開く{"servers":{"sidneybissoli-ibge-br":{"type":"http","url":"https://ibge.sidneybissoli.com/mcp"}}}VS Code で開く{"mcpServers":{"sidneybissoli-ibge-br":{"type":"http","url":"https://ibge.sidneybissoli.com/mcp"}}}{"mcpServers":{"sidneybissoli-ibge-br":{"serverUrl":"https://ibge.sidneybissoli.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
23| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| regiao | enum | いいえ | 地域で絞り込み:N(北部)、NE(北東部)、SE(南東部)、S(南部)、CO(中西部)N | NE | SE | S | CO |
| ordenar | enum | いいえ | 結果の並べ替えに使用するフィールドid | nome | sigla |
詳細
IBGE Brasil MCP サーバー
出典を明示した、推測ではない、ブラジルの最新かつ正確な公的データをAIアシスタントに提供します。
LLMに「2022年の国勢調査でベロオリゾンテの人口は何人でしたか?」と尋ねると、学習データに基づくもっともらしい数値が返ってきます。正しいかもしれませんし、古いかもしれませんが、出典はありません。一方、ibge-br-mcpでは、アシスタントが公式のIBGE APIにリアルタイムで問い合わせ、数値とともに、その出典となる表と期間を返します。
🇧🇷 ポルトガル語で読む
このサーバーはModel Context Protocol (MCP)を実装し、IBGE API(IBGEのSIDRAシステムを通じて提供される健康指標を含む)を情報源として、ブラジルの地理、人口、経済、健康に関するデータへのライブかつ構造化されたアクセスをAIアシスタントに提供します。
実際の動作を見る
英語またはポルトガル語でアシスタントに尋ねてみましょう。
- 「2022年の国勢調査でベロオリゾンテの人口は何人でしたか?」 →
ibge_cidades/ibge_censo - 「エスピリトサント州の市町村を一覧表示してください。」 →
ibge_municipios - 「南東部の州都のGDPを比較してください。」 →
ibge_comparar
回答は公式のIBGE APIからリアルタイムで取得されます。学習データから推測した数値ではなく、出典となる表と期間が明示された正確な数値が返されます。
一つの回答ではなく、分析全体を見てみませんか?
一連のデモでは、「2010年から2022年の国勢調査の間に最も成長した州はどこで、その成長の要因は何か」という実際の質問に、最初の呼び出しから結論まで取り組み、すべての数値を取得時のまま示します。
実践例では、5,570の市町村すべてを1回の呼び出しで順位付けする例など、7つの短いレシピを紹介します。
特徴
- 23 個のツール:IBGE の主要なデータ領域を網羅しています。
ibge_*データツール 21 個に加え、ChatGPT Deep Research 用のsearch/fetchを利用できます。 - すべての応答に出典情報ブロックを含みます:出典、正規 URL、参照期間、実際の取得日時、そのまま使える引用、法的枠組みを記載します(データの出典情報を参照)。
- 参照リソースと分析プロンプト(MCP カタログ+すぐに使えるテンプレート)
- 自動テスト 565 件:全体のカバレッジは 88%、ツール全体では 92%です。
- パフォーマンスを最適化する、TTL を設定可能な自動キャッシュ
- ネットワーク障害に対応する、指数バックオフを用いた再試行メカニズム
- すべての入力パラメーターに対する包括的な検証
- 役立つ提案を含む標準化されたエラー処理
- 厳密な型付けによるTypeScript の完全サポート
📖 記事(ポルトガル語): SIDRA で適切な表を見つける方法 — そして、それが適切な表だと判断する方法 — 適切な SIDRA 表を見つける方法、それを確定するメタデータ、2022 年国勢調査データを使った詳しい例、そして特に注意が必要な 4 つの落とし穴を解説します。サイトでもポルトガル語と英語で公開しています:sidneybissoli.com。
🔌 チュートリアル: Claude と ChatGPT から MCP 経由で SIDRA にクエリを実行する — claude.ai、Claude Desktop、Claude Code、ChatGPT(開発者モードと Deep Research)、Cursor、VS Code、Gemini CLI でこのサーバーに接続する方法と、返される出典情報ブロックを含む実際のクエリの一連の流れを解説します。ポルトガル語版。
データの出典情報
v3.3.0 以降、成功したすべてのツール応答には出典情報ブロックが含まれます(portfolio contract v1.0)。そのため、各数値を引用、監査、再現できます。このブロックは次の 3 つの経路で出力されます。
structuredContent.provenance(解析可能で、モデルから参照可能)— キーは正確に 6 つです。source(クエリ対象の IBGE API)、source_url(クエリを再現する正規 URL)、data_vintage(出典で公開されている場合の参照期間。そうでない場合はnull)、retrieved_at(実際の上流データ取得日時。キャッシュヒット時も保持され、ブラジリア時間で記録)、citation(「Fonte: IBGE — [pesquisa/tabela], [URL], extraído em [data].」)、license。さらに、正規の出典 URL 一覧であるattributionも含まれます。br.com.sidneybissoli.ibge/provenanceおよび.../attributionの下にある_meta(監査/UI 用の帯域外ミラーで、モデルのトークンを消費しません)。- テキストのみのクライアント向けに、Markdown の末尾に追加される簡潔なテキストフッター。
IBGE API は独自のライセンスを宣言していません。適用される法的枠組みはブラジルのオープンデータ制度、すなわち Lei 12.527/2011(LAI)および Decreto 8.777/2016 です(再利用に制限はなく、無料で利用でき、出典のクレジット表示のみが義務付けられています)。統計モードの応答(estatisticas=true)と ibge_comparar は、集計値が生の IBGE データからサーバー側で計算されるため、正規のブロック内で説明付きの derived としてマークされます。
各数値の意味と、そのバージョン。 SIDRA の値だけでは、期間や、それが月次変化、年初来の累計、12 か月累計、指数、または水準のいずれなのかは分かりません。該当するのはレコードの期間列と Variável ラベルであり、各 ibge_indicadores エントリには、その名前が示す単一の変数が対応します(5.7.0 以降。それ以前は 9 つのエントリがそれぞれ表内のすべての変数を混在させていました)。data_vintage は SIDRA の期間コード順に並ぶため、1 月から 12 月までを指定した場合は「janeiro 2024–dezembro 2024」と表示されます。すべての値は retrieved_at 時点で SIDRA が公開していたバージョンです。IBGE は公開済みの数値(四半期 GDP、PNAD の再ウェイト付け、PIM/PMC/PMS)を改定しますが、以前のバージョンは保持していません。
利用可能なツール
地域と地理
| ツール | 説明 |
|---|---|
ibge_estados | 地域で絞り込んでブラジルの州を一覧表示します |
ibge_municipios | 州ごとに自治体を一覧表示するか、名前で検索します |
ibge_localidade | IBGE コードで地域の詳細を取得します |
ibge_geocodigo | IBGE コードを解読するか、名前からコードを検索します |
ibge_vizinhos | 隣接する自治体を検索します |
統計データ(SIDRA)
| ツール | 説明 |
|---|---|
ibge_sidra | SIDRA の表(国勢調査、PNAD、GDP など)を照会します |
ibge_sidra_tabelas | 利用可能な SIDRA の表を一覧表示・検索します(アクセント記号を区別せず、日常的なポルトガル語表現を IBGE の用語に対応付け、その旨を応答で伝えます) |
ibge_sidra_metadados | 表のメタデータ(変数、期間、レベル)を取得します |
ibge_pesquisas | IBGE の調査とその表を一覧表示します |
経済・社会指標
| ツール | 説明 |
|---|---|
ibge_indicadores | 経済・社会指標(GDP、IPCA、失業率)を取得します |
ibge_censo | 16 のテーマを扱う国勢調査データ(1970~2022 年)を取得します |
ibge_comparar | 地域間で指標を比較し、ランキングを表示します |
自治体データ(Cidades@)
| ツール | 説明 |
|---|---|
ibge_cidades | 自治体の指標(人口、HDI、一人当たり GDP など)を取得します |
国際データ
| ツール | 説明 |
|---|---|
ibge_paises | 国連の M49 メソドロジーに基づく国データを取得します |
人口統計
| ツール | 説明 |
|---|---|
ibge_nomes | ブラジルにおける名前の頻度とランキングを取得します |
分類
| ツール | 説明 |
|---|---|
ibge_cnae | CNAE(経済活動の国家分類)を取得します |
地図と地理メッシュ
| ツール | 説明 |
|---|---|
ibge_malhas | 地理メッシュ(GeoJSON、TopoJSON、SVG)を取得します |
ibge_malhas_tema | テーマ別の範囲に含まれるもの(バイオーム、法定アマゾン、半乾燥地域、沿岸地域、国境地帯、都市圏、RIDE)と、その地理データをダウンロードする URL を取得します |
健康
| ツール | 説明 |
|---|---|
ibge_datasaude | IBGE の SIDRA を通じて健康指標を取得します |
ニュースとカレンダー
| ツール | 説明 |
|---|---|
ibge_noticias | IBGE のニュースとプレスリリースを取得します |
ibge_calendario | IBGE の公表・調査実施カレンダーを取得します |
ChatGPT Deep Research
| ツール | 説明 |
|---|---|
search | IBGE カタログ(SIDRA の表、自治体、既知の指標)を検索します — OpenAI Deep Research の契約仕様に準拠 |
fetch | 公開 URL(引用用)とともに、カタログのドキュメント(表のメタデータ、自治体の階層と人口、指標系列)を 1 件返します |
この 2 つだけが ibge_ プレフィックスのないツールです。名前は OpenAI の契約仕様で固定されています。データを照会する場合は、引き続き ibge_* ツールを使用してください。
どのツールを使えばよいですか?
ツールは 23 種類あり、同じトピックを扱うものが複数あります。よくある使い分けを簡単に紹介します。
人口と人口統計
| 知りたいこと… | 使用するツール |
|---|---|
| 単一の自治体/州の概要(人口、HDI、GDP など) | ibge_cidades |
| 国勢調査データまたは時系列データ(1970~2022 年) | ibge_censo |
| 1 つの指標で 2~10 の地域を順位付け/比較する | ibge_comparar |
| マクロ指標の時系列データ(GDP、IPCA、失業率など) | ibge_indicadores |
| 特定の SIDRA 表/詳細な制御 | ibge_sidra |
| 表全体の最大値/最小値/平均値/中央値 | estatisticas=true を指定して ibge_sidra/ibge_censo/ibge_indicadores/ibge_datasaude |
経済指標
| 知りたいこと… | 使用するツール |
|---|---|
| IPCA、INPC、GDP、失業率(IBGE、一次情報源) | ibge_indicadores |
地域とコード
| 知りたいこと… | 使用するツール |
|---|---|
| 自治体の一覧表示/検索 | ibge_municipios |
| 州の一覧表示 | ibge_estados |
| あらゆるレベルで名前からコードを特定する、またはコードの構造を解読する | ibge_geocodigo |
| コードがわかっている地域の全レコード | ibge_localidade |
| 隣接する自治体 | ibge_vizinhos |
SIDRA ワークフロー
検索 → 確認 → クエリ:ibge_pesquisas / ibge_sidra_tabelas(テーブルを検索)→ ibge_sidra_metadados(テーブルの構造を確認)→ ibge_sidra(クエリを実行)。一般的なデータには、上記のラッパー(ibge_censo、ibge_indicadores、ibge_comparar、ibge_cidades)のほうが通常は使いやすいです。
IBGE の用語ではなく、自分の言葉で尋ねる
IBGE はテーブルに統計上の正式なポルトガル語の名称を付けています。また、ibge_sidra_tabelas は入力した語句とテーブル名を、アクセント記号も含めて単純な部分文字列として照合していました。そのため、一般的な入力方法である populacao(チルダなし)では何も見つからず、IBGE が異なる名称を使う概念を表す日常語でも同じ結果でした。集計 API の 9,336 テーブルを対象に測定し(2026-09-16)、5.1.0 以降は修正済みです。両方の語句が正規化され、すべての語が一致する必要があります(AND)。さらに、日常語は IBGE 独自の用語に展開されます。応答の notas_vocabulario にそのことが示され、結果がゼロの場合も次の手段が提示されます。
| 入力した語句 | 修正前の件数 | IBGE の表記 | 件数 |
|---|---|---|---|
populacao、ocupacao、instrucao、saude、area、agua | 0 | população、ocupação、instrução、saúde、área、água | 520、364、698、518、956、256 |
desemprego | 4 | desocupação | 33 |
renda | 72 | rendimento | 1,126 |
inflação | 0 | IPCA、INPC、preços | 37、15、75 |
moradia、casa | 14、101 | domicílio | 3,606 |
cidade | 110 | município | 455 |
natalidade、mortes | 0、1 | nascidos vivos、óbitos | 84、33 |
gênero | 40 | sexo | 2,020 |
negros | 0 | cor ou raça | 1,134 |
universidade、faculdade | 0 | ensino superior | 12 |
luz、fábrica、tabagismo、convênio、idosos | 0 | energia elétrica、indústria、fumante、plano de saúde、60 anos | 43、248、94、101、89 |
表には測定済みの語句の組み合わせのみを掲載しています(src/vocabulario.ts、件数は見出しに記載)。入力した語句はカタログにはなく、IBGE の語句は存在します。IBGE が集計データとして公開していないもの(turismo、aposentadoria、frota)は対象外で、引き続き結果はゼロになります。存在しないデータに別名を付けると、ソースにないデータを約束することになるためです。同じテーブルは Deep Research の search インデックスにも使われ、IBGE の語句を含むテーブル名に対するキーワードとして、日常語が追加されます。
マップ(メッシュ)
| 必要なもの… | 使用するもの |
|---|---|
| 行政区域の境界(ブラジル/地域/州/自治体) | ibge_malhas |
| テーマ別の区域(バイオーム、法定アマゾン、半乾燥地域、都市圏) | ibge_malhas_tema(IBGE Geosserviços WFS。Malhas API では公開されていません) |
インストール
前提条件
- Node.js 22.x 以降(
engines.node) - npm または yarn
npm から(推奨)
npm install -g ibge-br-mcp
ソースから
# Clone the repository
git clone https://github.com/SidneyBissoli/ibge-br-mcp.git
cd ibge-br-mcp
# Install dependencies
npm install
# Build the project
npm run build
設定
リモートエンドポイント(インストール不要)
同じツールを備えたサーバーが、キー不要で Streamable HTTP 経由でもホストされています。
https://ibge.sidneybissoli.com/mcp
リモート MCP サーバーに対応するクライアントであれば、どれでも利用できます。claude.ai のカスタムコネクター(Settings → Connectors → Add custom connector)、Claude Code の claude mcp add --transport http ibge https://ibge.sidneybissoli.com/mcp、ChatGPT のアプリ、Cursor や VS Code の mcp.json などが該当します。各クライアントの手順はチュートリアルをご覧ください。以下のセクションでは、npx を使うローカル環境での方法を説明します。
Claude Desktop
Claude Desktop の設定ファイル(claude_desktop_config.json)に追加します。
{
"mcpServers": {
"ibge-br-mcp": {
"command": "npx",
"args": ["-y", "ibge-br-mcp"]
}
}
}
ソースからインストールした場合は、次のようにします。
{
"mcpServers": {
"ibge-br-mcp": {
"command": "node",
"args": ["/path/to/ibge-br-mcp/dist/index.js"]
}
}
}
Claude Code
{
"mcpServers": {
"ibge-br-mcp": {
"command": "npx",
"args": ["-y", "ibge-br-mcp"]
}
}
}
ChatGPT(Deep Research)
ChatGPT の deep research(および company knowledge、Responses API を介した research ワークフロー)で使用できるのは、search と fetch のみを公開する MCP サーバーです。このサーバーは ibge_* ツールに加えて、これらを提供します。ホストされているエンドポイントをコネクターに指定してください。キーは不要です。
https://ibge.sidneybissoli.com/mcp
search はクエリを SIDRA のテーブル、自治体、既知の指標と照合して順位付けし、{ id, title, url } を返します。fetch は正規の公開 URL(sidra.ibge.gov.br または cidades.ibge.gov.br)を含む、読みやすい Markdown 形式のドキュメントを返します。ChatGPT が引用するのはこの URL です。どちらにも、ほかのすべてのツールと同じ出典情報ブロックが含まれます。ChatGPT の開発者モード(Settings → Security and login → Developer mode)では、どのツールも呼び出せます。データには引き続き ibge_* ツールを使用してください。
ツールの使用例
ibge_estados
ブラジルのすべての州を一覧表示します。
# List all states
ibge_estados
# States in Northeast region
ibge_estados(regiao="NE")
# States sorted by abbreviation
ibge_estados(ordenar="sigla")
ibge_municipios
ブラジルの自治体を一覧表示します。
# Municipalities of São Paulo state
ibge_municipios(uf="SP")
# Search municipalities by name
ibge_municipios(busca="Campinas")
# Municipalities in MG containing "Belo"
ibge_municipios(uf="MG", busca="Belo")
ibge_cidades
自治体の指標をクエリします(Cidades@ ポータルと同様です)。
# Panorama of São Paulo
ibge_cidades(tipo="panorama", municipio="3550308")
# Population history
ibge_cidades(tipo="historico", municipio="3550308", indicador="populacao")
# List available research
ibge_cidades(tipo="pesquisas")
利用可能な指標: populacao、area、densidade、pib_per_capita、idh、escolarizacao、mortalidade、salario_medio、receitas、despesas
ibge_paises
各国の国際データをクエリします。
# List all countries
ibge_paises(tipo="listar")
# Brazil details
ibge_paises(tipo="detalhes", pais="BR")
# Search countries
ibge_paises(tipo="buscar", busca="Argentina")
# Countries in Americas
ibge_paises(tipo="listar", regiao="americas")
地域: americas、europa、africa、asia、oceania
ibge_sidra
SIDRA テーブル(IBGE の自動検索システム)をクエリします。
# Brazil population in 2023
ibge_sidra(tabela="6579", periodos="2023")
# Population by state
ibge_sidra(tabela="6579", nivel_territorial="3", periodos="2023")
# Census 2022 for São Paulo municipality
ibge_sidra(tabela="9514", nivel_territorial="6", localidades="3550308")
主なテーブル:
| コード | 説明 |
|---|---|
| 6579 | 人口推計(年次) |
| 9514 | 2022 年国勢調査の人口 |
| 4714 | 人口、領土面積、人口密度(2022 年国勢調査) |
| 4099 | 失業率(PNAD Contínua、四半期) |
| 1846 | 時価による四半期 GDP(ブラジル) |
| 5938 | 時価による自治体 GDP(年次) |
| 6784 | 年次 GDP および一人当たり GDP(ブラジル) |
領土レベル:
| コード | レベル |
|---|---|
| 1 | ブラジル |
| 2 | 地域(北部、北東部など) |
| 3 | 州(UF) |
| 6 | 自治体 |
| 7 | 大都市圏 |
| 106 | 保健地域 |
| 127 | 法定アマゾン |
| 128 | 半乾燥地域 |
統計モード(ibge_censo、ibge_indicadores、ibge_datasaude でも利用可能):
最大値/最小値/平均値/中央値/分布/ランキングに関する質問では、
estatisticas=true を指定します。サーバーはページネーションの前に
すべての行を対象として分布全体(最小値/最大値/平均値/
中央値/標準偏差/ラベル付きパーセンタイル)を計算し、
top/bottom のランキング(topN、デフォルトは 10)を返します。agruparPor="<column label>" はグループを合計値の降順で順位付けし、それぞれに独自の簡易分布を付けます。
# Which state has the largest estimated population?
ibge_sidra(tabela="6579", nivel_territorial="3", estatisticas=true)
# Census 2022 population distribution grouped by state
ibge_censo(ano="2022", tema="populacao", nivel_territorial="3", estatisticas=true, agruparPor="Unidade da Federação")
ibge_censo
国勢調査データ(1970~2022 年)をクエリします。
# Population Census 2022
ibge_censo(ano="2022", tema="populacao")
# Historical population series
ibge_censo(ano="todos", tema="populacao")
# Literacy by state in 2010
ibge_censo(ano="2010", tema="alfabetizacao", nivel_territorial="3")
利用可能なテーマ: populacao、alfabetizacao、domicilios、idade_sexo、religiao、cor_raca、rendimento、migracao、educacao、trabalho
ibge_indicadores
経済指標と社会指標をクエリします。
# GDP
ibge_indicadores(indicador="pib")
# IPCA last 12 months
ibge_indicadores(indicador="ipca", periodos="last 12")
# Unemployment by state
ibge_indicadores(indicador="desemprego", nivel_territorial="3")
# List all indicators
ibge_indicadores(indicador="listar")
利用可能な指標:
| カテゴリー | 指標 |
|---|---|
| 経済 | pib、pib_variacao、pib_per_capita、industria、comercio、servicos |
| 物価 | ipca、ipca_acumulado、inpc |
| 労働 | desemprego、ocupacao、rendimento、informalidade |
| 人口 | populacao、densidade |
| 農業 | agricultura、pecuaria |
ibge_nomes
名前の頻度とランキングをクエリします。
# Frequency of "Maria"
ibge_nomes(tipo="frequencia", nomes="Maria")
# Compare names
ibge_nomes(tipo="frequencia", nomes="João,José,Pedro")
# Ranking of names in 2000s
ibge_nomes(tipo="ranking", decada=2000)
# Female names ranking
ibge_nomes(tipo="ranking", sexo="F")
ibge_malhas
地理メッシュ(地図)を取得します。
# Brazil with states
ibge_malhas(localidade="BR", resolucao="2")
# São Paulo with municipalities
ibge_malhas(localidade="SP", resolucao="5")
# Specific municipality
ibge_malhas(localidade="3550308")
# SVG format
ibge_malhas(localidade="BR", formato="svg")
解像度レベル:
| 値 | 内部分割 |
|---|---|
| 0 | 分割なし(輪郭のみ) |
| 2 | 州 |
| 5 | 自治体 |
ibge_datasaude
IBGE の SIDRA を通じて提供されるブラジルの保健指標をクエリします(一部は DataSUS が当初作成したもので、死亡や出生などが含まれます)。
# Infant mortality in Brazil
ibge_datasaude(indicador="mortalidade_infantil")
# Life expectancy by state
ibge_datasaude(indicador="esperanca_vida", nivel_territorial="3")
# List indicators
ibge_datasaude(indicador="listar")
利用可能な指標: mortalidade_infantil、esperanca_vida、nascidos_vivos、obitos、fecundidade、saneamento_agua、saneamento_esgoto、plano_saude
使用する API
IBGE API
- 地域:
servicodados.ibge.gov.br/api/v1/localidades - 名前:
servicodados.ibge.gov.br/api/v2/censos/nomes - 集計/SIDRA:
servicodados.ibge.gov.br/api/v3/agregados(SIDRA のテーブルはview=flatを指定してここから読み取ります。apisidra.ibge.gov.brは 2026-09-15 以降、ブラウザー専用の Cloudflare チャレンジが表示されます) - メッシュ:
servicodados.ibge.gov.br/api/v3/malhas - ニュース:
servicodados.ibge.gov.br/api/v3/noticias - 人口:
servicodados.ibge.gov.br/api/v1/projecoes/populacao - CNAE:
servicodados.ibge.gov.br/api/v2/cnae - カレンダー:
servicodados.ibge.gov.br/api/v3/calendario - 国:
servicodados.ibge.gov.br/api/v1/paises - 調査:
servicodados.ibge.gov.br/api/v1/pesquisas
開発
# Build
npm run build
# Watch mode
npm run watch
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Lint
npm run lint
# Format
npm run format
# Test with MCP inspector
npm run inspector
プロジェクト構成
ibge-br-mcp/
├── src/
│ ├── index.ts # Main MCP server
│ ├── types.ts # TypeScript types
│ ├── config.ts # Configuration and constants
│ ├── cache.ts # Request caching system
│ ├── retry.ts # Trip to the source over @sbissoli/mcp-upstream (retry, timeout, budget, retrieval count)
│ ├── errors.ts # Standardized error handling
│ ├── validation.ts # Input validation helpers
│ ├── metrics.ts # Metrics and logging
│ ├── utils/
│ │ └── formatters.ts # Formatting utilities
│ └── tools/
│ ├── index.ts # Tool exports
│ ├── estados.ts # ibge_estados
│ ├── municipios.ts # ibge_municipios
│ ├── localidade.ts # ibge_localidade
│ ├── geocodigo.ts # ibge_geocodigo
│ ├── censo.ts # ibge_censo
│ ├── sidra.ts # ibge_sidra
│ ├── sidra-tabelas.ts # ibge_sidra_tabelas
│ ├── sidra-metadados.ts# ibge_sidra_metadados
│ ├── indicadores.ts # ibge_indicadores
│ ├── cnae.ts # ibge_cnae
│ ├── calendario.ts # ibge_calendario
│ ├── comparar.ts # ibge_comparar
│ ├── malhas.ts # ibge_malhas
│ ├── malhas-tema.ts # ibge_malhas_tema
│ ├── vizinhos.ts # ibge_vizinhos
│ ├── datasaude.ts # ibge_datasaude
│ ├── pesquisas.ts # ibge_pesquisas
│ ├── nomes.ts # ibge_nomes
│ ├── noticias.ts # ibge_noticias
│ ├── paises.ts # ibge_paises
│ └── cidades.ts # ibge_cidades
├── tests/ # Test files
├── dist/ # Compiled files
├── package.json
├── tsconfig.json
├── vitest.config.ts
└── README.md
テスト
このプロジェクトには、次の項目を対象とした 565 件のテストから成る包括的なテストスイートが含まれています。
- 検証関数
- 再試行の仕組み
- フォーマットユーティリティ
- エラー処理
- キャッシュ操作
- モックを使用した統合テスト
npm test
品質保証
このプロジェクトでは、高いコード品質基準を維持しています。
- 565 件の自動テストで、検証、キャッシュ、再試行ロジック、フォーマット、統合をカバー
- 全体のテストカバレッジは 88% — キャッシュと検証のモジュールは 97% 超
- ESLintによるコードのリント。警告はゼロ
- Prettierによる一貫したコードフォーマット
- TypeScript strict modeによる型安全性
- GitHub Actionsによる CI/CD の自動化
ローカルでテストを実行します。
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Run linter
npm run lint
レジストリで確認できるサーフェスフィンガープリント
各リリースでは、MCP Registryのエントリーに、このバージョンが提供するサーフェス(initialize、ツール、リソース、プロンプト)の sha256 と、認証情報なしで応答するメソッドが公開されます。バージョンを更新せずにサーフェスを変更すると、ビルドは失敗します。レジストリ内のフィンガープリントを使えば、クライアント側でも同じ内容を確認できます。標準形式と手順については、@sbissoli/mcp-surface の SPEC.mdを参照してください。自分で確認する場合(Node 18 以降、依存関係不要):
curl -sO https://raw.githubusercontent.com/SidneyBissoli/mcp-br-commons/main/packages/mcp-surface/exemplos/verify.mjs
node verify.mjs io.github.SidneyBissoli/ibge-br-mcp
ライセンス
MIT
作者
Sidney da Silva Pereira Bissoli
参考資料
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。