关于 SplitMind MCP Agent Communication Server (Redis Edition)
A2AMCP 是基于 MCP 的多 Agent 通信服务,借鉴 Google 的 Agent2Agent 协议理念,面向并行开发同一代码库的 AI Agent。它使用 Redis 持久化状态,让多个 Agent 之间可以交换信息、协调工作。
主要功能
- 01Agent 之间的直接查询与广播消息
- 02异步消息队列
- 03文件锁定与冲突检测
- 04接口与类型注册表,用于共享 API 契约
- 05待办列表与任务完成信号
- 06按项目划分的隔离命名空间
适用场景
- 01多个 Agent 同时开发微服务或不同模块
- 02前端与后端 Agent 共享接口定义
- 03测试编写者与功能开发者协同工作
MCP 相关
A2AMCP 本身是 MCP 服务,向 Claude Code 等 MCP 客户端暴露 17 个工具,用于注册 Agent、发送查询和登记接口。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
A2AMCP - Agent 对 Agent 模型上下文协议
为 AI 驱动的开发实现无缝的多 Agent 协作
A2AMCP 将 Google 的 Agent-to-Agent(A2A)通信概念引入模型上下文协议(MCP)生态系统,使 AI Agent 在并行开发任务期间能够实时通信、协调和协作。
A2AMCP 最初为 SplitMind 创建,解决了一个关键问题:彼此不了解对方更改的 AI Agent 在同一代码库上独立工作。
✅ 服务状态:正常运行!已实现并测试全部 17 个工具。使用现代 MCP SDK 1.9.3。
🚀 快速开始
使用 Docker(推荐)
# Clone the repository
git clone https://github.com/webdevtodayjason/A2AMCP
cd A2AMCP
# Start the server
docker-compose up -d
# Verify it's running
docker ps | grep splitmind
# Test the connection
python verify_mcp.py
配置你的 Agent
Claude Code(CLI)
# Add the MCP server using Claude Code CLI
claude mcp add splitmind-a2amcp \
-e REDIS_URL=redis://localhost:6379 \
-- docker exec -i splitmind-mcp-server python /app/mcp-server-redis.py
Claude Desktop
添加到你的配置文件(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"
}
}
}
}
🎯 A2AMCP 解决什么问题?
当多个 AI Agent 在同一代码库上工作时:
- 不使用 A2AMCP:Agent 会创建冲突代码、重复劳动并导致合并冲突
- 使用 A2AMCP:Agent 能够协调、共享接口、防止冲突并像团队一样协作
SplitMind 之外的通用用例
A2AMCP 可以协调任何多 Agent 场景:
- 微服务:不同的 Agent 构建独立服务
- 全栈应用:前端和后端 Agent 协作
- 文档:多个 Agent 创建相互关联的文档
- 测试:测试编写者与功能开发者协调合作
- 重构:Agent 同时处理不同模块
🏗️ 架构
┌─────────────────┐
│ A2AMCP Server │ ← Persistent Redis-backed MCP server
│ (Port 5050) │ handling all agent communication
└────────┬────────┘
│ STDIO Protocol (MCP)
┌────┴────┬─────────┬─────────┐
▼ ▼ ▼ ▼
┌────────┐┌────────┐┌────────┐┌────────┐
│Agent 1 ││Agent 2 ││Agent 3 ││Agent N │
│Auth ││Profile ││API ││Frontend│
└────────┘└────────┘└────────┘└────────┘
🔧 核心功能
1. 实时 Agent 通信
- Agent 之间直接查询
- 广播消息
- 异步消息队列
2. 防止文件冲突
- 自动文件锁定
- 冲突检测
- 协商策略
3. 共享上下文管理
- 接口/类型注册表
- 共享 API 契约
- 依赖跟踪
4. 任务透明度
- 待办事项列表管理
- 进度可见性
- 完成情况跟踪
- 任务完成信号
5. 多项目支持
- 隔离的项目命名空间
- Redis 支持的持久化
- 自动清理
6. 现代 MCP 集成
- 使用 MCP SDK 1.9.3 和规范的装饰器
@server.list_tools()和@server.call_tool()模式- 基于 STDIO 的通信协议
- 完全符合 A2AMCP API,已实现 17 个工具
📦 安装选项
Docker Compose(生产环境)
services:
mcp-server:
build: .
container_name: splitmind-mcp-server
ports:
- "5050:5000" # Changed from 5000 to avoid conflicts
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: 5s
retries: 5
volumes:
redis-data:
driver: local
Python SDK
pip install a2amcp-sdk
JavaScript/TypeScript SDK(即将推出)
npm install @a2amcp/sdk
🚦 使用示例
Python 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", "Build authentication") as agent:
# Agent automatically registers and maintains heartbeat
# Coordinate file access
async with agent.files.coordinate("src/models/user.ts") as file:
# File is locked, safe to modify
pass
# File automatically released
# Share interfaces
await project.interfaces.register(
agent.session_name,
"User",
"interface User { id: string; email: string; }"
)
直接使用 MCP 工具
# Register agent
register_agent("my-project", "task-001", "001", "feature/auth", "Building authentication")
# Query another agent
query_agent("my-project", "task-001", "task-002", "interface", "What's the User schema?")
# Share interface
register_interface("my-project", "task-001", "User", "interface User {...}")
📚 文档
🛠️ SDK 和工具
现已提供
- Python SDK:功能齐全并支持异步操作的 SDK
- Docker 部署:适用于生产环境的容器
开发中
- JavaScript/TypeScript SDK:适用于 Node.js 和浏览器
- CLI 工具:用于监控的命令行界面
- Go SDK:高性能编排
- 测试框架:模拟服务和测试工具
详情请参阅 SDK 开发进度。
🤝 与 AI 框架集成
A2AMCP 旨在与以下对象协同工作:
- SplitMind - 最初的使用场景
- Claude Code(通过 MCP)
- 任何兼容 MCP 的 AI Agent
- 未来支持:LangChain、CrewAI、AutoGen
🔍 与 A2A 的区别
A2AMCP 虽然受到 Google A2A 协议的启发,但针对 AI 代码开发做出了特定的设计选择:
| 特性 | Google A2A | A2AMCP |
|---|---|---|
| 协议 | 基于 HTTP | MCP 工具 |
| 状态 | 无状态 | Redis 持久化 |
| 重点 | 通用任务 | 代码开发 |
| 部署 | 每个 Agent 各自部署服务 | 单一共享服务 |
🚀 路线图
- 基于 Redis 的核心 MCP 服务
- 集成现代 MCP SDK 1.9.3
- 修正装饰器模式(
@server.list_tools()、@server.call_tool()) - Python SDK
- Docker 部署
- 已实现并测试全部 17 个 A2AMCP API 工具
- 用于监控的运行状况检查端点
- 用于测试连接性的验证脚本
- JavaScript/TypeScript SDK
- CLI 监控工具
- SplitMind 原生集成
- 框架适配器(LangChain、CrewAI)
- 企业级功能
🛠️ 故障排除
Agent 无法看到 mcp__splitmind-a2amcp__ 工具
- 重启 Claude Desktop - MCP 连接会在启动时建立
- 确认服务正在运行:
docker ps | grep splitmind - 检查运行状况端点:
curl http://localhost:5050/health - 运行验证脚本:
python verify_mcp.py - 检查配置:确保
~/Library/Application Support/Claude/claude_desktop_config.json包含 A2AMCP 服务配置
常见问题
- “Tool 'X' not yet implemented” - 已在最新版本中修复,请拉取最新更改
- 连接失败 - 确保 Docker 正在运行,且端口 5050/6379 未被占用
- Redis 连接错误 - 等待 Redis 就绪(启动时约需 5-10 秒)
🤝 参与贡献
欢迎贡献!请参阅 CONTRIBUTING.md 了解指南。
开发环境设置
# Clone repository
git clone https://github.com/webdevtodayjason/A2AMCP
cd A2AMCP
# Install dependencies
pip install -r requirements.txt
# Run tests
pytest
# Start development server
docker-compose -f docker-compose.dev.yml up
📊 性能
- 可处理 100+ 个并发 Agent
- 消息传递耗时不到 1 秒
- 自动清理失效的 Agent
- 支持水平扩展
🔒 安全
- 项目隔离
- 可选身份验证(即将推出)
- 加密通信(路线图)
- 审计日志
📄 许可证
MIT 许可证 - 请参阅 LICENSE 文件。
🙏 致谢
- 灵感来自 Google 的 A2A 协议
- 为 SplitMind 构建
- 由 Model Context Protocol 提供支持
📞 支持
- 问题:GitHub Issues
- 讨论:GitHub Discussions
- Discord:即将推出
A2AMCP - 将孤立的 AI Agent 转变为协同工作的开发团队
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。