作为 Agent-to-Agent(A2A)协议客户端的 MCP 服务器,允许大型语言模型通过模型上下文协议(MCP)与 A2A 代理进行交互。
# 全局安装
npm install -g a2a-client-mcp-server
# 或者使用 npx 直接运行
npx a2a-client-mcp-server
A2A_ENDPOINT_URL: 要连接的 A2A 代理的 URL(默认值:"http://localhost:41241")在你的 claude_desktop_config.json 中添加以下内容:
npm run build
npm link
{
"mcpServers": {
"a2a-client": {
"command": "npx",
"args": ["-y", "a2a-client-mcp-server"],
"env": {
"A2A_ENDPOINT_URL": "http://localhost:41241"
}
}
}
}
构建 Docker 镜像:
docker build -t a2a-client-mcp-server .
配置 Claude Desktop:
{
"mcpServers": {
"a2a-client": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"A2A_ENDPOINT_URL",
"a2a-client-mcp-server"
],
"env": {
"A2A_ENDPOINT_URL": "http://localhost:41241"
}
}
}
}
向 A2A 代理发送任务
message (字符串): 发送给代理的消息taskId (字符串, 可选): 任务ID(如果没有提供则生成)获取任务的当前状态
taskId (字符串): 要检索的任务ID取消正在运行的任务
taskId (字符串): 要取消的任务ID发送任务并订阅更新(流式)
message (字符串): 发送给代理的消息taskId (字符串, 可选): 任务ID(如果没有提供则生成)maxUpdates (数字, 可选): 接收的最大更新数(默认值:110)获取有关已连接 A2A 代理的信息
该服务器提供了对两个 MCP 资源的访问:
a2a://agent-card: 关于已连接 A2A 代理的信息a2a://tasks: 最近的 A2A 任务列表此示例展示了如何使用 A2A 客户端 MCP 服务器与编码代理进行交互:
首先,让我探索一下我们连接的是哪个 A2A 代理。
我将使用 a2a_agent_info 工具来检查代理详情。
代理提供了一个基于自然语言指令生成文件的编码服务。让我们创建一个简单的 Python 脚本。
我将使用 a2a_send_task 工具发送请求:
任务: "创建一个计算斐波那契数列的 Python 函数"
现在我可以使用 a2a_get_task 和上一个响应中的任务ID来检查任务状态。
代理已经创建了请求的 Python 代码。我现在可以检索并使用这段代码在我的项目中。
# 安装依赖
npm install
# 构建项目
npm run build
# 在开发模式下运行
npm run watch
MIT