In Silico

AIエージェント

MCPとA2Aの違いと使い分け:ツール呼び出しかエージェント間の仕事か

2026/9/21 (更新: 2026/10/14)

  • MCP
  • AIエージェント
  • A2A
  • Agentic AI Foundation
  • Linux Foundation
  • tasks
  • Agent Network Protocol
  • ACP
  • Agent Client Protocol
  • python-sdk
  • a2a-python
  • ステートレス
  • セッション
  • ハンドル
  • ツールの呼び出し
  • 権限の昇格
  • 監査の記録
  • 形式的な分析
  • Anthropic
  • Google
  • USB-C
  • ポーリング
  • プラチナ会員
  • スター
目次
背景・問い・要点
背景

複数のエージェントを組み合わせ、それぞれに外部のツールも持たせて働く仕組みを組むとき、作り手はまず、何を何につなぐかを決める。エージェントがツールを呼び出す関係もあれば、エージェントが別のエージェントを呼ぶ関係もある。どちらも一つの呼び出しにまとめられそうに見える。

これまでの作り手は、呼べるものをすべてツールとして扱ってきた。ツールは、決まった形の入力を渡せば、決まった形の出力を返す。呼ぶ側は、呼んだ相手が何者かを気にせず、入力と出力の形だけを覚えていればよかった。

このやり方は、呼んだ相手が自分自身もエージェントであるときに崩れる。そのエージェントは時間をかけて考え、動き続け、途中の経過を持ち帰ってくる。決まった入力と出力しか持たない呼び出しには、その途中経過や、まだ終わっていないという事実を置く場所が無かった。呼ぶ側は、呼んだ相手をツールとして扱い続けるべきか、対等な相手として扱い直すべきかを、継ぎ目ごとに決めなければならない。決めるには、規約の側がいまどう分かれつつあるのかを知る必要がある。

本稿は、MCP(Model Context Protocol)とA2A(Agent2Agent Protocol)の二つを例に取る。MCPの中核は状態を持たないツールの呼び出しを、A2Aは状態を持つエージェント同士の仕事の受け渡しを扱う12。本稿がこの二つを選んだのは、一方が状態を持たない呼び出しを、もう一方が状態を持つ仕事の受け渡しを扱うという形で境界の取り方が異なり、どちらも設計の考え方を作り手自身が公開の文書に書いていて、読者が原典で確かめられるからである。

問い

エージェントとツール、エージェントどうしをつなぐとき、どの継ぎ目にどちらの規約を当てればよいのか。規約は一つにまとまりつつあるのか、分かれつつあるのか。

要点

エージェントとツール、エージェントどうしをつなぐ規約は、一つの呼び出しの形で両方を扱う方向ではなく、状態を持たないツールの呼び出しと、状態を持つ仕事の受け渡しという二つの境界に分かれて固まりつつある。 規約とは、複数の作り手が同じ形式に従うことで、互いの実装を知らなくてもやり取りできるようにする取り決めを指す。ステートレスとは、一回ごとの呼び出しが単独で完結し、前の呼び出しの記憶に依存しない形を指す。ツール側の規約は2026年7月の版で自らをステートレスと言い切り、エージェント側の規約は自分の強みを状態を持つ協働に置き、両方をAgentic AI Foundationが受け入れている1234。分かれた理由について、A2Aの側は「A2AとMCPの区別は、エージェントが何とやり取りするかで決まる」と書き、ツールには「しばしば状態を持たない」、エージェントには「長いやり取りにわたって状態を保つ」という特徴を挙げる2。本稿はこの二つの特徴を、決まった入力と出力しか持たない呼び出しに状態を保つ仕事が収まらないという境界として読む。代償は、二つの境界をつなぐ橋の安全が、いまはどちらの規約の範囲にも入っていないことである5。この橋を調べた形式的な分析は、規約を組み合わせたときの安全を、アプリケーションの側の後回しにせず、規約自身の中心的な性質として扱うべきだと結ぶ5。

モデル・例示

