MCPとA2Aは競合ではない――役割の違いと正しい使い分け

AI・機械学習

結論から言えば、MCPとA2Aは競合する規格ではありません。

どちらもAIエージェントの連携に関わりますが、担当する境界が異なります。MCPは、AIアプリケーションやエージェントが外部のデータ、ツール、業務システムへ接続するための仕組みです。一方のA2Aは、独立したAIエージェント同士が互いの能力を確認し、仕事を依頼し、進捗や成果物を交換するための仕組みです。

たとえるなら、MCPは社員がパソコン、社内データベース、検索、カレンダーなどの「道具」を使うための共通端子です。A2Aは、営業担当が法務や経理など別の「専門家」へ仕事を依頼するための共通ルールです。

この違いを理解すると、「MCPとA2Aのどちらが勝つのか」という話ではなく、「システムのどの境界に、どちらを配置するか」という設計の話に変わります。

MCPとA2Aの違いを一覧で整理

比較項目 MCP A2A
主な役割 AIとツール・データ・外部システムをつなぐ 独立したAIエージェント同士をつなぐ
主な接続相手 ファイル、DB、API、検索、業務機能 別チーム・別製品・別組織のエージェント
依頼の粒度 「この操作を、この入力で実行して」 「この目的を達成して、結果を返して」
実行手順を考える主体 主に呼び出し側 主に依頼を受けた側
代表的な結果 ツール実行結果、取得データ、リソース メッセージ、タスク状態、文書などの成果物
向いている場面 単体エージェントの能力拡張 複数エージェントの分業・委任・協調

MCPの公式ドキュメントでは、MCPはAIアプリケーションを外部システムへ接続するオープンな標準として説明されています。代表的な構成要素は、実行可能な機能を提供する「Tools」、データやコンテンツを提供する「Resources」、再利用可能な指示を提供する「Prompts」です。

A2Aでは、エージェントの能力や接続方法を示すAgent Card、継続的な仕事を表すTask、やり取りを表すMessage、納品物に相当するArtifactなどを利用します。A2Aの公式発表でも、A2AはMCPを補完するものとして位置付けられています。

最も実用的な判断基準は「実行計画を誰が持つか」

やり方まで指定するならMCP。達成したい目的を渡し、やり方を相手に任せるならA2A。

MCPとA2Aを見分けるとき、接続相手にAIが含まれているかどうかだけを見ると判断を誤ります。より重要なのは、目的達成までの実行計画を誰が持っているかです。

MCPに向いている依頼

  • 顧客IDを指定して契約情報を取得する
  • 指定した日時で会議を登録する
  • SQLを実行して集計結果を返す
  • 指定した宛先へメールを送る
  • リポジトリから特定のファイルを取得する

これらは、実行する操作と入力内容が明確です。呼び出し側が「何を、どのように実行するか」を決めているため、MCPのToolとして扱いやすい領域です。

A2Aに向いている依頼

  • 解約しそうな顧客を分析し、引き留め施策を提案する
  • 新商品の法務リスクを確認し、必要な修正案をまとめる
  • 障害の原因を調査し、復旧案と再発防止策を作る
  • 複数の旅行プランを調査し、条件に合う案を選定する
  • 市場調査を行い、意思決定用のレポートを作る

これらの仕事では、調査方法、利用するデータ、途中の判断、成果物のまとめ方を依頼先が組み立てます。このような「仕事の委任」はA2Aの考え方に合います。

MCPはエージェントに能力を装備させる

MCPを導入すると、エージェントごとに個別のAPI連携コードを大量に抱えず、共通の形式でツールやデータを発見し、利用しやすくなります。

  • 社内文書やデータベースを参照する
  • GitHubのIssueを取得・更新する
  • カレンダーを確認して予定を登録する
  • 検索や計算を実行する
  • メールやチャットへメッセージを送る
  • 既存の業務フローを呼び出す

ただし、MCPサーバーが必ず単純な処理だけを提供するわけではありません。内部で複数のAPIを呼んだり、一定の判断処理を行ったりしても構いません。

外部に公開する契約が「決められた機能を、指定された入力で実行する」という形なら、内部が多少複雑でも、設計上はツールとして扱う方が自然です。

A2Aは専門家へ仕事を任せる

A2Aでは、依頼先のエージェントをある程度ブラックボックスとして扱えます。呼び出し側は、相手がどのLLM、フレームワーク、メモリ、データベース、ツールを使っているかを細かく知る必要がありません。

必要なのは、主に次の情報です。

  • そのエージェントは何ができるのか
  • どこへ依頼を送ればよいのか
  • どのような入力と出力に対応しているのか
  • どの認証方式が必要なのか
  • 依頼した仕事が現在どの状態なのか

エージェントの仕事は、通常の関数呼び出しのようにすぐ終了するとは限りません。調査、外部サービスの応答待ち、人による承認、追加情報の確認などを含む場合があります。

そのためA2Aは、単発のリクエストとレスポンスだけでなく、タスクの状態管理、ストリーミング、通知、メッセージ交換、成果物の受け渡しを扱います。

実際のシステムでは「A2Aの内側でMCPを使う」

MCPとA2Aを組み合わせると、エージェントシステムの役割分担が明確になります。

