项目简介
这是一个基于 Model Context Protocol (MCP) 实现的服务器,旨在作为 MCP 客户端(如 Claude Desktop)与使用 A2A (Agent-to-Agent) 协议构建的代理之间的桥梁。它允许 MCP 客户端通过标准的工具调用方式,注册 A2A 服务器、发现其上的代理以及与这些代理进行通信,从而扩展 MCP 客户端的能力。
主要功能点
- 管理 A2A 服务器地址: 提供工具用于添加或移除 MCP 服务器需要与之通信的 A2A 服务器的网络地址。
- 列出可用代理: 通过工具查询已注册的 A2A 服务器,获取并列出其上托管的所有代理及其基本能力信息。
- 调用 A2A 代理: 提供工具,允许 MCP 客户端向指定的 A2A 代理发送文本请求(Prompt),并接收代理执行任务后返回的结果。
安装步骤
本项目是一个标准的 Python 包。你需要确保你的系统中已安装 Python 3.8 或更高版本以及 pip 包管理器。
- 克隆仓库到本地:
git clone https://github.com/regismesquita/MCP_A2A.git cd MCP_A2A - 安装项目及其依赖:
或者,如果你想安装到特定环境中,可以使用虚拟环境:pip install .python -m venv venv source venv/bin/activate # 在 Windows 上使用 'venv\Scripts\activate' pip install .
安装完成后,即可通过 Python 的模块执行命令来启动服务器。
服务器配置 (供 MCP 客户端使用)
为了让 MCP 客户端(例如 Claude Desktop)能够连接并使用此服务器,你需要在客户端的 MCP 服务器配置中添加一个新的服务器。配置通常包含以下信息:
- 服务器名称: 自定义一个易于识别的名称,例如 "A2A Bridge" 或 "我的A2A代理连接"。
- 启动命令 (command): 'python'
- 命令参数 (args): '-m a2a_mcp_server'
- 工作目录 (cwd): 通常可以留空或设置为项目的根目录。
MCP 客户端会使用指定的命令和参数来启动这个 Python 模块,并建立基于标准输入/输出的 JSON-RPC 通信。
基本使用方法
MCP 服务器启动并连接到客户端后,客户端即可调用服务器提供的工具。典型的交互流程如下:
- 注册 A2A 服务器: 客户端调用 'a2a_server_registry' 工具,提供 A2A 服务器的名称和 URL 来注册。例如:
{ "action": "add", "name": "my_agent_server", "url": "http://localhost:8000" } - 列出可用代理: 客户端调用 'list_agents' 工具,获取已注册 A2A 服务器上的代理列表及其能力信息。
{} - 调用代理: 客户端调用 'call_agent' 工具,指定要调用的代理名称和发送给代理的 Prompt 内容。
{ "agent_name": "my_agent", "prompt": "请帮我总结这份文档..." }
服务器将处理这些请求,与后端的 A2A 服务器通信,并将结果通过 MCP 协议返回给客户端。
信息
分类
AI与计算