一回で答えが返るツールと、途中で問い返してくるエージェントを並べる

※ この節の数値は説明のための仮定で、測定値ではありません。

一つのエージェントが、二つの相手に仕事を頼む場面で、呼び出しの形に何が収まり、何が収まらないかを確かめる。

一つ目の相手は、通貨を換算するツールである。エージェントは「100ドルを円に」という依頼を一回送り、ツールは換算した額を一回で返す。ツールは前の依頼を覚えておく必要がなく、呼ぶ側が知っておくべきことは、送る形と返る形だけである。

二つ目の相手は、出張の手配を任された別のエージェントである。このエージェントは便と宿を調べ、途中で「到着が夜になるが、空港の近くの宿でよいか」と問い返してくる。仕事は一回の往復では終わらず、三回の往復を経て、半日後に手配が終わる。そのあいだ依頼した側は、「進行中」や「答え待ち」という知らせを受け取り、問い返しに答える。どこまで進み、何を待っているかという状態を、往復を跨いで誰かが持ち続けなければならない。

二つを並べると、次の三つが分かる。

  1. 一回で答えを返す形だけでは、「まだ終わっていない」「答えを待っている」という状態を表せない。表すには、途中の状態を返せる型を呼び出しに持たせるか、状態を持ち続ける仕事として扱う別の形を使う。
  2. 問い返しや途中経過があるだけでは、相手をツールとして扱えなくなるわけではない。分かれ目は、相手が自分で計画を立て、長いやり取りにわたって状態を保つかどうかにある。
  3. 換算の結果を手配のエージェントへ渡すように二つをつなぐと、ツールの出力がそのまま仕事の入力になる。この受け渡しの場所は、ツールの側の約束にも、仕事を受けるエージェントの側の約束にも入っていない。

MCPとA2Aは別々の開発元から出て、同じ財団に入った

MCPの開発元はAnthropicで、2024年11月25日に公開した。仕様のリポジトリは同年9月24日に作られ、プロジェクトのサイトはMCPを「AIアプリケーションを外部のシステムへつなぐためのオープンソースの標準」と位置づける6。2025年12月9日、AnthropicはMCPをLinux Foundation傘下のAgentic AI Foundationへ提供した。この発表はプラチナ会員としてAmazon Web Services・Anthropic・Block・Bloomberg・Cloudflare・Google・Microsoft・OpenAIを挙げ、「公開されているMCPサーバーは10,000を超える」と書く。GitHubのスター数(関心の指標)は、2026年9月13日時点で仕様のリポジトリが9,193、python-sdkが24,274である3。

A2Aの開発元はGoogleで、2025年4月9日に公開した。リポジトリは同年3月25日に作られ、Googleは同年6月23日にLinux Foundationへ寄贈した7。2026年8月27日にはAgentic AI Foundationが成長段階(Growth Stage)のプロジェクトとして受け入れた4。A2Aの公式サイトは、A2Aを「独立した、しばしば内部の見えないAIエージェントどうしが、対等な相手として通信し協働する方法を標準化する」ものと位置づける2。2026年4月9日のLinux Foundationの発表は「150を超える組織がこの標準を支持している」とし、2025年4月からの一年で支持組織が50を超える数から150を超える数へ増えたと書く。本体のリポジトリは25,743個、a2a-pythonは2,139個のスターを2026年9月13日時点で集めている7。

こうした取り決めはこの二つの外にもある。規約を組み合わせたときの安全を調べた形式的な分析は、MCP、A2A、Agent Network Protocol(ANP)、Agent Communication Protocol(ACP)、Agent Client Protocol(ACP-Client)の五つを対象にしている5。このうちACPは、2025年8月にLinux FoundationのもとでA2Aへ合流すると告知している8。

MCPはセッションを外してステートレスと定め、A2Aは状態を持つ協働を強みと書いた

