mcpField
M
meta-data-mcp

meta-data-mcp

ローカル
github.com/derekslinz法務・行政52 日前に更新

meta-data-mcp について

meta-data-mcpは、行政、科学、金融などのオープンデータAPIを検索・利用する単一のMCPサーバーです。プロバイダー登録簿でリクエストを振り分け、一致するデータソースがない場合はプラグインを生成して読み込めます。

主な機能

  1. 01データ提供元の検索とルーティング
  2. 02提供元ツールのオンデマンド有効化
  3. 03プラグインの動的な作成と読み込み
  4. 04結果のインタラクティブパネル表示

活用シーン

  1. 01求めるデータセットのAPI検索
  2. 02複数分野のオープンデータ照会
  3. 03未登録のオープンAPIへの対応追加

MCP 対応

MCPクライアントに提供元の検索・有効化、プラグイン作成、データ照会のツールを公開します。MCP Apps対応ホストでは、対応する結果をインタラクティブパネルとして表示できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"derekslinz-meta-data": {
"command": "uvx",
"args": [
"meta-data-mcp"
]
}
}
}
起動コマンドuvx meta-data-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimeta-data-mcp2.5.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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つの層のツールを利用できます。どちらもユーザーに伝える必要はありません。

  1. メタツール — 以下に示す13個のサーバーレベルのツールです。ルーティングを透過的にするため、どのツールを呼び出すかを指示しなくても、LLM はこれらのツールを使って適切なプラグインを検索、アクティベートし、必要に応じて作成します。
  2. プラグインツール — 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_describeIDで指定したプラグインの完全なメタデータ(タイトル、説明、ドメイン、地域、キーワード、ホームページ、必須の環境変数)を返します。
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動的に追加されたツールを直接呼び出せない環境向けに、有効化済みのプラグインツールを名前でプロキシ呼び出しします。
自律的なディスカバリーフロー

このサーバーが「メタ」と呼ばれるのは、ユーザーに代わってデータリクエストをルーティングし、既存のルートがない場合は、そのルートを作成することもできるためです。フロー全体は次のとおりです。

  1. ユーザーがデータを要求します。例:「公開された最新の CVE を表示してください。」
  2. LLM が opendata_providers_find を呼び出し、クエリ(cve、vulnerability、…)を渡します。
  3. レジストリに一致するものがある場合:LLM は一致したプロバイダーを有効化し(opendata_providers_activate、または find の activate_top)、その後プラグインツールを呼び出します。
  4. レジストリに一致するものがない場合:レスポンスには no_match: true と、自律的な作成手順を説明する next_step フィールドが含まれます。LLM は次の手順を実行します。
    1. このデータソースに対応する機能を追加しようとしていることをユーザーに伝えます。
    2. リクエストされたデータを公開するオープン API(例:NVD または CIRCL CVE API)をウェブ検索します。
    3. API の ID、ベース URL、構造化されたツール定義を指定して opendata_plugins_draft を呼び出します。サーバーは入力(ID の大文字・小文字、パス内のプレースホルダーの整合性、パラメーターの型)を検証し、YAML 文字列を返します。
    4. その YAML を opendata_plugins_create に渡します。サーバーはプラグインモジュールとテストを生成し、モジュールをインポートして、インメモリの動的レジストリに ProviderEntry を登録し、新しいツールを実行中のサーバーのツールリストに統合します。
    5. 新たに利用可能になったツールを呼び出し、ユーザーの元の質問に回答します。
  5. ユーザーが回答を受け取ります — プラグインはセッションの残りの期間も利用可能です。

