A2A と MCP: 新たなエージェントエコシステムのための 2 つの補完的プロトコル
この記事では、AI エージェントシステムの未来を形作る 2 つの新たなプロトコル、A2A と MCP を紹介します。それらがどのように機能するのか、どのように異なるのか、なぜ開発者、デザイナー、AI プロダクトビルダーにとってそのアーキテクチャを理解することが重要なのかを説明します。
この記事では、AI エージェントシステムの未来を形作る 2 つの新たなプロトコル、A2A と MCP を紹介します。それらがどのように機能するのか、どのように異なるのか、なぜ開発者、デザイナー、AI プロダクトビルダーにとってそのアーキテクチャを理解することが重要なのかを説明します。
AI エージェント — ユーザーに代わって推論と行動を行う自律的または半自律的なソフトウェアエンティティ — の採用が増えることで、アプリケーションアーキテクチャの新しい層が生まれつつあります。
2025年初頭、これに対処するために 2 つの異なるプロトコルが登場しました。A2A (Agent-to-Agent) と MCP (Model Context Protocol) です。その役割を理解するための簡単な方法は次のとおりです:
A2A: エージェント同士がどのように相互作用するか
MCP: エージェントがツールや外部コンテキストとどのように相互作用するか
reference: https://google.github.io/A2A/#/topics/a2a_and_mcp
これらは、複数のエージェント、複数の LLM、および複数のコンテキストソース が一緒に協力する必要があるシステム構築の根本的な課題に対処するものです。
これを「MCP は垂直統合 (アプリケーションからモデルへ) を、A2A は水平統合 (エージェントからエージェントへ) を提供します」と表現することができます。
あなたがデベロッパーであるかどうかにかかわらず、AI プロダクトやエージェンティックシステムを構築する誰もがその基礎となるアーキテクチャを理解するべきです。なぜなら、それが製品の設計、ユーザーインタラクション、エコシステム、長期的な成長を形作るからです。
この記事では、デベロッパーや AI プロダクトビルダーのために、これらのプロトコルを簡単かつ理解しやすく紹介し、重要なポイントを強調しています。
A2A (Agent-to-Agent) は Google と 50 を超える業界パートナーによって開発されたオープンプロトコルです。その目的は、エージェント間の相互運用性 を可能にすることです。誰がそれを構築したか、どこにホストされているか、どんなフレームワークを使用しているかに関係なくです。
A2A は、通信メカニズムとして JSON-RPC 2.0 over HTTP(S) を使用し、**Server-Sent Events (SSE)**をサポートして更新をストリームします。
A2A は、2 つのエージェントがどのように相互作用するかの構造化されたモデルを定義します。1 つのエージェントが “クライアント”エージェント の役割を果たし、リクエストやタスクを開始し、もう 1 つが “リモート”エージェント としてリクエストを受け取り、実行しようとします。クライアントエージェントは最初に 能力の発見 を行い、どのエージェントが特定の仕事に最も適しているかを判断します。
では、エージェントはどのようにお互いを発見するのでしょうか。各エージェントは、自身の能力、スキル、API エンドポイント、認証要件を記述した エージェントカード (通常は /.well-known/agent.json のような標準 URL にホストされる JSON メタデータドキュメント) を公開することができます。
エージェントカードを読むことで、クライアントエージェントは、そのタスクに適したパートナーエージェントを特定でき、エージェントが知っていることやできることのディレクトリのようなものになります。一度目標となるエージェントが選ばれると、クライアントエージェントは タスク オブジェクトを送信するために作成します。
reference: https://google.github.io/A2A/#/
A2A のすべての相互作用は、タスクを実行することを中心に構築されています。タスクは、リクエストの詳細を含み、その状態を追跡する構造化されたオブジェクト (プロトコルのスキーマで定義) です。
A2A では、それぞれのエージェントが以下の 2 つの役割のどちらかを担います:
タスクには、レポートの生成、データの取得、ワークフローの開始など、あらゆる形態の作業を含めることができます。結果は アーティファクト として返され、エージェントは実行中の調整や明確化のために構造化された メッセージ を送信できます。
A2A は単純なタスク要求以上のものをサポートします。エージェントはテキスト、JSON、画像、ビデオ、またはインタラクティブコンテンツを含む リッチで多パートなメッセージ を交換できます。これにより、各エージェントが処理または表示できる形式に基づいた 形式交渉が可能になります。
たとえば、リモートエージェントはグラフを生データとしてまたは画像として返すことができ、または対話型のフォームを開くように要求することができます。このデザインは柔軟で、モダリティに依存しない通信をサポートするものであり、エージェントが内部ツールやメモリを共有する必要がありません。
ここでは、A2A が企業シナリオでどのように使用されるかの 実際の例 を示します:
大企業で新しい従業員が雇用されています。複数のシステムと部門がオンボーディングに関与しています:
従来、これらのステップは手動で処理されるか、内部システム間の密接に結合された統合を通じて処理されていました。
システムごとにカスタム API を作成する代わりに、各部門が A2A プロトコルを使用して独自のエージェントを公開します:
| エージェント | 責任 |
|---|---|
| hr-agent.company.com | 従業員記録の作成、文書の送信 |
| it-agent.company.com | メールアカウントの作成、ラップトップの発注 |
| facilities-agent.company.com | デスクの割り当て、アクセスバッジの印刷 |
複数のエージェントシステム — 例として OnboardingPro (例: onboarding-agent.company.com) — がオンボーディングワークフロー全体を調整します。
.well-known/agent.json を読み取り、能力と認証を理解します。createEmployee タスクを送信します。setupEmailAccount と orderHardware を送信します。assignDesk と generateBadge を送信します。MCP (Model Context Protocol) は、Anthropic によって開発され、外部アプリケーションがランタイムで言語モデルベースのエージェントに 構造化されたコンテキストとツール を提供する方法を解決します。
エージェント間の通信を促進するのではなく、MCP は コンテキストウィンドウ — LLM の作業メモリに焦点を当てています。その目標は:
MCP を理解するには、まず全体的なアーキテクチャ — すべての部分が一緒になってどのように機能するかを理解する必要があります。
MCP ホスト を AI アプリそのものと考えてください — Claude Desktop やあなたのコーディングアシスタントのようなものです。
それは、あなたが使用しているインターフェースであり — あなたがタイプまたは会話をする場所です。
モデルがより良い回答をするのを助けるために、ツールとデータを引き込もうと しています。
MCP クライアント は、あなたの AI ホスト (たとえば Claude) と外部世界とをつなぐソフトウェア部分です。それはスイッチボードのようなもので — それは異なる MCP サーバーと安全で 一対一 の接続を管理します。AI が何かにアクセスしたいとき、それはクライアントを通じて行います。
ChatGPT、Claude chat、または Cursor IDE のようなツールを MCP ホスト として考えると役立ちます — それらはあなたがインタラクトするインターフェースを提供します。舞台裏では、それらは MCP クライアント を使用して MCP サーバーを通じて異なるツールやデータソースに接続します。
refrence: https://modelcontextprotocol.io/introduction
MCP サーバー は、1 つの特定のツールまたは機能を公開する小さく焦点を当てたプログラムです — 例えば:
各サーバーは MCP プロトコルに従っており、AI がその能力と呼び出し方法を理解することができます。
一部の MCP サーバーは、自分のマシン上のものに接続します — 例えば:
これにより、AI はデータをクラウドにアップロードせずに、検索、取得、または計算することができます。
他の MCP サーバーはインターネットに接続されています — それらは次のようなものと通信します:
したがって、AI はたとえば「GitHub サーバーを呼び出して、オープン PR のリストを取得してください」と言うことができます。
MCP は現在、リモート MCP サーバーへの接続 をサポートしています。これは、MCP クライアントが より強力な能力 を獲得できることを意味します。理論上、
適切なセットの MCP サーバーを使用すると、ユーザーはすべての MCP クライアントを「すべてのアプリ」にすることができます。
reference: https://a16z.com/a-deep-dive-into-mcp-and-the-future-of-ai-tooling/
では、すべての動作を図を使って見てみましょう。
| カテゴリー | A2A (Agent-to-Agent) | MCP (Model Context Protocol) |
|---|---|---|
| 主な目的 | エージェント間のタスク交換を可能にする | LLM が外部ツールやコンテキストにアクセスできるようにする |
| 対象 | 自律的エージェント間のコミュニケーション | 推論中の単一エージェントの能力強化 |
| 焦点 | マルチエージェントワークフロー、調整、委任 | 動的なツールの使用、コンテキストの拡充 |
| 実行モデル | エージェントがタスクとアーティファクトを送受信する | LLM が推論中にインラインでツールを選択して実行する |
| セキュリティ | OAuth 2.0、API キー、宣言的スコープ | アプリケーション統合レイヤーで処理 |
| 開発者の役割 | エンドポイントを通じてタスクとアーティファクトを公開するエージェントを構築する | モデルが使用できる構造化されたツールとコンテキストを定義する |
| エコシステムパートナー | Google、Salesforce、SAP、LangChain など | Anthropic、ツールベースの LLM UI での新たな採用 |
A2A と MCP は互いに補完的 です。多くのシステムでは、両方が一緒に使用されます。
このアーキテクチャは エージェント間のコミュニケーション (A2A) と エージェント内の能力の呼び出し (MCP) を分離し、システムを簡単に構成、拡張、セキュリティ確保します。
A2A は エージェントがネットワーク越しに他のエージェントと話すこと に関するものです — 安全に、非同期で、タスク中心に。
MCP は モデルセッションに構造化された能力を注入すること に関するもので、LLM がコンテキストに基づいてツールやデータを推論することができます。
一緒に使用することで、拡張可能で相互運用性のある多エージェントシステム をサポートします。
最後に、このコア技術基盤が AI 市場の未来をどのように形作るか、そして AI 製品を構築する人々にとって何を意味するかについて話したいと思います。
この変化の明確な例は、開発者とサービスのワークフローに見られます。MCP サーバーが IDE やコーディングエージェントに統合されることで、開発者がツールとやり取りする方法が基本的に変わりつつあります。
以前は、典型的なワークフローは、適切なサービスを検索し、ホスティングを設定し、ドキュメントを読み込み、API を手動で統合し、IDE でコードを書き、ローコードダッシュボードを通じて機能を構成するものでした。これは分散した体験であり、各ステップでコンテキストスイッチングと技術的なオーバーヘッドを伴っていました。
現在、MCP に接続されたコーディングエージェントを使用することで、その複雑さの多くを抽象化できます。開発者は、会話のプロンプトを通じてツールをより自然に発見し、使用できます。API の統合は、コーディングフロー自体の一部となり、通常は別の UI や手動の設定を必要としません。(ちょうど AWS やマイクロソフトのダッシュボードがどれほど複雑であるかを考えてみてください。) インタラクションはよりスムーズになり — 機能を組み立てるというよりは、動作をガイドするものです。
このモデルでは、ユーザーまたは開発者のインタラクションが機能の構成から行動のオーケストレーションにシフトします。これにより、プロダクトデザインの役割も変わります。
UI を使用して技術的な課題を「補う」 (例えば、「これはコード化が難しいので、設定パネルを作ろう」) のではなく、次のことを考える必要があります:
課題は、AI とユーザーの入力がどのタイミングで結びつくべきかを決定し、適切なインタラクションを適切なタイミングで挿入し、AI がロジックを処理し、意図やフローを通じてユーザーをガイドすることです。
私は、開発者サービスと API 製品を例に挙げてユーザーインタラクションがどのように変わるかを示しましたが、同じことがビジネスソフトウェアにも当てはまります。長い間、ビジネスツールは複雑で使いにくいものでした。自然言語インタラクションは多くのワークフローを簡素化する可能性を秘めています。
私たちは、MCP サーバー の増加を目にし始めています。Airbnb が 予約 MCP サーバー を提供したり、Google Maps が 地図 MCP サーバー を公開することを想像してみてください。
エージェント (MCP クライアントとして) は、これらのサーバーに同時に接続し、以前はカスタム統合やしっかりと結びついたアプリが必要だったワークフローをアンロックできます。
SaaS 時代では、統合は手動であったり固定的であることが多かったのに対して、このモデルはより自律的なワークフローと サービス間のフルードな接続 を可能にします。次の 2 つの例を挙げます:
ドキュメントからのデザイン
あなたは Notion で PRD を書きます。Figma エージェントがそのドキュメントを読み取り、コアコンセプトをレイアウトしたワイヤーフレームを自動的に作成します — 手動の引き渡しは必要ありません。
エンドツーエンドの競合分析
あなたが競合分析を依頼します。一連のエージェントがウェブを検索し (安全な認証を使用して)関連するサービスにサインアップし、結果を収集し、それを整理して Notion ワークスペースに戻します。
エージェント間の接続の増加と MCP クライアントから MCP サーバーへの接続の増加に伴い、エージェントが人間やユーザーの代わりに行動し、資格情報がこの旅を通じて安全に保持されなければならないため、認証と認可に関する多くの基礎的なニーズがあります。
これまでのところ、エージェント間の接続と MCP の新たな出現に固有のシナリオがいくつかあります。
興味深いユースケースの 1 つは、Google によって言及された多重アイデンティティ連合(Google)です。
たとえば、ユーザー U が A エージェントとともに作業しており、A システムの識別子を必要としています。その場合、エージェント A はツール B またはエージェント B に依存しており、それが B システムの識別子を要求する場合、ユーザーは A システムと B システムの識別子を単一のリクエストで提供する必要があるかもしれません。(A システムは企業の LDAP アイデンティティであり、B システムは SaaS プロバイダーのアイデンティティであると仮定します)。
Logto は、AI 統合の未来に適した OIDC および OAuth プロバイダーです。
柔軟なインフラストラクチャを備えており、その機能を積極的に拡張しています。また、開発者が迅速に始められるように一連のチュートリアルを公開しています。
質問がありますか?
お問い合わせ — または Logto を使用して何が構築できるかを探ってください。