Statcan について
Statcanは、カナダ統計局のデータを扱うMCPサーバーです。公式系列、統計表、指標を調べられ、ベクトル・キューブ形式に加え、一部の表は全行を取得できます。
主な機能
- 01主要指標と系列のクエリ
- 02キューブカタログとメタデータの閲覧
- 03キューブのベクトルID列挙
- 04座標を指定した観測値取得
- 05対象表全体または絞り込みの取得
- 06全表CSVのダウンロードURL取得
活用シーン
- 01CPI、失業率、GDP指標の取得
- 02地域で絞った統計表の取得
- 03表番号からベクトル系列への対応付け
- 04表全体のデータまたはCSVリンクの取得
MCP 対応
Pipeworxまたはローカルstdioサーバーを通じて、カナダ統計局WDSの指標、系列、キューブ、表のツールをMCPクライアントに公開します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/statcan/mcpclaude mcp add --transport http pipeworx-io-statcan https://gateway.pipeworx.io/statcan/mcp{"mcpServers":{"pipeworx-io-statcan":{"type":"http","url":"https://gateway.pipeworx.io/statcan/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-statcan":{"type":"http","url":"https://gateway.pipeworx.io/statcan/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-statcan":{"type":"http","url":"https://gateway.pipeworx.io/statcan/mcp"}}}{"mcpServers":{"pipeworx-io-statcan":{"serverUrl":"https://gateway.pipeworx.io/statcan/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
StatCan — Statistics Canada
無料でキー不要の Web Data Service(WDS、
www150.statcan.gc.ca/t1/wds/rest)を通じてカナダの国立統計局にアクセスできます。人口、CPI/インフレ、失業率、GDP、貿易、農業、その他すべてのカナダ公式統計系列を網羅する全キューブ(テーブル)カタログに加え、ベクトル ID があらかじめ解決された主要指標も利用できます。
Pipeworx の一部です。AI エージェントを 1715 以上の稼働中のデータソースに接続する MCP ゲートウェイです。これは独立した非公式の統合であり、上流プロバイダーとは提携、承認、公開されていません。
2 つのアクセスパターン
- 使いやすい/ベクトルベース —
statcan_indicator(CPI、失業率、GDP、地域別人口)とstatcan_series(FRED 形式で、数値のベクトル ID を指定して任意の系列を取得)。 - キューブベース —
statcan_list_cubes(カタログ)、statcan_cube_metadata(1 つのキューブのディメンションとメンバー)、statcan_cube_vectors(キューブの実際のベクトル ID を列挙)、statcan_cube_data(座標を指定して最新 N 件の観測値を取得)、statcan_table(テーブル全体/フィルター済みのスライス — 下記参照)、statcan_changed_series(日次変更フィード)、statcan_csv_url(テーブル全体の CSV ダウンロードリンク。上流のライブ URL を返すだけで、取得は行いません)。
statcan_table — テーブル全体の検索(フリート #2507)
statcan_cube_data は 1 回の呼び出しで 1 つの座標に回答し、statcan_csv_url はダウンロード URL を返すだけです。どちらも「テーブル全体」や「すべての州を一度に」といった、繰り返し利用する大半のユーザーが実際に求める内容には 1 回の呼び出しで回答できません(60 日間:statcan rep3 が 146 件で、カタログ内のリピート需要クラスター第 2 位。no_match の根拠:42100037 の育児困難の座標を 1 件ずつ取得、34100035 のケベック州の水力発電、32100113 の農場出荷乳、98100353 の 2021 年国勢調査における州別宗教)。
statcan_table は、StatCan の getFullTableDownloadCSV エクスポートから
workers/data-pipeline/src/datasets/statcan.ts により毎週更新される、需要の高い StatCan テーブルの厳選セット statcan_table_rows から回答します。ライブ WDS API からの回答ではありません。
statcan_table({ product_id: 42100037 })
// -> every coordinate, every ref_date, member labels (e.g. { "Statistics":
// "Percentage of children", "Type of difficulty encountered...": "..." }),
// in one call. Paged (limit/page) past 1000 rows.
statcan_table({ product_id: 32100113, geo: "Quebec", ref_date_from: "2023-01" })
対象範囲は厳選されており、網羅的ではありません。 キャッシュされていない product_id に対して statcan_table を呼び出すと、現在キャッシュされている ID を明記した明確なエラーが返され、空の結果が黙って返されることはありません。この対象範囲外のデータには、代わりに statcan_cube_data(座標ごと、ライブ)または statcan_csv_url(生 CSV、ライブ)を使用してください。第 1 波のリスト(16 テーブル。詳細な根拠は statcan.ts を参照)には、リピート需要が確認されたテーブルが含まれます。取り込みリストに新しいテーブルを追加する際、マイグレーションは不要です(次の段落を参照)。
スキーマは意図的に汎用的です。 StatCan のテーブルごとの CSV には、固定のメタデータ列(REF_DATE、GEO、DGUID、VECTOR、COORDINATE、VALUE、STATUS、SYMBOL、TERMINATED、DECIMALS、UOM、UOM_ID、SCALAR_FACTOR、SCALAR_ID)に加えて、テーブルで定義されるテーブル固有のディメンションラベル列がいくつでも含まれます(例:42100037 の「Statistics」、「Type of difficulty encountered...」)。これらはテーブルごとに異なるため、テーブルごとのリレーショナルスキーマではなく、members jsonb 列に格納されます。
すべての応答には data_as_of(そのテーブルの取り込みパイプラインにおける pipeline_state.last_success_at の値)と licence フィールドが含まれます。
ライセンス:Statistics Canada Open Licence(statcan.gc.ca/en/reference/licence)
— 情報源の明記(「出典:Statistics Canada、製品名、参照日...」)と、StatCan の承認を示唆しないことを条件として、情報の複製、再配布、販売を明示的に許可しています。個人データは保存されず、すべての行は集計統計です。
テーブル番号からベクター ID を取得する(2 回の呼び出し)
StatCan に関する質問はすべて、テーブル(例:卵の生産テーブルである「32-10-0121-01」、またはその 8 桁形式の 32100121)から始まります。テーブル番号も statcan_cube_metadata も、ベクター ID を直接返しません。メタデータが返すのは、ディメンションとそのメンバーリストのみです。statcan_cube_vectors を使って対応付けます。
statcan_cube_vectors({ product_id: "32100121", filters: { GEO: "Canada" } })
// -> rows: [{ vector_id: 61133, coordinate: "1.1.0.0.0.0.0.0.0.0",
// members: { Geography: "Canada", "Production and disposition": "Average number of layers" },
// frequency: "Monthly", terminated: false, series_title: "Canada;Average number of layers" }, ...]
statcan_series({ vector_id: "61133" })
// -> the actual observations
filters のキーは、キューブのディメンション名に対して大文字と小文字を区別しない部分一致で照合されます(そのため、GEO は Geography に一致します)。値は、メンバー名に対する部分一致で照合されます。フィルターを指定しないディメンションには、そのディメンションのすべてのメンバーが含まれます。ディメンションが多いキューブでは組み合わせが膨大になるため、一度にすべて取得するのではなく、limit/page(デフォルトは 1 ページ 100 件、最大 500 件)を使ってページ分けしてください。レスポンスの total_combinations と has_more/next_page で、すべて取得できているか確認できます。
statcan_cube_metadata はベクター ID を返しません。ディメンションとメンバーを一覧表示するだけです。そのために statcan_cube_vectors が用意されています。
product_id はどちらの形式でも指定できます
- 8 桁の WDS 製品 ID:
32100121 - 公開テーブル番号:
32-10-0121-01(StatCan のNN-NN-NNNN-NN表示形式。ツールはハイフンを取り除き、末尾の 2 桁の接尾辞を削除します)
認証
不要です。キーなしで完全に利用できます。StatCan WDS にはレート制限用のキーも認証ヘッダーもありません。
よくある落とし穴
statcan_cube_dataには、すでに把握している座標が必要です。 座標がない場合は、まずstatcan_cube_vectorsから取得してください。statcan_cube_metadataのメンバーリストから座標を組み立てて推測しないでください。- 幅の広いテーブルには、数千もの組み合わせがあります。 まだ確認したことのないテーブルを列挙する前に、必ず少なくとも 1 つのディメンション(多くの場合は
GEO)でフィルターしてください。そうしないと、長時間ページを取得し続けることになります。 statcan_cube_vectorsの行でterminated: trueとなっている場合、その系列の公開は停止しています。キューブのcube_start_date/cube_end_dateはテーブル全体の期間を示すもので、個々の系列の実際の最終観測日ではありません。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。
{
"mcpServers": {
"statcan": {
"url": "https://gateway.pipeworx.io/statcan/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/statcan/mcp の tools/list は、上記のテーブルに記載されたツールに加えて、共有 Pipeworx メタツール(ask_pipeworx、discover_tools、search_within、remember/recall など、ゲートウェイ全体で利用できるツール群)も返します。そのため、表示されるツール数はこのテーブルの数より多くなります。現在、単一パックのエンドポイントには、そのパック固有のツールに加えて、共有ツールが約 30 個表示されます。接続の initialize レスポンスに正確な範囲が記載されており、その日の状況を確認する際の正式な情報源となります。
これは意図的な仕様であり、意図せず多重化されているわけではありません。メタツールを使うと、このパックでは対応していない質問にも、カタログ全体を横断して振り分ける ask_pipeworx 経由で回答できるため、2 つ目の MCP サーバーを追加する必要がありません。現時点では、メタツールなしでパックのエンドポイントをマウントする方法はありません。追加のスキーマによるコンテキスト消費がルーティングの利点を上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度だけ接続してください。
このパックのツールだけでなく、すべてのパックのツールを直接一覧表示するには、フル Pipeworx ゲートウェイに接続します。
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
どちらの URL も、同じゲートウェイと同じ 1715 以上のデータソースに接続します。異なるのは、どのパックのツールが直接一覧表示されるかだけです。どちらを使っても、ask_pipeworx からすべてのツールにアクセスできます。
MCP クライアントがない場合:HTTP で呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/statcan_indicator \
-H 'Content-Type: application/json' \
-d '{"indicator":"cpi"}'
最初の呼び出しにアカウントは不要です。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/statcan_indicator を実行します。ツールを検索するには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージはローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントもゲートウェイへの往復通信も不要です。
{
"mcpServers": {
"statcan": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-statcan"]
}
}
}
または、直接実行して起動することを確認できます。
npx -y @pipeworx/mcp-statcan
stdin/stdout 経由で MCP を使用し、このパックのツールのみについて initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共通メタツールはありません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。
ask_pipeworx の使用
ツールを直接呼び出す代わりに、自然な英語で質問できます。これは上記のパックエンドポイントだけでなく、フルゲートウェイでも機能します。
ask_pipeworx({ question: "your question about Statcan data" })
ゲートウェイが適切なツールを選び、引数を自動的に入力します。
詳細
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。