現在、AIエージェントを活用してチームを構築しているすべてのチームで、今まさに議論が起きています:MCPか、A2Aか?
良い議論です。両方のプロトコルは現実的で、よく定義され、ますます広くサポートされています。しかし、枠組みは不完全です。会話は2つの層—エージェントがツールにアクセスする方法とエージェント同士の対話方法—を扱い、3番目の層を完全に抜け落としています。それは、エージェントが人間とどのように対話するかです。
MCP: ツール層
Anthropicが開発したModel Context Protocolは、エージェントが外部リソースへアクセスする標準化された方法です。ツールをMCPサーバとして公開し、MCP互換のエージェントがそれを使用できます。
流れはシンプルです:
# An MCP server exposes tools in a standard format
# The agent discovers available tools, then calls one:
POST /mcp/call
{
"tool": "query_database",
"input": {
"query": "SELECT * FROM orders WHERE status = 'pending' LIMIT 10"
}
}
MCPサーバは認証を処理し、入力を検証し、クエリを実行し、構造化された出力を返します。エージェントはデータベースについて何も知る必要はなく、ツール契約だけを知っていればよいのです。
これは本当に有用です。エコシステムは成長しています。もし今日エージェントを構築していてMCPをまだ見ていないのなら、おそらく自分で手動でそれを再発明しようとしていることでしょう。
What MCP doesn't cover: it's synchronous request/response. The agent calls, the tool answers. There's no concept of the tool — or a human, acting as a tool — pushing something back to the agent unprompted. MCP is the agent's outbound interface to the world.
A2A: 協調層
Agent-to-Agent protocol, led by Google, handles how agents collaborate with each other. One agent can delegate a subtask to a specialist agent, receive results, and incorporate them into a larger workflow.
The core mechanism is the Agent Card — a self-description that each agent publishes: what it can do, what protocols it speaks, what kinds of requests it accepts. Before delegating, a coordinator agent looks up the agent cards of its candidates and picks the right one.
# A coordinator agent delegates a research subtask to a specialist
import requests
# 1. Discover the research agent
agent_card = requests.get"..."