生成されたプラグインはディスク上の (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 で上書きできます。
  • gh CLI がプッシュアクセス権を持つ状態で認証されている必要があります。利用できない場合は、ブランチがローカルにコミットされ、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/v1Plotly による折れ線グラフと、自動計算されるプロファイル(最小値/最大値/平均値/標準偏差/ギャップ数)。{points: [{date, value, series?}], axes: {x, y}, annotations?}
geofeatures/v1Leaflet の地図とマーカークラスター(カーディナリティの高い出力には密度レイヤーを使用)。`{features: GeoJSON
records/v1ファセット、並べ替え、ページネーションに対応する HTML テーブルと、列ごとの自動プロファイル(型推定、上位 k 件、NULL 率、範囲)。{rows: [...], schema?, default_facets?}
カスタムアプリ — ui://meta-data-mcp/app/<name>/v1

一部のデータ形状は、汎用プリミティブには適合しません。v2.0 では、これらに対応する専用アプリを提供します。

アプリ対応ツール可視化
discovery/v1opendata_providers_find、opendata_domains_list、opendata_regions_list、opendata_providers_activate などライブヘルスバッジ付きのファセット型プラグインブラウザー。
vulnerability/v1nvd-*、osv-*、epss-*、cisa-kev。CVSS レーダーチャート+深刻度ヒートマップ+悪用確率ゲージ。
entity-graph/v1crossref-works-by-author、openalex-search-works、wikidata-search-entities、opensanctions-search。共著オーバーレイ付きの力学モデルによるグラフ(D3)。
trade-flows/v1comtrade-trade-data。報告国 → 商品 → 相手国のサンキーチャート+商品ツリーマップ。
news-tone/v1gdelt-article-search、gdelt-volume-timeline。国ペアのコード図付きのボリューム+トーンのタイムライン。
network-topology/v1ripestat-asn-neighbours など。ASN のピアリング/上流/下流を示す力学モデルによるグラフ。
molecular/v1pubchem-compound、pdb-entry。WebGL 3D 構造ビューアー(3Dmol.js。タンパク質はカートゥーン表示、リガンドは棒+球表示)。
museum/v1met-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_swissopendata.swissスイス連邦のオープンデータカタログ(CKAN)
de_govdataドイツ GovDataドイツ連邦のオープンデータカタログ(CKAN)
fr_data_gouvdata.gouv.frフランス政府のオープンデータプラットフォーム
nl_tweedekamerTweede Kamerオランダ議会のオープンデータ
sg_data_govシンガポールオープンデータdata.gov.sg のデータセットとコレクション
uk_govdata.gov.uk英国政府の CKAN カタログ
us_caryCary 町オープンデータSocrata 経由のノースカロライナ州 Cary 町のオープンデータ — 公共安全、交通、公共事業、公園
us_data_govData.gov米国連邦政府のオープンデータセット
us_fayettevilleFayetteville 市オープンデータSocrata 経由のノースカロライナ州 Fayetteville 市のオープンデータ — 公共安全、インフラ、地域サービス
us_raleighRaleigh 市オープンデータSocrata 経由の Raleigh 市のオープンデータ — 公共安全、インフラ、公園、都市計画
統計/経済
プラグインソース説明
eu_eurostatEurostat欧州連合の統計
global_imf国際通貨基金IMF SDMX 2.1 統計データ
global_faostatFAOSTAT国連の食料・農業統計 — 生産、価格、貿易、土地利用、排出量
global_dbnomicsDBnomics世界の経済データアグリゲーター(IMF、世界銀行など)
global_oecdOECDOECD の経済・社会統計(SDMX)
global_world_bank世界銀行国別の開発指標
nl_cbsオランダ統計局(CBS)オランダの統計データセット(OData v2/v3)
uk_ons英国 ONS英国国家統計局
金融/市場
プラグインソース説明
eu_ecb欧州中央銀行ECB データポータル(SDMX)— 外国為替、金融、銀行
global_coingeckoCoinGecko暗号資産の市場データ
global_frankfurterFrankfurterECB 基準外国為替レート(キー不要)
us_sec_edgarSEC EDGAR上場企業の公開提出書類、XBRL 財務データ
us_treasury_fiscal米国財務省財政データ連邦政府債務、日次財務省報告書、外国為替レート
ヘルスケア/ライフサイエンス
プラグインソース説明
global_chemblChEMBLEMBL-EBI の分子・生物活性データベース
global_disease_shdisease.shCOVID-19、インフルエンザ、ワクチンのアグリゲーター
global_pubchemNCBI PubChem化合物および物質
global_rcsb_pdbRCSB PDBタンパク質および高分子の3D構造
global_who_ghoWHO GHOWHO 世界保健機関統計情報システム(OData)
us_cdc_socrata米国 CDCSocrata 経由の CDC オープンデータ
us_clinicaltrialsClinicalTrials.govNIH/NLM の臨床試験登録システム v2
us_fda_openfdaopenFDAFDA の有害事象、リコール、ラベル
us_healthdata_govHealthData.govSocrata 経由の HHS オープンヘルスデータ — 医療成果、保険、人口統計、公衆衛生
地球科学/気象/環境
プラグインソース説明
eu_copernicusCopernicus(EU)欧州の地球観測・気候データセット
global_open_meteoOpen-Meteo天気予報+過去の気象データ+大気質
global_openaqOpenAQ基準観測所やセンサーによる世界の大気質測定値
us_ncdeq_gisNC DEQ 環境 GISNC 環境品質局の ArcGIS Hub — 許認可、大気・水質、有害廃棄物
us_noaa_nceiNOAA NCEI気候データアクセスサービス(キー不要)
us_noaa_tidesNOAA 潮汐・海流水位、潮汐、海流
us_usgs_earthquakeUSGS 地震リアルタイムおよび過去の地震活動
生物多様性/宇宙/物理学
プラグインソース説明
cern_opendataCERN Open Data粒子物理学のデータセットとソフトウェア
global_gbifGBIF世界規模の生物多様性出現記録
global_inaturalistiNaturalist市民科学による種の観察記録
global_openskyOpenSky NetworkADS-B によるリアルタイムの航空機追跡
global_solarsystemLe Systeme Solaire API太陽系の天体に関するオープンなメタデータ
us_nasaNASAAPOD、地球近傍天体、火星探査車の写真
地理/マッピング/ナレッジ
プラグインソース説明
global_mcp_registryMCP Server Registry公式 MCP サーバーレジストリ — 公開されている MCP サーバーの検索と一覧表示
global_osm_nominatimOSM Nominatimジオコーディング/逆ジオコーディング(1 リクエスト/秒)
global_overpassOSM OverpassOverpass QL で OpenStreetMap を検索
global_rest_countriesREST Countries国の参照データ — 国境、首都、通貨、言語、人口
global_wikidataWikidata構造化ナレッジグラフと SPARQL
global_wikipediaWikipedia記事の要約、関連記事、ページビュー
us_arcgis_itemArcGIS REST APIID で公開 ArcGIS アイテムのメタデータを取得 — レイヤー、マップ、サービス、ファイル
us_census_geocoderUS Census Geocoder住所 ⇄ 座標 ⇄ 地理情報
us_nc_onemapNC OneMapArcGIS REST を通じた、NC の公式 GIS データ集約サイト — 州全域の地理レイヤー
農業/貿易
プラグインソース説明
global_un_comtradeUN Comtrade国際的な商品およびサービスの貿易統計
セキュリティ/脆弱性
プラグインソース説明
eu_euvdENISA EUVDEU の脆弱性に関する最新情報、悪用された脆弱性、重大な脆弱性、および条件を指定した検索
global_circl_cveCIRCL CVE Search最近の CVE、CVE の詳細、ベンダー/製品の閲覧
global_crtshcrt.shドメインと証明書の証明書透明性検索
global_epssFIRST.org EPSSCVE の悪用予測スコアとパーセンタイル順位
global_nvd_cveNVD CVE DatabaseNIST の CVE レコード、フィルター、変更履歴
global_opensanctionsOpenSanctions制裁対象、PEP、取引禁止対象、および関連するリスクデータセット
global_osv_devOSV.dev各エコシステムのオープンソース脆弱性アドバイザリ
global_pwned_passwordsPwned Passwords漏えいパスワードの SHA-1 プレフィックスを匿名で検索
global_ssllabsSSL Labs公開 TLS 設定とエンドポイントの分析
us_cisa_kevCISA KEV修正期限付きの、悪用が確認された脆弱性のカタログ
公共交通/航空
プラグインソース説明
ch_sbbSwiss Federal Railwaysスイスの鉄道運行障害とサービスデータ
global_transitousTransitous世界各地の公共交通機関の経路検索 — 所要時間、乗り換え、行程(オープン GTFS 上の MOTIS)
de_dbDeutsche Bahnドイツ鉄道のオープンデータ
nl_ndovNDOV Loketオランダの公共交通データ
nl_ovapiOVapiオランダのリアルタイム交通情報 — リアルタイムの出発情報、車両位置、GTFS/GTFS-RT フィード
us_faa_nasstatusFAA NAS Status米国の空域状況、遅延、地上停止(XML)
us_noaa_awcNOAA Aviation WeatherMETAR、TAF、観測所の気象データ
学術文献
プラグインソース説明
global_arxivarXivプレプリントのメタデータ(Atom XML)
global_crossrefCrossrefDOI メタデータ、引用、学術誌
global_doajDOAJオープンアクセスの学術誌と論文の検索
global_europepmcEurope PMC生物医学文献と全文 XML
global_openalexOpenAlexオープンな学術メタデータ
文化/書籍
プラグインソース説明
global_met_museumMet MuseumMet Museum のオープンアクセス(CC0)
global_open_libraryOpen Library書籍、著者、作品(Internet Archive)
global_unesco_heritageUNESCO World Heritage Sites自然遺産、文化遺産、複合遺産の世界遺産
ニュース/メディア
プラグインソース説明
global_gdeltGDELT 2.0100 以上の言語にわたる世界のニュース、イベント、論調のモニタリング
global_hackernewsHacker News API公開記事、コメント、求人、ユーザープロフィール
ネットワーク/インターネット
プラグインソース説明
global_bgpviewBGPViewBGP ルーティングデータ — ASN 情報、プレフィックス、ピア(キー不要)
global_ripe_statRIPE NCC RIPEstat本番環境向けの高品質な BGP データ(キー不要)
法律
プラグインソース説明
nl_rechtspraakDutch Rechtspraakオランダの裁判所判決および判例(ECLI)
uk_legislationUK legislation.gov.uk英国の法律、委任立法(XML/Atom)
us_courtlistenerCourtListener米国の裁判所意見、訴訟記録、裁判官(Free Law Project)
us_federal_registerUS Federal Register日次の規則、告示、大統領令

オプションの環境変数

同梱されているプラグインの一部では、レート制限を緩和するためにオプションの API キーを利用できます。これらは、シェルまたは Claude Desktop のサーバー設定にある env ブロックで設定してください。

変数プラグイン用途
COURTLISTENER_API_TOKENus_courtlistener匿名アクセスは少量の利用であれば可能です
NVD_API_KEYglobal_nvd_cveNVD API のレート制限を緩和します
META_DATA_MCP_CONTACTallメールアドレス。礼儀正しい利用が求められる API(Crossref、OpenAlex、OSM、SEC EDGAR)の User-Agent で使用されます。既定値は [email protected] です。
OPENAQ_API_KEYglobal_openaq認証済みの OpenAQ API アクセスを有効にします
OPENSANCTIONS_API_KEYglobal_opensanctions認証済みの OpenSanctions API アクセスを有効にします
UN_COMTRADE_API_KEYglobal_un_comtrade上位プランの UN Comtrade API アクセスを有効にします
サーバーのランタイムフラグ
変数用途
META_DATA_MCP_PRELOAD起動時に有効化するプラグイン ID をカンマ区切りで指定します。または、すべてを有効化するには * を指定します。デフォルトは未設定で、検出のみを行います(約13個のメタツール)。
META_DATA_MCP_AUTH_TOKENSSE トランスポートで設定すると、/sse と /messages で Authorization: Bearer <token> が必要になります。
META_DATA_MCP_OAUTH_ISSUEROAuth 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_TTLOAuth アクセストークンの有効期間(秒)です。デフォルトは 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 をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。