项目简介

这是一个基于 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 包管理器。

  1. 克隆仓库到本地:
    git clone https://github.com/regismesquita/MCP_A2A.git
    cd MCP_A2A
  2. 安装项目及其依赖:
    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 服务器启动并连接到客户端后,客户端即可调用服务器提供的工具。典型的交互流程如下:

  1. 注册 A2A 服务器: 客户端调用 'a2a_server_registry' 工具,提供 A2A 服务器的名称和 URL 来注册。例如:
    {
      "action": "add",
      "name": "my_agent_server",
      "url": "http://localhost:8000"
    }
  2. 列出可用代理: 客户端调用 'list_agents' 工具,获取已注册 A2A 服务器上的代理列表及其能力信息。
    {}
  3. 调用代理: 客户端调用 'call_agent' 工具,指定要调用的代理名称和发送给代理的 Prompt 内容。
    {
      "agent_name": "my_agent",
      "prompt": "请帮我总结这份文档..."
    }

服务器将处理这些请求,与后端的 A2A 服务器通信,并将结果通过 MCP 协议返回给客户端。

信息

分类

AI与计算