MCP vs A2A プロトコル完全比較【2026年版】— AIエージェント通信の新標準を理解する
AIエージェント界隈で「MCP」と「A2A」という略語が飛び交っています。どちらも2025〜2026年に登場した新プロトコルですが、解決する問題がまったく違います。混同している人も多いため、エージェント開発者目線で徹底比較します。
一言で言うと
| MCP | A2A | |
|---|---|---|
| 正式名称 | Model Context Protocol | Agent-to-Agent Protocol |
| 作成者 | Anthropic(2024年11月) | Google(2025年4月) |
| 解決する問題 | LLMとツール/データソースの接続 | エージェント同士の通信・委任 |
| 接続先 | ファイル、DB、API、Webブラウザ等 | 別のAIエージェント |
| 例え | USBポート(周辺機器を統一規格で接続) | HTTP(コンピュータ同士の通信規格) |
一言まとめ:MCPはエージェントとツールを繋ぐ。A2Aはエージェントとエージェントをつなぐ。
MCPとは
背景
従来、各AIフレームワーク(LangChain、CrewAI等)はツール連携を独自実装していました。GitHub連携はLangChain専用、DB接続はAutogen専用... という断片化が起きていました。
Anthropicが2024年11月にMCPをオープンソースで公開し、2025年に各社が採用。現在はOpenAI、Google DeepMind、LangChain、Cursor等がMCPをサポートしています。
MCPの仕組み
AIエージェント(MCP Client)
↕ JSON-RPC over stdio / HTTP SSE
MCPサーバー(ツール提供側)
→ ファイルシステム
→ GitHub API
→ データベース
→ ブラウザ(Playwright等)
→ Slack / Gmail 等
MCPサーバーの主要ディレクトリ
- mcp.so — 最大のMCPサーバーカタログ
- mcpservers.org — コミュニティ管理カタログ
- 現在 2,000以上 のMCPサーバーが公開中
MCPで何が変わるか
# Before MCP: フレームワーク固有のツール実装
@tool
def search_github(query: str) -> str:
# LangChain専用の実装...
# After MCP: 共通サーバーに接続するだけ
# どのフレームワークでも同じMCPサーバーを使える
A2Aとは
背景
MCPでツール連携は解決されましたが、複数のエージェントが協調して作業する場面では別の問題が残りました。
- エージェントAがエージェントBに「この調査を頼む」とどう伝える?
- 進捗状況をどうやって受け取る?
- エージェントBが別の会社・別のフレームワークで実装されていたら?
GoogleとPartnerが2025年4月にA2Aプロトコルを公開。現在50以上の企業がサポートを表明しています。
A2Aの仕組み
オーケストレーターエージェント
↕ HTTP + JSON(タスク委任)
サブエージェントA(データ収集担当)
サブエージェントB(コード生成担当)
サブエージェントC(テスト担当)
A2Aのキーコンセプト
- Agent Card:エージェントの能力をJSONで宣伝(「私はコードレビューができます」)
- Task:非同期タスクの委任・進捗管理
- Artifacts:成果物の受け渡し
- Streaming対応:長時間タスクの途中経過をSSEで受信
MCPとA2A、どう使い分けるか
使い分けの基準
MCPを使う場面:
- エージェントがファイル、DB、外部APIを使いたい
- ツール連携を標準化したい
- 複数フレームワーク間でツールを共有したい
A2Aを使う場面:
- 複数の専門エージェントに仕事を分担させたい
- 長時間の非同期タスクを別エージェントに委任したい
- 異なるシステム・会社間のエージェント連携が必要
組み合わせて使う
マネージャーエージェント(A2Aでタスク委任)
↓
リサーチエージェント(MCPでWebブラウザ/DB接続)
↓
コーダーエージェント(MCPでGitHub/ファイルシステム接続)
↓
テスターエージェント(MCPでCI/CDパイプライン接続)
MCPとA2Aは競合ではなく補完関係です。
各フレームワークのサポート状況(2026年4月現在)
| フレームワーク | MCP | A2A |
|---|---|---|
| LangChain / LangGraph | ✅ ネイティブ | ✅ サポート |
| CrewAI | ✅ ネイティブ | 🔄 対応中 |
| AutoGen(MS) | ✅ サポート | ✅ サポート |
| Google ADK | ✅ | ✅ ネイティブ |
| Mastra | ✅ ネイティブ | 🔄 対応中 |
| OpenAI Agents SDK | ✅ | 🔄 検討中 |
| PydanticAI | ✅ | 🔄 対応中 |
実装例:MCPクライアントの基本
# LangChainでMCPサーバーに接続
from langchain_mcp_adapters.client import MultiServerMCPClient
async def main():
async with MultiServerMCPClient({
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
"transport": "stdio"
},
"github": {
"url": "https://github-mcp.example.com/sse",
"transport": "sse"
}
}) as client:
tools = client.get_tools()
# これで全MCPサーバーのツールがLangChainで使える
まとめ:2026年のエージェントスタックの標準
2026年時点で、本番グレードのAIエージェントシステムの標準スタックはこうなっています:
フレームワーク(LangGraph / CrewAI / AutoGen)
↓ ツール接続
MCP(ファイル / DB / API / ブラウザ)
↓ エージェント間通信
A2A(マルチエージェント協調)
↓ 観測・デバッグ
LangSmith / Langfuse / Helicone
↓ メモリ管理
Mem0 / Zep / Letta
MCPは「LLMに手を与える」、A2Aは「エージェントに仲間を与える」——この理解で実装判断がシンプルになります。
AgDex.ai では、MCPサーバー、A2A対応フレームワーク、LLMオーケストレーションツールなど400以上のAIエージェントリソースをカテゴリ別に整理しています。MCPとA2Aの対応ツール一覧もご確認ください。