meta-data-mcp について
meta-data-mcpは、行政、科学、金融などのオープンデータAPIを検索・利用する単一のMCPサーバーです。プロバイダー登録簿でリクエストを振り分け、一致するデータソースがない場合はプラグインを生成して読み込めます。
主な機能
- 01データ提供元の検索とルーティング
- 02提供元ツールのオンデマンド有効化
- 03プラグインの動的な作成と読み込み
- 04結果のインタラクティブパネル表示
活用シーン
- 01求めるデータセットのAPI検索
- 02複数分野のオープンデータ照会
- 03未登録のオープンAPIへの対応追加
MCP 対応
MCPクライアントに提供元の検索・有効化、プラグイン作成、データ照会のツールを公開します。MCP Apps対応ホストでは、対応する結果をインタラクティブパネルとして表示できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
meta-data-mcp
ユーザーのリクエストを90のオープンデータソースに透過的に振り分ける、単一のMCPサーバーです。
meta-data-mcp は複数ではなく、1つのMCPサーバーです。内部には、それぞれ異なるオープンデータAPIをラップする90個の プラグイン が含まれています。プラグインは実装の詳細です。LLMから見ると、サーバーは1つで、「Xについてのデータはどこにありますか?」と尋ねる場所も1つです。
サーバーを1つインストールするだけで、組み込みのルーティングツールからすべてのデータを見つけられます。
なぜ「メタ」なのか?
オープンデータを見つけること自体は難しくありません。途方もない量のデータが利用できます。難しいのは、必要なときに適切なデータセットを見つけることです。meta-data-mcp がそれを自動化します。
- LLMは
opendata_providers_findを呼び出し(「為替レート」「裁判所の判決」「リスボン付近の地震」など)、サーバーはバンドルされているすべてのプラグインの内部レジストリを使ってクエリを振り分けます。 - 次にLLMは、一致するツールを直接呼び出します。その間に設定する必要はなく、別のサーバーも、プロバイダーごとのインストール作業も不要です。
このプロジェクトは opendata-mcp からフォークされ、カタログのプラグインが数十個を超えた時点で、単一サーバーという考え方を中心に再構成されました。
インストール
(Pythonパッケージマネージャーの)uv が必要です。
# macOS — install uv via Homebrew so MCP clients can find it
brew install uv
# Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
次に、お使いのマシンにインストールされている各MCPクライアントにサーバーを登録します。
uv run meta-data-mcp setup
このコマンドは、インストールされているMCPクライアントを自動検出し、それぞれの mcpServers に meta-data-mcp のエントリを1つ追加します。対応クライアントは次のとおりです。
| クライアント | 設定ファイル |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)/%APPDATA%/Claude/claude_desktop_config.json(Windows) |
| Claude Code | ~/.claude.json |
| Cursor | ~/.cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Gemini CLI | ~/.gemini/settings.json |
| LM Studio | ~/.cache/lm-studio/mcp.json |
既存の設定ファイルは、書き込み前に <file>.bak としてバックアップされます。該当するクライアントを再起動すると、新しいサーバーが1つ表示され、すぐに検出ツールを利用できます。プラグインのツールは、必要に応じて有効化できます。
マシン上で検出/設定されている内容を確認します。
uv run meta-data-mcp clients
特定のクライアントだけを対象にします(または、検出結果に関係なく、対応するすべてのクライアントに書き込みます)。
uv run meta-data-mcp setup --client claude-code
uv run meta-data-mcp setup --client all
設定ファイルに触れずにJSONのスニペットを確認したい場合(たとえば、まだ対応していないクライアントに貼り付ける場合)は、次のようにします。
uv run meta-data-mcp setup --print-json
META_DATA_MCP_AUTH_TOKEN が設定されている場合、--print-json はSSEクライアント用のスニペット(実際のトークンを含む)も標準エラー出力に表示するため、リモートクライアントを接続できます。
meta-data-mcp をリモートSSEサーバーとしてホスティングする
ベアラートークン認証を使って独自ドメインの背後にデプロイする方法については、docs/hosting.md を参照してください。systemd、Caddy/nginxによるTLS終端、トークンのローテーション、脅威モデルについて説明しています。
CLI
サーバーは1つだけなので、CLI に「プロバイダー」引数はありません。すべてのコマンドは、この meta-data-mcp サーバーを対象に実行されます。
| コマンド | 説明 |
|---|---|
uv run meta-data-mcp run | サーバーを実行します(デフォルトは SSE です。Claude Desktop 用には --transport stdio を指定します)。 |
uv run meta-data-mcp setup | 検出された MCP クライアントの設定にサーバーを登録します(または --client で指定した1つのクライアントに登録します)。 |
uv run meta-data-mcp remove | 検出された MCP クライアントの設定からサーバーの登録を解除します(または --client で指定した1つのクライアントから解除します)。 |
uv run meta-data-mcp cleanup | 旧式のマルチサーバーエントリーを検出して削除します(変更を確定するには --apply を指定します)。 |
uv run meta-data-mcp inspect | サーバーに対して mcp-inspector を起動します。 |
uv run meta-data-mcp list | 情報表示用:このサーバーにバンドルされている内部プラグインを一覧表示します。 |
uv run meta-data-mcp info | 情報表示用:サーバーの概要を表示します。プラグイン単位の詳細を表示するには --plugin <name> を指定します。 |
uv run meta-data-mcp version | パッケージのバージョンを表示します。 |
list コマンドは、何がバンドルされているかを明らかにするために用意されています。プラグインは個別にインストール、実行、または指定できません。サーバーの起動時に自動的に読み込まれます。
サーバーツール(LLM が呼び出すもの)
meta-data-mcp の実行中、LLM は2つの層のツールを利用できます。どちらもユーザーに伝える必要はありません。
- メタツール — 以下に示す13個のサーバーレベルのツールです。ルーティングを透過的にするため、どのツールを呼び出すかを指示しなくても、LLM はこれらのツールを使って適切なプラグインを検索、アクティベートし、必要に応じて作成します。
- プラグインツール — 90個のバンドル済みプラグインから提供される約330個のツールです。デフォルトの検出のみのモードでは、実行時にプロバイダーごとにアクティベートされます(または
META_DATA_MCP_PRELOADで事前に読み込まれます)。LLM はメタツールを確認してから、使用するツールを選びます。
メタツール
| ツール | 目的 |
|---|---|
opendata_providers_find | プラグインレジストリをフリーテキストで検索します。一致度の高い順に結果を返します。一致するものがない場合、レスポンスには no_match: true フラグと、opendata_plugins_draft + opendata_plugins_create を示す next_step のヒントが含まれます。 |
opendata_explain_choice | 検索のスコア内訳を表示します(ルーティングの判断のデバッグに役立ちます)。 |
opendata_domains_list | 制御されたドメインの語彙(health、legal、finance、earth-science、…)を列挙します。 |
opendata_regions_list | 制御された地域の語彙(us、eu、uk、global、…)を列挙します。 |
opendata_providers_describe | IDで指定したプラグインの完全なメタデータ(タイトル、説明、ドメイン、地域、キーワード、ホームページ、必須の環境変数)を返します。 |
opendata_providers_list | レジストリ全体をページ分割して一覧表示します。 |
opendata_providers_activate | プロバイダーを有効化し、そのツールをこのセッションで呼び出せるようにします。 |
opendata_providers_deactivate | 有効化したプロバイダーのツールを、現在のセッションカタログから削除します。 |
opendata_providers_list_active | 現在有効なプロバイダーと、それぞれが提供するツール名を一覧表示します。 |
opendata_health_snapshot | ディスカバリーのヘルスバッジとルーティングコンテキストで使用する、プロバイダーごとのヘルススコアを返します。 |
opendata_plugins_draft | 構造化された入力から、検証済みのプラグイン YAML 仕様を作成します。 ID、base_url、ツール定義(名前、エンドポイント、パラメーター)、レジストリメタデータを受け取ります。ID とツール名の大文字・小文字、パス内のプレースホルダーとパラメーターの整合性、パラメーターの型を検証したうえで、opendata_plugins_create に渡せる YAML 文字列を出力します。LLM が YAML を手作業で作成しなくて済むよう、これを使用してください。 |
opendata_plugins_create | 新しいプラグインを自律的に作成します。 YAML 仕様(通常は opendata_plugins_draft が生成したもの)を受け取り、ジェネレーターを実行して新しいモジュールをインポートし、実行中のレジストリに登録して、そのツールを実行中のサーバーにホットロードします。opendata_providers_find が一致なしを返した場合に使用してください。 |
opendata_tool_call | 動的に追加されたツールを直接呼び出せない環境向けに、有効化済みのプラグインツールを名前でプロキシ呼び出しします。 |
自律的なディスカバリーフロー
このサーバーが「メタ」と呼ばれるのは、ユーザーに代わってデータリクエストをルーティングし、既存のルートがない場合は、そのルートを作成することもできるためです。フロー全体は次のとおりです。
- ユーザーがデータを要求します。例:「公開された最新の CVE を表示してください。」
- LLM が
opendata_providers_findを呼び出し、クエリ(cve、vulnerability、…)を渡します。 - レジストリに一致するものがある場合:LLM は一致したプロバイダーを有効化し(
opendata_providers_activate、または find のactivate_top)、その後プラグインツールを呼び出します。 - レジストリに一致するものがない場合:レスポンスには
no_match: trueと、自律的な作成手順を説明するnext_stepフィールドが含まれます。LLM は次の手順を実行します。- このデータソースに対応する機能を追加しようとしていることをユーザーに伝えます。
- リクエストされたデータを公開するオープン API(例:NVD または CIRCL CVE API)をウェブ検索します。
- API の ID、ベース URL、構造化されたツール定義を指定して
opendata_plugins_draftを呼び出します。サーバーは入力(ID の大文字・小文字、パス内のプレースホルダーの整合性、パラメーターの型)を検証し、YAML 文字列を返します。 - その YAML を
opendata_plugins_createに渡します。サーバーはプラグインモジュールとテストを生成し、モジュールをインポートして、インメモリの動的レジストリにProviderEntryを登録し、新しいツールを実行中のサーバーのツールリストに統合します。 - 新たに利用可能になったツールを呼び出し、ユーザーの元の質問に回答します。
- ユーザーが回答を受け取ります — プラグインはセッションの残りの期間も利用可能です。
生成されたプラグインはディスク上の (meta_data_mcp/providers/{id}.py + tests/providers/test_{id}.py) に保存されます。コントリビューターは不要になったファイルを削除し、静的エントリーとして meta_data_mcp/registry.py に追加して、すべての配布版に含まれるよう PR を作成できます。
プラグインツール
バンドルされた各プラグインは、同じサーバー上で独自のツールを提供します。ツール名は一意のケバブケース識別子で、多くの場合、プロバイダー固有のプレフィックスが使われます(例:usgs-eq-feed-significant-week、frankfurter-latest、wikipedia-fetch-summary)。LLM は opendata_providers_find/opendata_providers_describe を通じてツールを検出し、必要に応じてプロバイダーを有効化します。また、opendata_providers_list_active でセッション状態を確認できます。
作成したプラグインの自動提供
opendata_plugins_create が新しいプラグインを作成すると、meta-data-mcp はプロジェクトにそのプラグインを追加するプルリクエストを作成し、ほかのユーザーも利用できるようにします。カタログは実際の利用を通じて拡大していきます。
- 同意: MCP クライアントがエリシテーションに対応している場合、PR を作成する前に「はい/いいえ」を選ぶプロンプトが表示されます(デフォルトは「はい」です)。
- 共有されるもの:
contribute/plugin-<id>ブランチ上の、生成された3つのファイル(仕様、プロバイダーモジュール、テスト用スタブ)のみです。作業ツリーには一切触れません。 - オプトアウト:
META_DATA_MCP_AUTO_CONTRIBUTE=0を設定します。 - 対象リポジトリ:
originリモートから取得されます。META_DATA_MCP_CONTRIBUTE_REPO=owner/repoで上書きできます。 ghCLI がプッシュアクセス権を持つ状態で認証されている必要があります。利用できない場合は、ブランチがローカルにコミットされ、PR を完了する方法が応答で案内されます。
プレゼンテーション層(MCP Apps)
v2.0 では、すべてのツール結果に視覚的なレイヤーが追加されます。MCP Apps 拡張機能に対応したホスト(Claude Desktop、MCP Inspector など)では、ツールにバインドされた結果が JSON テキストではなく、サンドボックス化された iframe 内にインタラクティブなパネルとしてインライン表示されます。MCP Apps に対応していないホストでは、従来と同じ JSON にフォールバックします。このバインドは追加機能としてのみ働きます。
MCP Apps 対応ツールは、ツールの説明にある _meta.ui.resourceUri を使ってパネルを宣言します。ホストは ui:// リソース(HTML とバンドル済み JS をまとめた単一のペイロード。外部リクエストは明示的に許可リストに登録された CDN 以外には行いません)を取得し、iframe とホストの間で双方向の postMessage イベントをディスパッチします。
形状プリミティブ — ui://meta-data-mcp/shape/<name>/v1
一般的なペイロードの契約をカバーする、再利用可能なバンドルが3種類あります。応答がこれらの形状のいずれかに一致するツールは、対応するプリミティブに自動的にバインドされ、リッチなレンダラーをそのまま利用できます。
| 形状 | 表示内容 | ペイロードの契約 |
|---|---|---|
timeseries/v1 | Plotly による折れ線グラフと、自動計算されるプロファイル(最小値/最大値/平均値/標準偏差/ギャップ数)。 | {points: [{date, value, series?}], axes: {x, y}, annotations?} |
geofeatures/v1 | Leaflet の地図とマーカークラスター(カーディナリティの高い出力には密度レイヤーを使用)。 | `{features: GeoJSON |
records/v1 | ファセット、並べ替え、ページネーションに対応する HTML テーブルと、列ごとの自動プロファイル(型推定、上位 k 件、NULL 率、範囲)。 | {rows: [...], schema?, default_facets?} |
カスタムアプリ — ui://meta-data-mcp/app/<name>/v1
一部のデータ形状は、汎用プリミティブには適合しません。v2.0 では、これらに対応する専用アプリを提供します。
| アプリ | 対応ツール | 可視化 |
|---|---|---|
discovery/v1 | opendata_providers_find、opendata_domains_list、opendata_regions_list、opendata_providers_activate など | ライブヘルスバッジ付きのファセット型プラグインブラウザー。 |
vulnerability/v1 | nvd-*、osv-*、epss-*、cisa-kev。 | CVSS レーダーチャート+深刻度ヒートマップ+悪用確率ゲージ。 |
entity-graph/v1 | crossref-works-by-author、openalex-search-works、wikidata-search-entities、opensanctions-search。 | 共著オーバーレイ付きの力学モデルによるグラフ(D3)。 |
trade-flows/v1 | comtrade-trade-data。 | 報告国 → 商品 → 相手国のサンキーチャート+商品ツリーマップ。 |
news-tone/v1 | gdelt-article-search、gdelt-volume-timeline。 | 国ペアのコード図付きのボリューム+トーンのタイムライン。 |
network-topology/v1 | ripestat-asn-neighbours など。 | ASN のピアリング/上流/下流を示す力学モデルによるグラフ。 |
molecular/v1 | pubchem-compound、pdb-entry。 | WebGL 3D 構造ビューアー(3Dmol.js。タンパク質はカートゥーン表示、リガンドは棒+球表示)。 |
museum/v1 | met-search、met-search-by-artist、met-get-object。 | 遅延読み込みの CSS グリッド画像ギャラリー+来歴詳細パネル。 |
新しいアプリの構築
生成されたプロバイダーに UI バインディングを追加するには、仕様を 1 行変更するだけです。
tools:
- name: my-tool
description: ...
endpoint: /foo
response_shape: records # ← binds to the shape primitive
詳しくは、tools/specs/README.md を参照してください。バンドルサイズの上限は CI で適用されます(100 KB 以上で警告、1 MB 以上でエラー)。v2.0 のバンドルサイズは、タイムシリーズプリミティブの 14 KB から脆弱性アプリの 34 KB までで、いずれも上限を十分に下回っています。
引用可能な回答
すべてのツールの結果には、機械可読な引用マニフェストが含まれます。結果を生成した上流リクエストを正確に記録します。トランスポートカーネルはツール呼び出し中の各 HTTP 送受信を記録し、結果の最初のコンテンツブロックに _meta["meta-data-mcp/citations"] エントリーを追加します。
{
"sources": [
{
"provider": "eu-eurostat",
"title": "Eurostat",
"homepage": "https://ec.europa.eu/eurostat",
"license": "Eurostat data is reusable under CC BY 4.0; cite '© European Union, Eurostat'.",
"url": "https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/nama_10_gdp?format=JSON&lang=en",
"method": "GET",
"status": 200,
"fetched_at": "2026-07-09T14:02:11.482Z",
"cache_hit": false
}
]
}
これにより、LLM によるデータ回答を監査できます。取得した正確な URL(クエリパラメーターを含む)、取得時刻、トランスポートキャッシュから取得されたかどうか、プロバイダーのライセンス/帰属表示条件を確認できます。誰でも URL を再発行して、主張を検証できます。
- シークレットが漏れることはありません。 機密性の高いクエリパラメーターの値は
REDACTEDに置き換えられます。正確な拒否リスト(api_key、token、appidなど)に加え、保守的なヒューリスティック(*key、*token、*secret*、*signature*など)を適用し、署名付きクラウドストレージ URL やプラグイン固有のキー用パラメーターにも対応します。URL 自体に含まれるユーザー情報の認証情報(https://user:pass@host)も秘匿されます。URL を自身の認証情報で再現できるよう、パラメーター名は保持されます。ヘッダーがマニフェストに含まれることはありません。 - 失敗した送受信も引用されます — ハンドラーが復旧した 4xx/5xx エラーや、カーネルの再試行ループで処理された中間の 429/5xx 試行も、回答の生成過程の一部です。
statusで絞り込んでください。(ツール呼び出し自体がエラー終了した場合は、マニフェストを含まない SDK のisError結果が返されます。) - タイムスタンプは正確です。
fetched_atはバイト列が実際に取得された時刻です。キャッシュから提供された送受信では、キャッシュ読み取り時刻ではなく元の取得時刻がcache_hit: trueとともに報告されます。 - デフォルトで有効です。 無効にするには
META_DATA_MCP_CITATIONS=0を設定します。オプトイン方式の改ざん検知ダイジェスト(META_DATA_MCP_PROVENANCE)と併用できます。同じ結果に両方を含めることができます。
同梱プラグイン(90)
1 つのサーバーに含まれる内容です。個別にインストールする必要はありません。すべて一緒に提供されます。
政府/市民サービス
| プラグイン | ソース | 説明 |
|---|---|---|
au_data_gov | オーストラリア政府オープンデータ | data.gov.au の CKAN カタログ |
ca_open_gov | カナダオープンデータ | open.canada.ca の CKAN カタログ |
ch_opendata_swiss | opendata.swiss | スイス連邦のオープンデータカタログ(CKAN) |
de_govdata | ドイツ GovData | ドイツ連邦のオープンデータカタログ(CKAN) |
fr_data_gouv | data.gouv.fr | フランス政府のオープンデータプラットフォーム |
nl_tweedekamer | Tweede Kamer | オランダ議会のオープンデータ |
sg_data_gov | シンガポールオープンデータ | data.gov.sg のデータセットとコレクション |
uk_gov | data.gov.uk | 英国政府の CKAN カタログ |
us_cary | Cary 町オープンデータ | Socrata 経由のノースカロライナ州 Cary 町のオープンデータ — 公共安全、交通、公共事業、公園 |
us_data_gov | Data.gov | 米国連邦政府のオープンデータセット |
us_fayetteville | Fayetteville 市オープンデータ | Socrata 経由のノースカロライナ州 Fayetteville 市のオープンデータ — 公共安全、インフラ、地域サービス |
us_raleigh | Raleigh 市オープンデータ | Socrata 経由の Raleigh 市のオープンデータ — 公共安全、インフラ、公園、都市計画 |
統計/経済
| プラグイン | ソース | 説明 |
|---|---|---|
eu_eurostat | Eurostat | 欧州連合の統計 |
global_imf | 国際通貨基金 | IMF SDMX 2.1 統計データ |
global_faostat | FAOSTAT | 国連の食料・農業統計 — 生産、価格、貿易、土地利用、排出量 |
global_dbnomics | DBnomics | 世界の経済データアグリゲーター(IMF、世界銀行など) |
global_oecd | OECD | OECD の経済・社会統計(SDMX) |
global_world_bank | 世界銀行 | 国別の開発指標 |
nl_cbs | オランダ統計局(CBS) | オランダの統計データセット(OData v2/v3) |
uk_ons | 英国 ONS | 英国国家統計局 |
金融/市場
| プラグイン | ソース | 説明 |
|---|---|---|
eu_ecb | 欧州中央銀行 | ECB データポータル(SDMX)— 外国為替、金融、銀行 |
global_coingecko | CoinGecko | 暗号資産の市場データ |
global_frankfurter | Frankfurter | ECB 基準外国為替レート(キー不要) |
us_sec_edgar | SEC EDGAR | 上場企業の公開提出書類、XBRL 財務データ |
us_treasury_fiscal | 米国財務省財政データ | 連邦政府債務、日次財務省報告書、外国為替レート |
ヘルスケア/ライフサイエンス
| プラグイン | ソース | 説明 |
|---|---|---|
global_chembl | ChEMBL | EMBL-EBI の分子・生物活性データベース |
global_disease_sh | disease.sh | COVID-19、インフルエンザ、ワクチンのアグリゲーター |
global_pubchem | NCBI PubChem | 化合物および物質 |
global_rcsb_pdb | RCSB PDB | タンパク質および高分子の3D構造 |
global_who_gho | WHO GHO | WHO 世界保健機関統計情報システム(OData) |
us_cdc_socrata | 米国 CDC | Socrata 経由の CDC オープンデータ |
us_clinicaltrials | ClinicalTrials.gov | NIH/NLM の臨床試験登録システム v2 |
us_fda_openfda | openFDA | FDA の有害事象、リコール、ラベル |
us_healthdata_gov | HealthData.gov | Socrata 経由の HHS オープンヘルスデータ — 医療成果、保険、人口統計、公衆衛生 |
地球科学/気象/環境
| プラグイン | ソース | 説明 |
|---|---|---|
eu_copernicus | Copernicus(EU) | 欧州の地球観測・気候データセット |
global_open_meteo | Open-Meteo | 天気予報+過去の気象データ+大気質 |
global_openaq | OpenAQ | 基準観測所やセンサーによる世界の大気質測定値 |
us_ncdeq_gis | NC DEQ 環境 GIS | NC 環境品質局の ArcGIS Hub — 許認可、大気・水質、有害廃棄物 |
us_noaa_ncei | NOAA NCEI | 気候データアクセスサービス(キー不要) |
us_noaa_tides | NOAA 潮汐・海流 | 水位、潮汐、海流 |
us_usgs_earthquake | USGS 地震 | リアルタイムおよび過去の地震活動 |
生物多様性/宇宙/物理学
| プラグイン | ソース | 説明 |
|---|---|---|
cern_opendata | CERN Open Data | 粒子物理学のデータセットとソフトウェア |
global_gbif | GBIF | 世界規模の生物多様性出現記録 |
global_inaturalist | iNaturalist | 市民科学による種の観察記録 |
global_opensky | OpenSky Network | ADS-B によるリアルタイムの航空機追跡 |
global_solarsystem | Le Systeme Solaire API | 太陽系の天体に関するオープンなメタデータ |
us_nasa | NASA | APOD、地球近傍天体、火星探査車の写真 |
地理/マッピング/ナレッジ
| プラグイン | ソース | 説明 |
|---|---|---|
global_mcp_registry | MCP Server Registry | 公式 MCP サーバーレジストリ — 公開されている MCP サーバーの検索と一覧表示 |
global_osm_nominatim | OSM Nominatim | ジオコーディング/逆ジオコーディング(1 リクエスト/秒) |
global_overpass | OSM Overpass | Overpass QL で OpenStreetMap を検索 |
global_rest_countries | REST Countries | 国の参照データ — 国境、首都、通貨、言語、人口 |
global_wikidata | Wikidata | 構造化ナレッジグラフと SPARQL |
global_wikipedia | Wikipedia | 記事の要約、関連記事、ページビュー |
us_arcgis_item | ArcGIS REST API | ID で公開 ArcGIS アイテムのメタデータを取得 — レイヤー、マップ、サービス、ファイル |
us_census_geocoder | US Census Geocoder | 住所 ⇄ 座標 ⇄ 地理情報 |
us_nc_onemap | NC OneMap | ArcGIS REST を通じた、NC の公式 GIS データ集約サイト — 州全域の地理レイヤー |
農業/貿易
| プラグイン | ソース | 説明 |
|---|---|---|
global_un_comtrade | UN Comtrade | 国際的な商品およびサービスの貿易統計 |
セキュリティ/脆弱性
| プラグイン | ソース | 説明 |
|---|---|---|
eu_euvd | ENISA EUVD | EU の脆弱性に関する最新情報、悪用された脆弱性、重大な脆弱性、および条件を指定した検索 |
global_circl_cve | CIRCL CVE Search | 最近の CVE、CVE の詳細、ベンダー/製品の閲覧 |
global_crtsh | crt.sh | ドメインと証明書の証明書透明性検索 |
global_epss | FIRST.org EPSS | CVE の悪用予測スコアとパーセンタイル順位 |
global_nvd_cve | NVD CVE Database | NIST の CVE レコード、フィルター、変更履歴 |
global_opensanctions | OpenSanctions | 制裁対象、PEP、取引禁止対象、および関連するリスクデータセット |
global_osv_dev | OSV.dev | 各エコシステムのオープンソース脆弱性アドバイザリ |
global_pwned_passwords | Pwned Passwords | 漏えいパスワードの SHA-1 プレフィックスを匿名で検索 |
global_ssllabs | SSL Labs | 公開 TLS 設定とエンドポイントの分析 |
us_cisa_kev | CISA KEV | 修正期限付きの、悪用が確認された脆弱性のカタログ |
公共交通/航空
| プラグイン | ソース | 説明 |
|---|---|---|
ch_sbb | Swiss Federal Railways | スイスの鉄道運行障害とサービスデータ |
global_transitous | Transitous | 世界各地の公共交通機関の経路検索 — 所要時間、乗り換え、行程(オープン GTFS 上の MOTIS) |
de_db | Deutsche Bahn | ドイツ鉄道のオープンデータ |
nl_ndov | NDOV Loket | オランダの公共交通データ |
nl_ovapi | OVapi | オランダのリアルタイム交通情報 — リアルタイムの出発情報、車両位置、GTFS/GTFS-RT フィード |
us_faa_nasstatus | FAA NAS Status | 米国の空域状況、遅延、地上停止(XML) |
us_noaa_awc | NOAA Aviation Weather | METAR、TAF、観測所の気象データ |
学術文献
| プラグイン | ソース | 説明 |
|---|---|---|
global_arxiv | arXiv | プレプリントのメタデータ(Atom XML) |
global_crossref | Crossref | DOI メタデータ、引用、学術誌 |
global_doaj | DOAJ | オープンアクセスの学術誌と論文の検索 |
global_europepmc | Europe PMC | 生物医学文献と全文 XML |
global_openalex | OpenAlex | オープンな学術メタデータ |
文化/書籍
| プラグイン | ソース | 説明 |
|---|---|---|
global_met_museum | Met Museum | Met Museum のオープンアクセス(CC0) |
global_open_library | Open Library | 書籍、著者、作品(Internet Archive) |
global_unesco_heritage | UNESCO World Heritage Sites | 自然遺産、文化遺産、複合遺産の世界遺産 |
ニュース/メディア
| プラグイン | ソース | 説明 |
|---|---|---|
global_gdelt | GDELT 2.0 | 100 以上の言語にわたる世界のニュース、イベント、論調のモニタリング |
global_hackernews | Hacker News API | 公開記事、コメント、求人、ユーザープロフィール |
ネットワーク/インターネット
| プラグイン | ソース | 説明 |
|---|---|---|
global_bgpview | BGPView | BGP ルーティングデータ — ASN 情報、プレフィックス、ピア(キー不要) |
global_ripe_stat | RIPE NCC RIPEstat | 本番環境向けの高品質な BGP データ(キー不要) |
法律
| プラグイン | ソース | 説明 |
|---|---|---|
nl_rechtspraak | Dutch Rechtspraak | オランダの裁判所判決および判例(ECLI) |
uk_legislation | UK legislation.gov.uk | 英国の法律、委任立法(XML/Atom) |
us_courtlistener | CourtListener | 米国の裁判所意見、訴訟記録、裁判官(Free Law Project) |
us_federal_register | US Federal Register | 日次の規則、告示、大統領令 |
オプションの環境変数
同梱されているプラグインの一部では、レート制限を緩和するためにオプションの API キーを利用できます。これらは、シェルまたは Claude Desktop のサーバー設定にある env ブロックで設定してください。
| 変数 | プラグイン | 用途 |
|---|---|---|
COURTLISTENER_API_TOKEN | us_courtlistener | 匿名アクセスは少量の利用であれば可能です |
NVD_API_KEY | global_nvd_cve | NVD API のレート制限を緩和します |
META_DATA_MCP_CONTACT | all | メールアドレス。礼儀正しい利用が求められる API(Crossref、OpenAlex、OSM、SEC EDGAR)の User-Agent で使用されます。既定値は [email protected] です。 |
OPENAQ_API_KEY | global_openaq | 認証済みの OpenAQ API アクセスを有効にします |
OPENSANCTIONS_API_KEY | global_opensanctions | 認証済みの OpenSanctions API アクセスを有効にします |
UN_COMTRADE_API_KEY | global_un_comtrade | 上位プランの UN Comtrade API アクセスを有効にします |
サーバーのランタイムフラグ
| 変数 | 用途 |
|---|---|
META_DATA_MCP_PRELOAD | 起動時に有効化するプラグイン ID をカンマ区切りで指定します。または、すべてを有効化するには * を指定します。デフォルトは未設定で、検出のみを行います(約13個のメタツール)。 |
META_DATA_MCP_AUTH_TOKEN | SSE トランスポートで設定すると、/sse と /messages で Authorization: Bearer <token> が必要になります。 |
META_DATA_MCP_OAUTH_ISSUER | OAuth 2.0 Authorization Code + PKCE を有効にします。サーバーの公開ベース URL(例:http://localhost:8000)を設定します。/.well-known/oauth-authorization-server、/register、/authorize、/token、/revoke と、/oauth/consent に同意ページをマウントします。META_DATA_MCP_AUTH_TOKEN と共存し、両方の認証方式を同時に有効にできます。 |
META_DATA_MCP_OAUTH_MAX_CLIENTS | メモリ内に保持する OAuth クライアント登録数の上限です。デフォルトは 1000 です。正の整数を指定してください。無効な値の場合はデフォルト値に戻ります。 |
META_DATA_MCP_OAUTH_TOKEN_TTL | OAuth アクセストークンの有効期間(秒)です。デフォルトは 3600(1時間)です。正の整数を指定してください。無効な値の場合はデフォルト値に戻ります。 |
META_DATA_MCP_OAUTH_SWEEP_THRESHOLD | 古いエントリーの削除と最古のものからの追い出しを開始するまでの、各メモリ内 OAuth ストアのエントリー数の上限です。デフォルトは 5000 です。正の整数を指定してください。無効な値の場合はデフォルト値に戻ります。 |
META_DATA_MCP_CITATIONS | ツールの結果に引用マニフェストを付与します(引用可能な回答を参照)。デフォルトで有効です。無効にするには 0/false/no/off を設定します。最初のコンテンツブロックの _meta に meta-data-mcp/citations エントリーを追加し、すべての上流 HTTP 通信(URL の機密情報を除去したもの、ステータス、取得時刻、キャッシュの扱い、プロバイダーのタイトル/ホームページ/ライセンス)を一覧表示します。 |
META_DATA_MCP_PROVENANCE | 真偽値として有効な値(1、true、yes、on)を設定すると、すべてのツール呼び出し結果の最初のコンテンツブロックの _meta に meta-data-mcp/provenance エントリーを追加し、sha256 と timestamp(ISO 8601 UTC、ミリ秒精度)を含めます。ダイジェストは正規化された (tool, arguments, content) エンベロープを対象とします。コンテンツブロックは model_dump(mode="json", by_alias=True, exclude_none=True) でダンプし、_meta を除去したうえで、sort_keys=True, separators=(",",":"), ensure_ascii=True を指定して JSON シリアライズします。ツール名と引数をハッシュに含めることで、監査ログで「ツール A が X を返した」と「ツール B が X を返した」を区別できます。デフォルトでは無効です。改ざんの証拠が必要な場合に有効にしてください。受信側の手順は meta_data_mcp/provenance.py モジュールの docstring をそのまま参照してください。 |
トランスポート
run のデフォルトは SSE(HTTP、ポート 8000)です。MCP Inspector またはリモートクライアントから接続できます。Claude Desktop(setup コマンドの対象)では、起動プロセスに stdio を使用します。
uv run meta-data-mcp run # SSE on 127.0.0.1:8000
uv run meta-data-mcp run --transport stdio # stdio
uv run meta-data-mcp run --host 0.0.0.0 --port 3001 # SSE bound to all interfaces
ロードマップ
リリース済み
- 階層的な検出(v2.0): ランク付けされたスコアリングを行う
opendata_providers_findが、当初予定されていた閲覧/一覧表示ツールに代わります。 - エージェント主導の生成(v2.1):
opendata_plugins_draftとopendata_plugins_createにより、モデルがカバレッジの不足を自律的に補えます。v2.1.1 では、入力許可リスト、パスの包含チェック、生成後の AST バリデーターによって強化され、14 の RCE/パストラバーサル/バイパス経路を塞ぎました。 - セルフホスト可能な SSE デプロイ(v2.1): ベアラー認証で保護され、systemd で管理し、リバースプロキシ経由で提供されます。
- マルチ言語 SDK(v2.2): MCP SSE 経由で検出を行う、Python 組み込みクライアント(
meta_data_mcp.sdk)と TypeScript/Node クライアント(@meta-data-mcp/sdk)です。 - OAuth 2.0(v2.3): Authorization Code + PKCE + Dynamic Client Registration に対応しています。Claude.ai(StreamableHTTP)と MCP Inspector で動作します。
/.well-known/oauth-authorization-server、/.well-known/oauth-protected-resource、/.well-known/openid-configurationをすべて提供します。 - MCP レジストリプロバイダー(v2.3.4):
mcp_registry_searchとmcp_registry_listにより、meta-data-mcp 内からほかの MCP サーバーを検出できます。公式 MCP レジストリと Smithery に掲載されています。
今後の予定
- 現在の90件を超えるプロバイダーに対応します。
クレジット
- 当初は grll によって
opendata-mcpとして考案されました。 - 単一サーバーの「meta-mcp」モデルを中心にフォークされ、再構成されました。
- Anthropic のオープンソース MCP 仕様を基盤としています。
ライセンス
MIT — LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。