二つの規約は、同じ問いに別々の答えを出しているのではなく、別の問いに答えている。MCPが向き合うのは、一つのエージェントがツールや資源をどう呼び出すかという境界である。A2Aが向き合うのは、複数のエージェントどうしがどう仕事を渡し合うかという境界である。A2A自身はこの分担を「MCPは垂直である。一つのエージェントを深める」と書き、一つのアプリケーションの中に一つ以上のエージェントを置く形もMCPの側に入れる。「A2Aは水平である」とし、つなぐ相手のエージェントは「別のチーム、別の部署、あるいは提携先の組織」に属しうると書く2。MCP自身は自分の立ち位置を「AIアプリケーションのためのUSB-Cポート」にたとえる6。ポートも、垂直と水平という向きも比喩であって仕様そのものではない。MCPの紹介頁は自分の役割を書くだけで、A2Aとの分担には触れていない。

分担は、規約の文面で固まった。MCPの仕様は、2026年7月28日版でプロトコルの層からセッションを取り除き、「MCPはステートレスなプロトコルである。すべての要求は自己完結し、自分のプロトコル版と能力を運ぶ」と定めた1。この版より前の仕様は接続ごとのセッションを持っていたので、状態を持たないという性格は最初からではなく、この版で言い切られたものである1。呼び出しを跨ぐ状態が要るサーバーは、仕様の定めにより「明示的な、サーバーが発行するハンドルを通常のツール引数として渡す」形で自分たちで運ぶ。中核の規約は状態の入れ物を用意せず、運び方の形だけを定める1。同じ版の中核は、処理の途中で追加の入力が要るとき、サーバーが「入力待ち」の結果を返し、呼ぶ側が答えを添えて同じ要求を送り直す型も定めた1。一方で、長く走る処理のためのtasksは、中核から公式の拡張へ移された。この拡張では、サーバーは処理が終わるまで待たせる代わりにハンドルを返し、呼ぶ側は「進行中」や「入力待ち」といった状態をポーリングで受け取る1。A2Aは逆の側に立ち、「A2Aの主な強みは、典型的なツール呼び出しを超えた、柔軟で状態を持つ協働的なやり取りを支えることにある」と自分で書く2。

A2Aは区別を相手の種類で説明し、本稿はそれを状態を保ち続ける相手かどうかとして読む

分かれた理由を、A2Aの側は「A2AとMCPの区別は、エージェントが何とやり取りするかで決まる」と説明する2。MCPは「AIモデルやエージェントが、ツールやAPI、その他の外部の資源へつながり、やり取りする方法を標準化する」もので、そこで動くのは「典型的には、入力と出力がよく定義され構造化された原始的な操作」であり、それが「特定の、しばしば状態を持たない機能を果たす」2。これに対してA2Aが相手にするのは「より自律したシステム」であり、そこではエージェントが「推論し、計画し、複数のツールを使い」ながら「長いやり取りにわたって状態を保つ」2。Linux Foundationの一年報告も「A2Aは組織の境界を越えてエージェントどうしが通信し協調する方法を定め、MCPはエージェントが内部のツールとデータソースへつながる方法を定める」と自分の言葉で線を引く7。A2Aの側と財団が文書に引く線は、相手がツールかエージェントかという区別である。本稿はこの特徴の差を、呼び出しを跨いで状態を持たない相手と、何ターンにもわたって自分で計画を立て、状態を保ち続ける相手との境界として読む。

