代理间通信桥接服务

通过标准化桥接服务器实现Claude Code与Gemini CLI之间的代理间通信,支持MCP与A2A协议转换,具备持久化存储、实时通信和任务管理功能。

  • by Mgabr90
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 mgabr90/a2a-bridge-mcp

使用说明

A2A-MCP大桥项目

该项目通过在模型上下文协议(MCP)和A2A协议之间进行转换的标准化网桥服务器,实现了Claude Code和Gemini CLI之间的代理到代理(A2A)通信。

建筑

Claude Code (MCP Client) <--> A2A-MCP Bridge Server <--> Gemini CLI (A2A Agent)

从参考实现中保留的功能

  • ✅ FastMCP集成:FastMCP提供正确的MCP协议支持
  • ✅ 永久存储:代理和任务通过定期备份保存到磁盘
  • ✅ 流媒体支持:实时通信能力
  • ✅ 全面的错误处理:强大的错误处理和日志记录
  • ✅ 任务管理:具有状态跟踪的完整任务生命周期管理
  • ✅ 代理发现:通过自动发现 .well-known/agent.json
  • ✅ JSON-RPC 2.0:标准A2A协议通信
  • ✅ Docker容器化:隔离和便携式部署

快速开始

1.安装软件包

# One-command installation
npx @a2a-bridge/mcp-server install

# Or install globally
npm install -g @a2a-bridge/mcp-server
a2a-mcp-install install

2.验证安装

# Test the MCP server
a2a-bridge-mcp test

# Check status
a2a-bridge-mcp status

用法

配置后,Claude Code将可以访问这些MCP工具:

register_agent

在网桥中注册新的A2A代理。

// Available in Claude Code after installation
register_agent("http://new-agent:port")

list_agents

列出所有注册的A2A代理商。

// View all registered agents
list_agents()

send_message

向A2A代理发送消息。

send_message(
    "http://localhost:9222",  // agent_url
    "Help me write a JavaScript function",  // message
    "optional-session-id"  // session_id
)

get_task_result

检索以前发送的任务的结果。

get_task_result("uuid-task-id")

环境变量

MCP服务器配置

  • GEMINI_CLI_URL:本地Gemini CLI的URL(默认值:http://localhost:9222)
  • A2A_MCP_DATA_DIR:持久存储目录(默认:~/.a2a桥)
  • DEBUG:启用调试日志记录(设置为“a2a-bridge:*”)
  • NODE_ENV:环境模式(开发/生产)

Gemini CLI身份验证

  • GOOGLE_API_KEY 或 GEMINI_API_KEY:Google Gemini API密钥
  • OAuth:使用 gemini auth 用于基于浏览器的身份验证

组件

@a2a网桥/mcp服务器

  • 目的:连接Claude Code和Gemini CLI的MCP服务器
  • 特性:自动安装、跨平台支持、持久存储
  • 整合:通过MCP协议直接与Claude Desktop配合使用

Gemini CLI集成

  • 目的:使用本地Gemini CLI安装进行AI通信
  • 端口:9222(默认本地Gemini CLI端口)
  • 认证:同时支持API密钥和OAuth

数据持久层

MCP服务器持续存在:

  • 注册代理人: ~/.a2a-bridge/registered_agents.json
  • 任务映射: ~/.a2a-bridge/task_agent_mapping.json

数据会自动保存:

  • 退出时(atexit处理程序)
  • 每5分钟(定期保存)
  • 每次代理人注册后
  • 每次任务提交后

测试

测试npm包功能:

# Test installation and configuration
a2a-bridge-mcp test

# Run package tests
cd packages/npm
npm test

# Test CLI commands
a2a-bridge-mcp status
a2a-mcp-install --help

测试包括:

  • 软件包安装
  • Claude桌面配置
  • Gemini CLI连接
  • MCP服务器功能

故障排除

检查安装状态

a2a-bridge-mcp status

查看调试日志

# Enable debug mode
export DEBUG=a2a-bridge:*
export NODE_ENV=development
a2a-bridge-mcp start

测试组件

# Test Gemini CLI connectivity
gemini --version
gemini auth status

# Test MCP server
a2a-bridge-mcp test

# Test installation process
a2a-mcp-install install

重置配置

# Remove configuration data
rm -rf ~/.a2a-bridge

# Reconfigure
a2a-mcp-install install

发展

地方发展

cd packages/npm
npm install
npm run build
npm link  # For local testing

添加新的A2A代理

使用Claude Code中的MCP工具:

// Register a new agent
register_agent("http://your-agent:port")

// List all agents
list_agents()

扩展MCP工具

在中添加新工具 packages/npm/src/index.js:

// Add new MCP tool handler
server.setRequestHandler(CallToolRequestSchema, async (request) => {
  const { name, arguments: args } = request.params;
  
  if (name === 'your_new_tool') {
    // Implementation here
    return { result: 'success' };
  }
});

安全说明

  • 这是一个开发设置-为生产添加身份验证
  • 应妥善保管Gemini API密钥
  • Docker网络提供网络隔离
  • 考虑在生产部署中终止TLS