MCP 与 A2A:选择正确的 AI 代理协议
MCP 将 AI 模型连接到工具。 A2A 将 AI 代理相互连接起来。 比较架构、身份验证、消息格式和采用情况以选择正确的协议。
您的 AI 代理需要调用 DNS 查找 API。 它还需要将研究任务移交给另一台服务器上的单独代理。 这是两个不同的问题,业界构建了两种不同的协议来解决它们: MCP (模型上下文协议)来自 Anthropic 和 A2A (代理对代理)来自 Google。
开发人员不断询问选择哪一个。 答案:他们解决不同的问题。 MCP 将模型连接到工具。 A2A 将代理与代理连接起来。 本指南详细介绍了每个协议的架构、消息格式、身份验证模型和采用情况,以便您可以为您的系统做出正确的调用。
60 秒内MCP
MCP 是一种开放协议,允许 AI 模型访问外部工具和数据。 将其视为 AI 的 USB-C 端口:一个标准接口,多种工具。 该模型发送一个 JSON-RPC 请求,描述要调用哪个工具以及使用哪些参数。 MCP 服务器执行该工具并返回结构化数据。
以下是 MCP 工具在线调用的样子:
// MCP tool call: model asks the server to execute a tool
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "lookup_dns",
"arguments": {
"domain": "stripe.com",
"type": "MX"
}
},
"id": 1
}
// MCP tool result: server returns structured data
{
"jsonrpc": "2.0",
"result": {
"content": [
{
"type": "text",
"text": "{\"domain\":\"stripe.com\",\"type\":\"MX\",\"records\":[{\"priority\":1,\"value\":\"aspmx.l.google.com\",\"ttl\":300}]}"
}
]
},
"id": 1
}
该模型从不直接接触网络。 它描述意图(“查找 stripe.com 的 MX 记录”),并且 MCP 服务器处理执行。 这可以使模型保持沙箱状态,同时允许其访问真实世界的数据。
Botoi 在以下位置运行 MCP 服务器: api.botoi.com/mcp 拥有 49 个开发者工具。 在一行中将其连接到 Claude、Cursor 或 VS Code:
# Connect botoi's 49 tools via MCP in one command
claude mcp add botoi --transport streamable-http https://api.botoi.com/mcp
# Now your agent can call tools like:
# lookup_dns, lookup_whois, ssl_check, jwt_sign,
# pii_detect, email_validate, hash, uuid_generate,
# json_format, base64_encode, and 39 more
60 秒内 A2A
A2A 是一种用于代理间通信的开放协议。 MCP 将模型连接到工具,而 A2A 将代理连接到其他代理。 每个代理都会在众所周知的 URL 上发布一张“代理卡”,描述其技能、能力和身份验证要求。 其他特工发现这张卡并发送任务。
这是一张代理卡:
// A2A Agent Card: published at /.well-known/agent.json
{
"name": "invoice-processor",
"description": "Extracts line items from PDF invoices and returns structured data",
"url": "https://agents.example.com/invoice",
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false
},
"skills": [
{
"id": "extract-invoice",
"name": "Extract Invoice Data",
"description": "Parses a PDF invoice and returns line items as JSON"
}
],
"authentication": {
"schemes": ["bearer"]
}
}
以下是一个代理将任务发送给另一个代理的方式:
// A2A task/send: one agent asks another to do work
{
"jsonrpc": "2.0",
"method": "tasks/send",
"params": {
"id": "task-abc-123",
"message": {
"role": "user",
"parts": [
{
"type": "text",
"text": "Extract line items from this invoice PDF"
},
{
"type": "file",
"mimeType": "application/pdf",
"uri": "https://storage.example.com/invoices/2026-march.pdf"
}
]
}
},
"id": 2
}
与 MCP 的主要区别:A2A 任务是不透明的。 呼叫代理不知道或控制接收代理如何完成工作。 它可以使用 MCP 工具,通过 A2A 调用其他代理,或运行专有逻辑。 A2A 定义了代理之间的契约,而不是模型和工具之间的契约。
对照表
| 方面 | MCP(模型上下文协议) | A2A(代理对代理) |
|---|---|---|
| 创建者: | 人择(2024 年 11 月) | 谷歌(2025 年 4 月) |
| 核心目的 | 将 AI 模型连接到工具和数据 | 将 AI 代理相互连接 |
| 沟通模式 | 模型调用工具,得到结果 | 代理将任务委托给代理 |
| 接线格式 | JSON-RPC 2.0 | JSON-RPC 2.0 |
| 运输 | stdio(本地)、可流式 HTTP(远程) | HTTPS |
| 发现 | 服务器通过以下方式公开工具列表 tools/list |
代理发布代理卡于 /.well-known/agent.json |
| 认证模型 | 服务器定义(API 密钥、OAuth、无) | 代理卡声明方案(承载、OAuth 2.0、API 密钥) |
| 流媒体 | 服务器发送的工具结果事件 | 服务器发送的任务更新事件 |
| 状态性 | 无状态或基于会话 | 任务生命周期(已提交、正在运行、已完成、失败) |
| 多式联运 | 基于文本的工具结果 | 消息部分中的文本、文件、图像、结构化数据 |
| 执行范围 | 具有定义的输入/输出的单个工具调用 | 开放式任务; 代理决定如何完成它 |
架构:它们如何组合在一起
MCP运行在工具层。 A2A 在编排层运行。 在多代理系统中,协调器使用 A2A 将任务委托给专家代理。 每个专家都使用 MCP 来访问其工具。
Orchestrator Agent (A2A client)
|
|-- A2A task/send --> Research Agent
| |-- MCP tools/call --> lookup_dns
| |-- MCP tools/call --> lookup_whois
| |-- MCP tools/call --> ssl_check
|
|-- A2A task/send --> Compliance Agent
| |-- MCP tools/call --> pii_detect
| |-- MCP tools/call --> email_validate
|
|-- A2A task/send --> Report Agent
|-- MCP tools/call --> markdown_to_html
|-- MCP tools/call --> pdf_from_html
Orchestrator 代理收到诸如“审核 example.com 的安全状况”之类的请求。 它将其分解为子任务并通过 A2A 委派它们:一个代理研究 DNS 和 SSL,另一个代理检查 PII 暴露,第三个代理编译报告。 每个代理都使用 MCP 来调用其所需的特定工具。
MCP 和 A2A 不竞争。 MCP 回答“我的代理如何使用工具?” A2A 回答“我的代理如何相互交谈?” 大多数生产多代理系统都需要两者。
何时使用 MCP
- 您的 AI 模型需要调用 API、查询数据库或读取文件
- 您需要一个能够访问许多工具的代理(例如 Botoi MCP 服务器上的 49 个工具)
- 您需要具有定义的输入/输出模式的确定性工具调用
- 您正在单一信任边界内进行构建; 模型和工具属于同一系统
- 您需要广泛的客户端支持:Claude Desktop、Claude Code、Cursor、VS Code、Windsurf 和 ChatGPT 都支持 MCP
何时使用 A2A
- 您有多个代理需要相互委派工作
- 代理跨越组织边界(您的代理与供应商的代理交谈)
- 任务是开放式的; 呼叫代理没有规定工作如何完成
- 您需要一个具有状态跟踪功能的任务生命周期(已提交、正在工作、已完成、失败)
- 代理交换丰富的内容:文件、图像和结构化数据,而不是工具参数
身份验证和信任模型
MCP 有一个简单的身份验证故事。 MCP 服务器决定自己的身份验证。 某些服务器不需要身份验证(本地文件系统访问)。 其他则需要 API 密钥或 OAuth 令牌。 客户端在标头中传递凭据。 没有协议级别的身份验证协商。
A2A 将身份验证构建到发现层中。 每个代理卡都声明其支持的身份验证方案。 呼叫代理读取卡、选择方案并在发送任务之前进行身份验证。 这非常适合代理需要在运行时协商信任的跨组织场景。
对于 Botoi MCP 服务器,匿名访问为您提供每分钟 5 个请求和每天 100 个请求。 在中添加 API 密钥 Authorization 更高限制的标题:
{
"mcpServers": {
"botoi": {
"type": "streamable-http",
"url": "https://api.botoi.com/mcp"
}
}
}
2026 年收养
MCP 拥有领先优势。 Anthropic 于 2024 年 11 月发布了 MCP,到 2026 年初,每个主要的 AI 编码助手都支持它。 Claude Desktop、Claude Code、Cursor、VS Code (GitHub Copilot)、Windsurf 和 ChatGPT 均充当 MCP 客户端。 该生态系统拥有数千台 MCP 服务器,涵盖数据库、API、文件系统、浏览器和开发人员工具。
A2A 较新。 Google 于 2025 年 4 月发布了该规范。在多代理编排至关重要的企业环境中,其采用率正在不断增长:供应链自动化、文档处理管道以及具有专业代理的客户服务系统。 代理卡发现机制使构建代理市场和目录变得更加容易。
如果您现在正在构建单代理工具调用系统,MCP 拥有生态系统。 如果您正在构建多代理编排,A2A 可以提供您所需的协调层。
具体的 MCP 示例:botoi 的 49 个工具
Botoi 的 MCP 服务器位于 api.botoi.com/mcp 显示 MCP 在生产中的样子。 它公开了 5 个类别的 49 个精选开发人员工具:
| 类别 | 数数 | 示例工具 |
|---|---|---|
| 抬头 | 12 | dns_lookup、whois_lookup、ssl_check、电子邮件_验证、技术_检测 |
| 文本和数据 | 10 | json_format、base64_encode、csv_to_json、markdown_to_html |
| 开发商 | 12 | jwt_sign、uuid_generate、哈希、cron_describe、regex_test |
| 安全 | 5 | aes_crypt、pii_detect、totp_generate、credit_card_validate |
| 转换 | 5 | minify_js、sql_format、code_format、json_to_typescript |
该服务器使用 Streamable HTTP 传输,在边缘的 Cloudflare Workers 上运行,除了单行设置之外,还需要零配置。 每个工具都有一个类型化的输入模式并返回结构化的 JSON。 完整的工具清单位于 api.botoi.com/v1/mcp/tools.json。
这就是 MCP 的核心:一台服务器、许多工具、结构化 I/O 以及任何兼容客户端都可以连接的标准协议。
决策框架
问这三个问题:
- 你的AI模型需要调用外部工具吗? 使用MCP。 连接到 MCP 服务器(或构建您自己的服务器),您的模型将获得结构化工具访问权限。
- 您是否有多个代理需要协作? 使用A2A。 发布代理卡、发送任务并跟踪其生命周期。
- 你两者都有吗? 两者都用。 A2A在编排层,MCP在工具层。 它们在不同的层面上运作,并不冲突。
选择不是 MCP 或 A2A。 它是 MCP、A2A 或 MCP + A2A,具体取决于系统的复杂性。 如果您需要工具访问权限,请从 MCP 开始。 当您需要代理协调时添加 A2A。
开始使用 MCP
通过 Botoi MCP 服务器将您的 AI 助手连接到 49 个开发者工具。 检查 MCP 设置文档 用于 Claude Desktop、Claude Code、Cursor、VS Code 和 Windsurf 的配置。 浏览 API文档 查看 MCP 服务器背后 150 多个端点的完整列表。
FAQ
- MCP 和 A2A 有什么区别?
- MCP(模型上下文协议)将 AI 模型连接到外部工具和数据源。 A2A(Agent-to-Agent)将独立的 AI 代理相互连接起来,以便它们可以委派任务、交换结果和协作。 MCP解决工具访问问题。 A2A解决代理协调。 它们针对人工智能系统的不同层,并且可以一起运行。
- MCP和A2A可以在同一个系统中协同工作吗?
- 是的。 常见模式使用 A2A 在编排层进行代理间通信,而每个代理使用 MCP 访问自己的工具和数据源。 协调器代理通过 A2A 委派任务。 专业代理通过调用 MCP 工具来执行这些任务。 这两个协议在不同的层运行并且不冲突。
- 我应该为我的人工智能应用程序选择哪种协议?
- 如果您的AI模型需要调用外部API、查询数据库或读取文件,请使用MCP。 如果您有多个 AI 代理,需要跨团队或组织边界相互委派工作,请使用 A2A。 大多数超越单一代理的生产系统最终都会同时使用这两种代理。
- MCP 仅适用于 Anthropic 模型,A2A 仅适用于 Google 模型吗?
- 不。两者都是开放协议。 MCP 可与 Claude、GPT、Gemini、Llama 以及任何支持工具调用的模型配合使用。 A2A 适用于任何代理运行时,无论底层模型如何。 Anthropic 创建了 MCP,Google 创建了 A2A,但这两个协议都没有被其创建者锁定。
- 每个协议使用什么传输?
- MCP 支持本地工具服务器的 stdio 和远程服务器的 Streamable HTTP (JSON-RPC 2.0)。 A2A 使用 HTTPS 和 JSON-RPC 2.0 进行所有通信。 两种协议都依赖 JSON 进行消息格式化。 MCP 还支持服务器发送事件以流式传输工具结果。
开始使用 botoi 构建
150+ 个 API 端点,涵盖查询、文本处理、图片生成和开发者工具。免费套餐,无需信用卡。