分かれ方には、単純さの差が伴う。MCPの側では、呼ぶ側が相手の中身を知らなくてよく、入力と出力の形さえ決めておけば、ツールの中身がどう変わっても呼び出しは壊れない。プロトコルの層は状態を持たないので、呼ぶ側も答える側も、前の呼び出しを覚えている前提に頼らずに済む1。Agentic AI Foundationの発表も、MCPが広く採用された理由として、開発者と企業が「単純な統合の方法、セキュリティの制御、より速い展開」に引き寄せられていることを挙げる3。A2Aの側では、対等な相手として扱うエージェントはA2A自身の言葉で「しばしば内部が見えない」ので2、中身を知らずに信頼する相手を増やすぶん、呼ぶ側が学ぶことも増える。ある開発者による観察は、A2Aが、単純なツールの統合を作りたい個人の開発者にまで「エージェントの発見、能力の交渉、セキュリティカード」の理解を求めた一方、「MCPは単純さと即座に使える実利を選んだ」と書き、「MCPは初日から既存のAIアシスタントで動いた。A2Aは新しいインフラを作ることを求めた」と続ける9。これは測定ではなく実務者による観察であり、本稿もその位置づけで引く9。この観察に対応する数もある。仕様そのものを収めたリポジトリのスターは、MCPが9,193、A2Aが25,743で、A2Aのほうが多い。一方、Python向けのSDKのスターは、MCPのpython-sdkが24,274、A2Aのa2a-pythonが2,139で、順は逆になる37。同じ粒度で並べたこの二組の数は、どちらの規約が優れているかを示すのではなく、開発者の関心が今どこに向いているかを示している。

ただし、先の開発者の記事そのものの結論は、本稿と逆の向きにある。2025年9月の時点で、AIエージェントのエコシステムの大半は「MCPの周りにまとまった」とし、相互に通信し合うエージェントというA2Aの構想も「MCPの上に築かれつつある」と書く9。その後の2026年8月、A2AはAgentic AI Foundationの成長段階のプロジェクトとして受け入れられた4。本稿はこの開発者の結論を、2025年9月時点の一つの読みとして扱う。

二つの境界の間に架かる橋は、どの規約の保証にも入っていない

二つの境界は、規約が言うほど固くない。A2A自身が「A2Aサーバー(遠隔のエージェント)は、いくつかのスキルをMCP互換の資源として公開できる」と認めている2。対等な相手として振る舞うはずのA2Aサーバーが、ツールとして呼ばれる側にも回れるということである。ただし原典は続けて、これが「最もうまく働くのは、スキルがよく定義され、ツールのように状態を持たない形で呼べるとき」だと添える2。どの継ぎ目をどちらの境界として扱うかは、規約の名前ではなく、まず相手がツールか自律したエージェントかで分かれる2。そこを通る仕事が呼び出しを跨ぐ状態を持つ場合も、MCPの側はハンドルやtasksの拡張でそれを運べるので1、その状態をどちらの側に置くかは、システムを組む側が見極める。

組む側が境界の線を引いた先、MCPのツールとA2Aの仕事が接する場所で何が起きるかを、形式的な分析が調べている。五つの規約を仕様から実装まで横断して分析する枠組みは、MCPとA2Aをそれぞれ単独で試した振る舞い上の所見のうち「10件のうち9件が、仕様の水準と実装の水準の両方で再現する」と報告する5。この分析が対象にしたMCPは、セッションを持っていた2025年11月25日版である5。二つをつないだ橋については、モデル検査が一本の流れを反例として見つけた。MCPとA2Aの組は実装の試験に含まれておらず、論文は実際の橋を持たない組の結果をモデルだけのものとしている5。その流れは、汚染から権限の昇格へと進む。「無害化されていないMCPの出力が橋を汚染し、その橋がA2Aの権限を受け手のもとの許可を超えて広げる。そしてこの昇格には完全な監査の記録が無い。橋が両方の局所的な監査の範囲の外にあるからである」5。MCP側のツールが返した値が、そのままA2A側の仕事の権限として運ばれてしまう経路として読める。

責任の所在についての結論も、同じ論文が明確に書いている。「連鎖したMCPサーバー、A2Aのconductor、ACP-Clientエージェント内のMCPのツールのいずれについても、橋の安全に責任を持つ規約はない」。図5を説明する本文は、この状態を「合成は、例外なく持ち主を欠く」とまとめる5。MCPはツールを呼び出す境界の中に、A2Aは仕事を渡す境界の中に自分の保証を置いている。論文は、二つの規約をつなぐ橋や中継、実行環境が、たいていどちらの規約が定める安全の範囲の外にあると書く5。分担が固まるほどその傾きが強まるというのは、本稿の推論である。橋を自分の範囲に入れると書いた規約は、本稿が読んだ文書の中には無い。

