A2AMCP 将谷歌的代理到代理(A2A)通信概念引入模型上下文协议(MCP)生态系统,使AI代理能够在执行并行开发任务时实时通信、协调和协作。
最初为 SplitMind 创建,A2AMCP 解决了在同一代码库上工作的孤立AI代理之间缺乏彼此更改意识的关键问题。
✅ 服务器状态:运行中!已实现并测试了所有17个工具。使用现代MCP SDK 1.9.3。
# 克隆仓库
git clone https://github.com/webdevtodayjason/A2AMCP
cd A2AMCP
# 启动服务器
docker-compose up -d
# 验证是否正在运行
docker ps | grep splitmind
# 测试连接
python verify_mcp.py
# 使用Claude Code CLI添加MCP服务器
claude mcp add splitmind-a2amcp \
-e REDIS_URL=redis://localhost:6379 \
-- docker exec -i splitmind-mcp-server python /app/mcp-server-redis.py
在配置文件中添加(在macOS上的路径为 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"splitmind-a2amcp": {
"command": "docker",
"args": ["exec", "-i", "splitmind-mcp-server", "python", "/app/mcp-server-redis.py"],
"env": {
"REDIS_URL": "redis://redis:6379"
}
}
}
}
当多个AI代理在同一代码库上工作时:
A2AMCP可以协调任何多代理场景:
┌─────────────────┐
│ A2AMCP 服务器 │ ← 基于持久Redis的MCP服务器
│ (端口5050) │ 处理所有代理通信
└────────┬────────┘
│ STDIO 协议(MCP)
┌────┴────┬─────────┬─────────┐
▼ ▼ ▼ ▼
┌────────┐┌────────┐┌────────┐┌────────┐
│代理1 ││代理2 ││代理3 ││代理N │
│认证 ││概况 ││API ││前端 │
└────────┘└────────┘└────────┘└────────┘
@server.list_tools() 和 @server.call_tool() 模式services:
mcp-server:
build: .
container_name: splitmind-mcp-server
ports:
- "5050:5000" # 更改端口以避免冲突
environment:
- REDIS_URL=redis://redis:6379
- LOG_LEVEL=INFO
depends_on:
redis:
condition: service_healthy
restart: unless-stopped
redis:
image: redis:7-alpine
container_name: splitmind-redis
ports:
- "6379:6379"
volumes:
- redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 10s
retries: 5
volumes:
redis-data:
driver: local
pip install a2amcp-sdk
npm install @a2amcp/sdk
from a2amcp import A2AMCPClient, Project, Agent
async def run_agent():
client = A2AMCPClient("localhost:5000")
project = Project(client, "my-app")
async with Agent(project, "001", "feature/auth", "构建认证") as agent:
# 代理自动注册并维护心跳
# 协调文件访问
async with agent.files.coordinate("src/models/user.ts") as file:
# 文件被锁定,安全修改
pass
# 文件自动释放
# 分享接口
await project.interfaces.register(
agent.session_name,
"User",
"interface User { id: string; email: string; }"
)
# 注册代理
register_agent("my-project", "task-001", "001", "feature/auth", "构建认证")
# 查询另一个代理
query_agent("my-project", "task-001", "task-002", "interface", "用户模式是什么?")
# 分享接口
register_interface("my-project", "task-001", "User", "interface User {...}")
详情见 SDK 开发进度。
A2AMCP 设计用于:
虽然受到谷歌A2A协议的启发,但A2AMCP针对AI代码开发做出了特定的设计选择:
| 功能 | 谷歌A2A | A2AMCP |
|---|---|---|
| 协议 | 基于HTTP | MCP工具 |
| 状态 | 无状态 | Redis持久化 |
| 关注点 | 通用任务 | 代码开发 |
| 部署 | 每个代理服务器 | 单个共享服务器 |
@server.list_tools(),@server.call_tool())mcp__splitmind-a2amcp__ 工具docker ps | grep splitmindcurl http://localhost:5050/healthpython verify_mcp.py~/Library/Application Support/Claude/claude_desktop_config.json 包含A2AMCP服务器配置我们欢迎贡献!请参阅 CONTRIBUTING.md 获取指南。
# 克隆仓库
git clone https://github.com/webdevtodayjason/A2AMCP
cd A2AMCP
# 安装依赖
pip install -r requirements.txt
# 运行测试
pytest
# 启动开发服务器
docker-compose -f docker-compose.dev.yml up
MIT 许可证 - 详见 LICENSE 文件。
A2AMCP - 将孤立的AI代理转变为协调开发团队