たとえば、新商品の発売準備を支援する統括エージェントを考えてみます。

  1. 統括エージェントが、MCP経由で商品データ、販売実績、社内文書を取得する。
  2. 法務エージェントへA2Aで「表示内容と契約条件のリスク確認」を依頼する。
  3. マーケティングエージェントへA2Aで「対象顧客と訴求案の作成」を依頼する。
  4. 各専門エージェントは、自分に必要な検索、文書、DB、業務システムをMCPで利用する。
  5. 統括エージェントが各エージェントの成果物をまとめ、人へ最終案を提示する。

この構成では、A2Aがエージェント間の分業を担当し、MCPが各エージェントの手足を担当します。

利用者
  ↓
統括エージェント
  ├─ MCP → 社内DB・検索・カレンダー
  ├─ A2A → 法務エージェント
  │           └─ MCP → 契約書・法令データ
  └─ A2A → マーケティングエージェント
              └─ MCP → 分析基盤・顧客データ

A2Aでつながったエージェントが、それぞれの内部でMCPを使う構成は矛盾ではありません。むしろ、両者の役割を自然に組み合わせた構成です。

すべてをA2A化する必要はない

エージェント技術が注目されると、既存のAPIや小さな処理まで、すべてエージェント化したくなることがあります。しかし、これは応答時間、実行コスト、障害原因、再現性を悪化させやすい設計です。

次の処理は、A2Aではなく、通常のAPIやMCP Toolのままにした方が扱いやすいことが多いでしょう。

  • 入力と出力が厳密に決まっている処理
  • 低遅延や高スループットが重要な処理
  • 決済や在庫更新など、強い整合性が必要な処理
  • 失敗時の再実行条件を機械的に定義できる処理
  • 判断や交渉を必要としないCRUD操作
  • 毎回同じ手順で実行すべき処理

A2Aが力を発揮するのは、相手に裁量を渡す価値がある場面です。専門知識が必要で、複数の手順や判断が含まれ、途中で追加質問が発生し、相手の内部実装を公開したくない場合には有効です。

見落とされやすい設計ポイント

1. タスクとツール実行を同じトレースで追跡する

A2AのTask IDと、その処理中に実行されたMCP Toolのログを関連付けます。最終結果だけを保存しても、どのエージェントがどのデータを読み、どの操作を実行したかを調査できません。

2. エージェント間の委任回数に上限を設ける

最大実行時間や料金だけでなく、最大ツール呼び出し回数、最大再試行回数、最大エージェント委任回数を決める必要があります。上限がなければ、エージェント同士が仕事を渡し続ける可能性があります。

3. Agent Cardは能力証明書ではない

Agent Cardは、エージェントが自称する能力や接続方法を伝えるために役立ちます。しかし、そこに書かれた能力の品質や正確性まで自動的に保証するものではありません。接続前の審査、テスト、実行結果の評価は別に必要です。

4. 成果物を「信頼できない入力」として扱う

別エージェントから返された文章やデータを、そのまま正しい事実として扱ってはいけません。出典、生成日時、利用データ、計算根拠などを確認できる形にし、重要な操作へ渡す前に検証します。

5. 人の承認を入れる位置を具体的に決める

「人をループに入れる」という方針だけでは不十分です。メール送信、データ削除、購入、契約、外部公開など、取り消しにくい操作の直前に承認を入れるなど、停止地点を明確にします。

導入順は「MCPが先、必要になったらA2A」が現実的

多くの組織では、最初から大規模なマルチエージェント構成を作る必要はありません。まず一つのエージェントにMCPで必要なデータとツールを接続し、業務上の価値、精度、実行コスト、権限、監査方法を確認する方が進めやすくなります。

その後、次の問題が出てきた段階でA2Aを検討するのが現実的です。

  • 専門分野ごとに別エージェントへ分けたい
  • 異なるフレームワークのエージェントを接続したい
  • 複数ベンダーのエージェントを組み合わせたい
  • 別部署や取引先へ、内部実装を見せずに仕事を委任したい
  • 長時間タスクの状態や成果物を標準化して扱いたい
  • 一つの巨大なエージェントでは権限や責任範囲が曖昧になる

A2Aを先に導入しても、連携先のエージェントに十分な能力や信頼性がなければ、複雑な通信基盤だけが残ります。まず仕事のできるエージェントを作り、その後でエージェント同士をつなぐ方が失敗しにくいでしょう。

迷ったときのチェックリスト

  • 相手に操作名と引数を指定したい → MCP
  • 目的だけ渡し、手順は相手に任せたい → A2A
  • データ源や業務機能への接続を標準化したい → MCP
  • 別組織・別製品の専門エージェントへ委任したい → A2A
  • 長時間の仕事として状態を管理したい → A2A
  • 単純で決定的な処理 → APIまたはMCP
  • 厳密なトランザクション処理 → 通常のAPIを優先
  • 単体エージェントで十分に処理できる → A2Aを増やさない

まとめ

MCPとA2Aは、同じ市場を奪い合う規格ではありません。

MCPは、AIエージェントと道具・データの間を標準化します。A2Aは、独立したエージェント同士の発見、依頼、進捗管理、成果物交換を標準化します。

設計で最も役立つ問いは、「MCPかA2Aか」ではありません。

この処理の実行計画と責任を、呼び出し側と依頼先のどちらに持たせるのか。

やり方を呼び出し側が決めるならMCP。目的を渡して相手に考えさせるならA2A。そして実際のエージェント基盤では、A2Aでつながった各エージェントが、MCPで自分の道具を使う構成が自然です。

「MCP対A2A」という見方から離れ、「MCPとA2Aをどの境界で組み合わせるか」と考えることが、実用的なAIエージェントシステムを設計する第一歩です。

参考資料