global-education-mcp について
global-education-mcpは、UNESCO UISとOECDの「Education at a Glance」の国際教育統計を調べるMCPサーバーです。指標の検索、国別比較、教育プロフィール、SDG-4のモニタリングに対応し、APIキーは不要です。
主な機能
- 01UNESCO指標カタログの検索
- 02教育統計データの取得
- 03複数国の比較
- 04国別教育プロフィールの作成
- 05SDG-4目標のモニタリング
- 06OECDデータセットの検索
活用シーン
- 01各国の識字率を比較する
- 02教育支出の推移を追う
- 03国別の教育プロフィールを確認する
- 04OECDの教員給与データセットを探す
MCP 対応
UNESCO UISとOECDのデータツール、参照リソース、プロンプトをMCPクライアントに提供します。stdioとStreamable HTTPに対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
10掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| params | any | はい |
詳細
🇨🇭 Swiss Public Data MCP Portfolio の一部です
🎓 global-education-mcp
国際教育データ向けの MCP サーバーです。SDMX を通じて、UNESCO UIS(全加盟国を対象とした 4,000 件以上の指標)と OECD Education at a Glance のデータを利用できます。API キーは不要です。
概要
global-education-mcp は、Claude のような AI アシスタントに、識字率、就学率、教育支出、教員給与、ジェンダー平等、SDG-4 のモニタリングなど、国際教育に関する包括的な情報システムを提供します。すべて、標準化された単一の MCP インターフェースから利用できます。
このサーバーは、国際比較可能な教育統計を提供する、最も信頼性の高い 2 つの情報源、UNESCO UIS(世界全体を網羅し、4,000 件以上の指標を提供)と、OECD が毎年発行する Education at a Glance(OECD 加盟 38 か国、SDMX REST API)をつなぎます。どちらもオープンデータで、API キーは不要です。
デモ用の代表的なクエリ: 「スイスの GDP に占める教育支出の割合を、過去 10 年間にわたってフィンランド、シンガポール、韓国と比較し、SDG-4 の課題があれば示してください。」
特徴
- 🌍 UNESCO UIS – 4,000 件以上の指標、UNESCO 加盟国すべてに対応、API キー不要
- 📊 OECD Education at a Glance – SDMX REST を通じて OECD 加盟 38 か国とパートナー国に対応
- 🔍 指標の検索 – UNESCO の指標カタログ全体を閲覧・絞り込み
- 🗺️ 複数国の比較 – 任意の指標を複数の国で比較
- 🏫 各国の教育プロファイル – 1 回の呼び出しで 10 件の主要指標を取得
- 🎯 SDG-4 のモニタリング – 「万人のための教育」の目標に関する構造化レポート
- 📈 OECD データセットの検索 – Education at a Glance のデータフローを検索・取得
- 🔑 API キー不要 – 完全なオープンデータで、セットアップの手間もありません
- ☁️ 2 種類のトランスポート – Claude Desktop 用の stdio と、クラウドデプロイ用の Streamable HTTP(
/mcp、仕様2026-07-28) - 🛡️ 適切な縮退動作 – API の障害時には、ローカルの参照情報を使った役立つメッセージを返します
前提条件
- Python 3.11+
uv(推奨)またはpip- API キーは不要です
インストール
# Clone the repository
git clone https://github.com/malkreide/global-education-mcp.git
cd global-education-mcp
# Install
pip install -e ".[dev]"
または、uvx を使う方法(恒久的なインストールは不要です):
uvx global-education-mcp
クイックスタート
# Start the server (stdio mode for Claude Desktop)
global-education-mcp
Claude Desktop ですぐに試せます:
「スイスの識字率を、フィンランドやシンガポールと比較するとどうなりますか?」 「CHE、DEU、AUT の GDP に占める教育支出の割合を、過去 10 年間にわたって表示してください。」
設定
Claude Desktop の設定
Windows(%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"global-education": {
"command": "uvx",
"args": ["global-education-mcp"]
}
}
}
macOS(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"global-education": {
"command": "uvx",
"args": ["global-education-mcp"]
}
}
}
すぐに使用できる claude_desktop_config.json が、リポジトリのルートに含まれています。
クラウドデプロイ(ブラウザーアクセス用の Streamable HTTP)
ブラウザー版の claude.ai(ローカルソフトウェアを使用できない管理対象ワークステーションなど)で使用します。
⚠️ セキュリティに関する注意: v0.3 以降、
MCP_HOSTのデフォルト値は127.0.0.1です。 HTTP トランスポートは、TLS、認証、レート制限を追加するリバースプロキシの背後で必ず実行してください。 生のポートをインターネットに公開しないでください。MCP_HOST=0.0.0.0が安全なのは、隔離された コンテナネットワーク内に限られます。
Docker(推奨):
リポジトリには、強化されたマルチステージの Dockerfile と、
read_only: true、cap_drop: [ALL]、
security_opt: [no-new-privileges:true] を適用し、
非 root ユーザーの uid 10001 として実行する
docker-compose.yml が含まれています。compose ファイルはポートを 127.0.0.1 にバインドするため、
外部からアクセスするにはホストレベルのリバースプロキシが必要です。
docker compose up --build
# then point nginx/caddy at 127.0.0.1:8000/mcp with TLS + auth
compose を使わない通常の docker run:
docker build -t global-education-mcp .
docker run --rm \
--read-only --cap-drop ALL --security-opt no-new-privileges \
--tmpfs /tmp:size=16M,mode=1777 \
-p 127.0.0.1:8000:8000 \
global-education-mcp
Render.com:
- リポジトリを GitHub にプッシュするか、フォークします
- render.com で、New Web Service → GitHub リポジトリに接続します
- Render ダッシュボードで環境変数を設定します:
MCP_TRANSPORT=streamable-http MCP_HOST=0.0.0.0 # Render needs 0.0.0.0; their edge layer provides TLS + auth. PORT=8000 - claude.ai の Settings → MCP Servers で、
https://your-app.onrender.com/mcpを追加します
SSE からの移行。 v0.3.5 までは、コンテナのデフォルトは MCP_TRANSPORT=sse で、
エンドポイントは /sse でした。現在のデフォルトは /mcp の streamable-http です。これは、
2026-07-28 クライアントが単一の POST リクエストを送信するトランスポートです。
SSE は spec 2025-03-26 以降、後継の方式に置き換えられており、そうしたリクエスト経路を提供したことはありません。
既存のデプロイでは、クライアントの URL を /mcp に変更するか、
MCP_TRANSPORT=sse を明示的に設定してください。その場合、サーバーは起動時に
legacy_transport_warning をログに出力します。MCP_TRANSPORT に不明な値を指定すると、
stdio に黙ってフォールバックするのではなく、起動が中断されるようになりました。
💡 「開発者のノート PC では stdio、ブラウザーではサンドボックス化された Streamable HTTP コンテナ。」
利用可能なツール
UNESCO UIS ツール
| ツール | 説明 |
|---|---|
uis_list_indicators | 利用可能な指標(4,000 以上)を検索して一覧表示します |
uis_list_countries | ISO コード付きで国と地域を一覧表示します |
uis_get_education_data | 特定の指標のデータを取得します |
uis_compare_countries | 1 つの指標について複数の国を比較します |
uis_country_education_profile | 教育に関する全体的なプロフィール(主要指標 10 件) |
uis_list_versions | 利用可能なデータベースのバージョンを一覧表示します |
OECD ツール
| ツール | 説明 |
|---|---|
oecd_list_education_datasets | Education at a Glance のデータセットを一覧表示します |
oecd_get_education_indicator | SDMX 経由で OECD の教育データを取得します |
oecd_search_datasets | キーワードで OECD のデータフローを検索します |
複数データソースのツール
| ツール | 説明 |
|---|---|
education_benchmark_countries | 5 つの重点テーマについて複数の国を比較します(UNESCO UIS) |
リソースとプロンプト
リソース:
education://indicators/unesco– UNESCO の主要指標のクイックリファレンスeducation://datasets/oecd– OECD Education at a Glance のデータフローのクイックリファレンス
プロンプト:
bildungsvergleich_schweiz– スイスとフィンランド、シンガポール、日本の比較sdg4_monitoring– CH/DE/AT 向け SDG-4 レポート
国コード
ISO 3166-1 Alpha-3 規格:
| コード | 国 | コード | 国 |
|---|---|---|---|
CHE | スイス | FIN | フィンランド |
DEU | ドイツ | SGP | シンガポール |
AUT | オーストリア | KOR | 韓国 |
FRA | フランス | JPN | 日本 |
SWE | スウェーデン | USA | アメリカ合衆国 |
使用例
| クエリ | ツール |
|---|---|
| 「スイスの識字率をフィンランドやシンガポールと比較すると?」 | uis_compare_countries |
| 「過去10年間のCHE、DEU、AUTのGDPに占める教育支出の割合」 | uis_get_education_data |
| 「韓国の教育に関する詳細なプロフィールを作成する」 | uis_country_education_profile |
| 「教員給与を扱うOECDデータセットはどれですか?」 | oecd_search_datasets |
| 「欧州5か国の中等教育修了率を比較する」 | education_benchmark_countries |
| 「スイスのSDG-4モニタリングレポートを作成する」 | sdg4_monitoring(プロンプト) |
→ 対象別のその他の使用例 →
アーキテクチャ
┌─────────────────┐ ┌──────────────────────────────┐ ┌────────────────────┐
│ Claude / AI │────▶│ Global Education MCP │────▶│ UNESCO UIS API │
│ (MCP Host) │◀────│ (MCP Server) │◀────│ uis.unesco.org │
└─────────────────┘ │ │ └────────────────────┘
│ 10 Tools · 2 Resources │
│ · 2 Prompts │ ┌────────────────────┐
│ stdio | Streamable HTTP │────▶│ OECD SDMX API │
│ │◀────│ sdmx.oecd.org │
│ server.py │ └────────────────────┘
│ + api_client.py │
└──────────────────────────────┘
インフラストラクチャコンポーネント
| コンポーネント | たとえ | 機能 |
|---|---|---|
| HTTPClient | 郵便サービス | すべての外部向けHTTPリクエスト、再試行、タイムアウトを処理します |
| SimpleCache | ホワイトボード | 繰り返しのクエリに対応するメモリ内TTLキャッシュです |
| GracefulFallback | セーフティネット | APIが利用できない場合に、ローカルの参照データを返します |
| SDMXParser | 翻訳者 | OECDのSDMX/XMLレスポンスを整理されたJSONに変換します |
キャッシュ戦略
| データソース | キャッシュTTL | 理由 |
|---|---|---|
| UNESCO UISの指標 | 3600s | カタログは安定しており、年1回更新されます |
| UNESCO UISの国別データ | 1800s | 数値は年単位で更新され、日中には更新されません |
| OECDデータセット一覧 | 3600s | Education at a Glanceは年刊の出版物です |
| OECD指標データ | 1800s | 同じ年次更新サイクルです |
| 国・地域一覧 | 86400s | ISOコードと国の一覧は非常に安定しています |
プロジェクト構成
global-education-mcp/
├── src/global_education_mcp/ # Main package
│ ├── __init__.py # Package metadata, version
│ ├── server.py # FastMCP server, 10 tools, 2 resources, 2 prompts
│ └── api_client.py # HTTP client, UNESCO UIS + OECD wrappers, formatters
├── scripts/
│ └── record_fixtures.py # Records the fixtures from the live UIS API
├── tests/
│ ├── fixtures/ # Recorded responses + PROVENANCE.md (source, date, SHA-256)
│ ├── fixture_data.py # Fixture loader – raises on a missing name
│ ├── test_source_contract.py # Contract vs. the recording + live tests
│ ├── test_server.py # 42 tests (basic / intermediate / advanced)
│ └── test_extended_scenarios.py # 74 tests across 8 categories
├── claude_desktop_config.json # Ready-to-use Claude Desktop config
├── pyproject.toml # Build configuration (hatchling)
├── CHANGELOG.md
├── CONTRIBUTING.md # Contribution guide (English)
├── CONTRIBUTING.de.md # Contribution guide (German)
├── SECURITY.md # Security policy (English)
├── SECURITY.de.md # Security policy (German)
├── LICENSE
├── README.md # This file (English)
└── README.de.md # German version
既知の制限事項
- UNESCO UIS: 一部の指標では、低所得国や近年のデータが十分にありません
- OECD SDMX: 複数の国や年にまたがる大規模なリクエストでは、APIがまれにタイムアウトします。必要に応じて対象年の範囲を狭めてください
- OECDの対象範囲: OECD加盟国38か国と一部のパートナー国が対象です。UNESCO加盟国すべてを網羅しているわけではありません
- 過去データの範囲: UNESCO UISのデータ利用可否は指標によって異なり、1970年までさかのぼらない系列もあります
- 言語: UNESCO UISは指標ラベルを英語のみで返します。OECDのラベルはデータフローによって異なる場合があります
- リアルタイムデータはありません: どちらのデータソースも年次で公開されるため、数値は最新の公開版を反映しており、学校のリアルタイム統計ではありません
- 推計値にはラベルが付いています: UISでは観測値の一部に
UIS_EST(UIS推計値)またはNAT_EST(国別推計値)のラベルが付いています。LR.AG15T99では、9,818件中1,306件が該当します。ステータス列にその旨が記載され、ラベルのない値は報告値です。 - データ行に含まれるのは国名ではなくISOコードです: 国名は
uis_list_countriesから取得できます。データツールは国名を推測せず、コードを出力します。 - 不明な国コードはエラーステータスではありません: UISはHTTP 200と空の結果セットを返し、理由をペイロードの
hintsフィールドに記載します。ツールはそのヒントを出力します。そうしないと、入力ミスがデータのない国とまったく同じように見えてしまいます。
コンプライアンスとデータ分類(チューリッヒ市)
チューリッヒ市教育局での利用に関する拘束力のある分類 (ドイツ語のセクションは
README.de.mdにあります)。
ISDS保護クラス(チューリッヒ市の保護要件クラス)
| 項目 | クラス | 理由 |
|---|---|---|
| 機密性 | 公開 | UNESCO UISのデータはCC BY-SA 3.0 IGOのライセンスで提供され、OECD EaGは公開されているOECD利用規約に準拠しています |
| 完全性 | 通常 | 上流データは権威ある情報源です。ローカルのメモリ内キャッシュはTTLで制限され、ディスクに書き込まれることはありません |
| 可用性 | 通常 | APIに接続できない場合は、同梱の静的参照データに適切にフォールバックします |
| 総合保護クラス | G1 — 公開(öffentlich) | ISDSチューリッヒ市における最も低いレベル |
- データ所有者:UNESCO UIS / OECD(外部)
- システム所有者:チューリッヒ市教育局
- 個人データを処理しますか:いいえ
- DSG / EDÖBとの関連性:なし(匿名化された国レベルの集計データのみ)
Schulamt の分類(BUI / Vertraulich / Streng Vertraulich)
| 項目 | 分類 |
|---|---|
| ツールの出力(Markdown の表、要約) | BUI(業務上、重要度の低い情報) |
| メモリ内 TTL キャッシュ | BUI(ソースと同じ区分) |
| 構造化ログ(stderr 上の JSON、OBS-003 を参照) | BUI — ツール名、パラメーター、所要時間のみ。PII なし |
tools.lock.json、audits/ の成果物 | BUI |
→ このサーバーは、データ保護責任者による追加の承認なしで、あらゆる Schulamt のユースケースに使用できます。
互換性
| コンポーネント | サポート対象バージョン |
|---|---|
| MCP プロトコル | 2024-11-05 |
| MCP Python SDK | >=1.0.0,<2.0.0 |
| Python | 3.11、3.12、3.13 |
httpx | >=0.27.0,<1.0.0 |
pydantic | >=2.0.0,<3.0.0 |
メジャーバージョンのアップグレードは、意図的に決定します。
pyproject.toml の上限は、推移的な依存関係の更新によって
サーバーが予告なく壊れることを防ぐために設定されています。アップグレードの経緯については
CHANGELOG.md を参照してください。
🛡️ 安全性と制限
| 項目 | 詳細 |
|---|---|
| アクセス | 読み取り専用(readOnlyHint: true)— サーバーはデータの変更、書き込み、削除を行えません |
| 個人データ | 個人データなし — UNESCO UIS と OECD EaG が公開するのは、国別に集計された統計のみです |
| レート制限 | クエリごとの上限を組み込み済み(検索あたり最大 50 指標、比較あたり最大 10 か国、保守的な年範囲) |
| キャッシュ | メモリ内 TTL キャッシュ(1800~86400 秒)により、上流への負荷を軽減し、データ提供元の処理能力に配慮します |
| タイムアウト | 上流 API 呼び出しごとに 30 秒。ローカルの参照データへ適切にフォールバックします |
| 認証 | API キーは不要 — UNESCO UIS と OECD SDMX はどちらも一般公開されています |
| ライセンス | UNESCO UIS のデータは CC BY-SA 3.0 IGO、OECD のデータは OECD の利用規約 に基づきます |
| 利用規約 | 各データソースの利用規約が適用されます:UNESCO UIS、OECD — 再配布する際は出典を明記してください |
| 帰属表示 | すべてのツールの応答に出典が含まれます(Source: UNESCO UIS / Source: OECD Education at a Glance) |
MCP プロトコルバージョン
このサーバーは、同じエンドポイント上で2つのプロトコル時代に対応しています。接続時のクライアントの最初のリクエストによって、どちらを適用するかが決まり、後から別の時代のバージョンを指定しても拒否されます。
| 時代 | リビジョン | 対応するクライアント |
|---|---|---|
initialize ハンドシェイク | 2024-11-05 … 2025-11-25 | 現在のクライアントが使用するリビジョンです。サーバーは要求されたリビジョンで応答します。リクエストがそれより新しいリビジョンを要求した場合は、上限の 2025-11-25 で応答します。 |
| リクエストごとのエンベロープ | 2026-07-28 | 2026-07-28 の _meta エンベロープを含むリクエストによって、モダンな接続が開始されます。 |
HTTP では、どちらの時代もエンドポイント /mcp を共有します(MCP_TRANSPORT=streamable-http、ステートレス)。MCP-Protocol-Version: 2026-07-28 ヘッダーを含むリクエストは、自己完結した単一のやり取りとして処理されます。initialize も Mcp-Session-Id も必要ありません。レガシーの SSE トランスポート(MCP_TRANSPORT=sse)にはこの経路がなく、ハンドシェイク時代にのみ対応します。
両方のリビジョンは
tests/test_protocol_version.pyで固定され、インストール済み SDK に対してアサートされます。そのため、Dependabot による mcp の更新で、どちらかが気付かないうちに変更されることはありません。
tests/test_streamable_http.pyでは、これらを検証します。main() が起動するオプションで HTTP アプリを構築し、2026-07-28 クライアント、auto クライアント、レガシーの initialize、および生の server/discover を送信します。CI の Docker ジョブでは、同じ server/discover を強化されたコンテナに送信します。
2026-07-28 がこのサーバーにもたらす変更点。 ロギング機能は非推奨(SEP-2577)となっており、使用していません。ファンアウト前のお知らせは進捗 0 of n として送信し、運用ログは JSON 形式で stderr に出力します。すべてのレスポンスで _meta に含められるようになった serverInfo には、パッケージのバージョンが格納されます。リストメソッドには鮮度ヒント(ttlMs、cacheScope、SEP-2549)が含まれます。
SDK の LATEST_PROTOCOL_VERSION はハンドシェイク時代ではなく、モダンな時代のエイリアスです。この定数だけを基準に固定すると、現在のクライアントが実際にネゴシエートする時代のリビジョンが、自由に変わってしまう点に注意してください。
更新ポリシー。 ゲートが失敗した場合、定数を安易に編集しないでください。2つのリビジョン間の仕様の変更履歴を読み、サーバーが引き続き正常に動作することを確認してから、定数、このセクション、README.de.md、および
CHANGELOG.mdをまとめて更新してください。
テスト
# Unit tests (no API key required, no network)
PYTHONPATH=src pytest tests/ -v -m "not integration"
# Full suite including the live tests against api.uis.unesco.org
PYTHONPATH=src pytest tests/ -v
# Re-record the fixtures (writes tests/fixtures/ + PROVENANCE.md)
PYTHONPATH=src python scripts/record_fixtures.py
169件のテスト – オフラインで152件、ライブソースに対して17件です。
| カテゴリ | テスト数 | 説明 |
|---|---|---|
| エッジケースと境界値 | 19 | 年の上限、文字列の長さ、null/ゼロ値 |
| セキュリティと敵対的な入力 | 14 | インジェクションの試行、HTTP エラーコード、空白 |
| 出力品質 | 11 | Markdown の構造、出典の明記、並べ替え順 |
| 回復性とエラーの連鎖 | 9 | API 全体の停止、一部の結果、タイムアウト |
| 専門分野の正確性 | 10 | SDG-4 の網羅性、重点テーマごとの正しい指標 |
| パフォーマンスと並行処理 | 4 | 同時リクエスト、時間制限 |
| 教育委員会のシナリオ | 7 | DACH の比較、PISA、教員不足 |
| 記録に対するソース契約 | 23 | フィールド名、エンベロープ、クエリパラメーター、ヒント |
ライブテスト(-m integration) | 17 | 経路、形式、ツールそのもの |
フィクスチャを手書きせず、記録する理由
手書きのモックは、作者の想定をそのまま記述するため、それを否定できません。プロダクションコードとフィクスチャは、同じ人が、同じ時間に、同じドキュメントの読み方に基づいて作成します。両方が間違っている場合、両方とも同じように間違っているため、テストスイートは成功したままです。
これは、ここでは仮定の話ではありません。2026-08-08 より前、このリポジトリには 128 件の成功するテストがありましたが、UNESCO のエンドポイント 4 つのうち 3 つは HTTP 404 を返し、すべてのデータクエリは空のリストを返していました。モックには、プロダクションコードと同じ架空のフィールド名(observations、indicatorId、entityType)が使われていたため、モックの誤りを指摘できるものは何もありませんでした。
現在、tests/fixtures/ にあるフィクスチャはすべて、記録されたレスポンスです。PROVENANCE.md には、それぞれのソース URL、記録日、選択ルール、SHA-256 が記載されています。日付がなければ、2 年後には「記録済み」と「架空」の区別がつかなくなります。ファイル自体は同じように見えるからです。
3 つのフィクスチャはコントロールです。架空の theme 値、架空の国コード、そして異なるパラメーター名で 2 回リクエストした同じ時系列データです。これらがなければ、測定で分かるのは私たちが受け取ったものだけです。これらがあれば、ソースが実際に区別しているものが分かります。
貢献
貢献を歓迎します。変更したい内容について話し合うため、まずイシューを作成してください。
- 既存のコードスタイル(Ruff によるリンティング、Black によるフォーマット)に従ってください
- 新しいツールのテストを追加してください(
tests/test_server.pyまたはtest_extended_scenarios.py) - ライブ API を呼び出すテストには
@pytest.mark.integrationマーカーを使用してください CHANGELOG.mdと、この README のツール一覧表を更新してください- 貢献ガイドの全文は CONTRIBUTING.md をご覧ください
変更履歴
CHANGELOG.md をご覧ください
セキュリティ
脆弱性の報告については、SECURITY.md(🇩🇪 ドイツ語版)をご覧ください。公開イシューではなく、そこに記載されている非公開の窓口をご利用ください。
ライセンス
MIT ライセンス — LICENSE をご覧ください
作者
Hayal Oezkan · github.com/malkreide
クレジットと関連プロジェクト
- データ: UNESCO Institute for Statistics (UIS) – UNESCO 加盟国すべてを対象とするオープンな教育データ
- データ: OECD Education at a Glance – SDMX を通じた OECD の年次教育統計
- プロトコル: Model Context Protocol – Anthropic / Linux Foundation
- 関連: swiss-transport-mcp – スイスの公共交通機関向け MCP サーバー
- 関連: zurich-opendata-mcp – チューリッヒ市のオープンデータ向け MCP サーバー
- ポートフォリオ: Swiss Public Data MCP Portfolio
MCP クライアントの設定
uv の uvx を使って実行できます。クローンや手動インストールは不要です。MCP クライアントの設定(Claude Desktop、Cursor、Windsurf では mcpServers、VS Code では .vscode/mcp.json のトップレベルに servers キーを使用)に追加してください。
{
"mcpServers": {
"global-education-mcp": {
"command": "uvx",
"args": [
"global-education-mcp"
]
}
}
}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。