出典9件
  1. Model Context Protocol「Architecture」「Key Changes」仕様リビジョン2026-07-28. https://modelcontextprotocol.io/specification/2026-07-28/architecture https://modelcontextprotocol.io/specification/2026-07-28/changelog https://modelcontextprotocol.io/extensions/tasks/overview — MCPをステートレスと定め、セッションを除いて跨ぐ状態はハンドルで渡させる。tasksは公式の拡張へ移り、以前の版はセッションを持っていた。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9

  2. A2A project「A2A and MCP」a2a-protocol.org, 2026. https://a2a-protocol.org/latest/topics/a2a-and-mcp/ — A2A自身の説明。区別は相手が何かで決まるとし、MCPを垂直、A2Aを水平とたとえ、強みを状態を持つ協働に置く。状態の有無を境界と読むのは本稿である。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13

  3. Linux Foundation「Linux Foundation Announces the Formation of the Agentic AI Foundation」プレスリリース, 2025. https://www.linuxfoundation.org/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation — 公開MCPサーバーは1万超とする。スターはGitHubで2026年9月13日に仕様9,193・SDK 24,274。 ↩ ↩2 ↩3 ↩4

  4. A2A project「A New Chapter for A2A: Joining the Agentic AI Foundation」a2a-protocol.org, 2026. https://a2a-protocol.org/latest/blog/2026/08/27/a-new-chapter-for-a2a-joining-the-agentic-ai-foundation/ — 2026年8月27日、A2AがAAIFの成長段階のプロジェクトとして受け入れられたと告げる、A2A自身の告知。 ↩ ↩2 ↩3

  5. Shenghan Zheng ほか「Formal Security Analysis of Agent Protocol Composition」arXiv, 2026. https://arxiv.org/abs/2606.28690 — 五つの規約を分析し、MCPとA2Aの橋の安全に責任を持つ規約はないと結ぶ。橋はモデル検査の結果。対象のMCPはセッションを持つ2025-11-25版。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9

  6. Model Context Protocol「What is the Model Context Protocol (MCP)?」modelcontextprotocol.io, 2026. https://modelcontextprotocol.io/introduction https://www.anthropic.com/news/model-context-protocol — 開発元Anthropicの紹介頁と発表。仕様のリポジトリは2024年9月24日に作られ、公開は同年11月25日。 ↩ ↩2

  7. Linux Foundation「A2A Protocol Surpasses 150 Organizations…in First Year」プレスリリース, 2026. https://www.linuxfoundation.org/press/a2a-protocol-surpasses-150-organizations-lands-in-major-cloud-platforms-and-sees-enterprise-production-use-in-first-year https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/ https://www.linuxfoundation.org/press/linux-foundation-launches-the-agent2agent-protocol-project-to-enable-secure-intelligent-communication-between-ai-agents — 一年報告で支持組織は50超から150超へ。公開日はGoogle、寄贈日は財団の各発表。作成日とスターは2026年9月13日のGitHubの値。 ↩ ↩2 ↩3 ↩4

  8. BeeAI (i-am-bee)「ACP Joins Forces with A2A Under the Linux Foundation」GitHub, 2025. https://github.com/orgs/i-am-bee/discussions/5 — ACPを開発してきた側が、2025年8月25日にLinux FoundationのもとでA2Aへの合流を告げた。 ↩

  9. Fatih Kadir Akın「What happened to Google’s A2A?」blog.fka.dev, 2025. https://blog.fka.dev/blog/2025-09-11-what-happened-to-googles-a2a/ — Automatticに勤めGitHub Starに選ばれた著者による2025年9月11日の観察で、測定ではない。MCPは単純さを選び勝ったとし、本稿とは逆の結論を書く。 ↩ ↩2 ↩3

この記事はAIを使用して執筆されました。内容には誤りが含まれる可能性があります。事実や数字の出典は脚注から確かめられます。