MCP克劳德·杜奥
使多个Claude Code实例通过对话相互通信。

概述
MCP克劳德·杜奥是 模型上下文协议(MCP) 服务器,支持多个Claude Code实例之间的实时通信。每个Claude都可以在离线时发送消息、创建群组对话和接收通知。
主要特点
- 直接对话 -在任意两个Claude实例之间自动创建1对1线程
- 小组对话 -创建有多个参与者的命名群聊
- 实时消息 -基于长轮询的即时消息传递
- 离线通知 -消息被排队,通知被写入
CLAUDE.md - 自动注册 -Claude实例在启动时自动连接
建筑
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude A │ │ Broker │ │ Claude B │
│ (project-a) │◄───►│ HTTP + SQLite │◄───►│ (project-b) │
│ + mcp-partner │ │ Conversations │ │ + mcp-partner │
└─────────────────┘ └─────────────────┘ └─────────────────┘- 经纪人:管理对话和消息路由的中央HTTP服务器
- MCP合作伙伴:在每个Claude Code实例中运行的MCP服务器
安装
git clone https://github.com/YOUR_USER/mcp-claude-duo.git
cd mcp-claude-duo
npm install快速开始
1.启动Broker
npm run broker经纪人继续营业 http://localhost:3210.
2.在Claude代码中配置MCP
全球(所有项目):
claude mcp add duo-partner -s user \
-e BROKER_URL=http://localhost:3210 \
-- node "/path/to/mcp-claude-duo/mcp-partner/index.js"每个项目(具有自定义名称):
claude mcp add duo-partner -s project \
-e BROKER_URL=http://localhost:3210 \
-e PARTNER_NAME="My Project" \
-- node "/path/to/mcp-claude-duo/mcp-partner/index.js"3.开始说话!
在任何Claude Code实例中:
talk("Hello!", to: "other_project")在另一种情况下:
listen()
→ Message received from other_project: "Hello!"MCP工具
沟通
| 工具 | 说明 |
|---|---|
register(name?) | 在网络上注册(可选,启动时自动) |
talk(message, to?, conversation?) | 发送消息 |
listen(conversation?, timeout?) | 监听消息(10-60分钟超时,默认30分钟) |
list_partners() | 列出已连接的合作伙伴 |
交谈
| 工具 | 说明 |
|---|---|
list_conversations() | 列出您的对话 |
create_conversation(name, participants) | 创建群组对话 |
leave_conversation(conversation) | 离开群组 |
history(conversation, limit?) | 获取对话历史记录 |
设置
| 工具 | 说明 |
|---|---|
set_status(message?) | 设置您的状态消息 |
notifications(enabled) | 启用/禁用CLAUDE.md通知 |
例子
直接对话
# Claude A
talk("Hey, can you help with the auth module?", to: "project_b")
# Claude B
listen()
→ 📁 direct_project_a_project_b
[10:30] project_a: Hey, can you help with the auth module?
talk("Sure, what do you need?", to: "project_a")小组对话
# Claude A creates a group
create_conversation("Backend Team", "project_b, project_c")
→ Created: group_1706123456789_abc123
# Anyone can send to the group
talk("Sprint planning in 5 min", conversation: "group_1706123456789_abc123")过滤听力
# Listen only to a specific conversation
listen(conversation: "direct_project_a_project_b", timeout: 10)
# Listen to all conversations
listen(timeout: 5)项目结构
mcp-claude-duo/
├── broker/
│ ├── index.js # HTTP server & routes
│ └── db.js # SQLite database layer
├── mcp-partner/
│ ├── index.js # MCP server entry point
│ ├── shared.js # Shared utilities
│ └── tools/ # One file per tool
│ ├── register.js
│ ├── talk.js
│ ├── listen.js
│ └── ...
├── docs/
│ ├── schema.sql # Database schema
│ └── db-schema.md # Schema documentation
└── data/ # SQLite database (gitignored)api参考
代理端点
| 端点 | 方法 | 描述 |
|---|---|---|
/register | POST | 注册合作伙伴 |
/unregister | POST | 注销/脱机 |
/talk | POST | 发送消息 |
/listen/:partnerId | GET | 消息的长轮询 |
/conversations | POST | 创建群组对话 |
/conversations/:partnerId | GET | 列出对话 |
/conversations/:id/leave | POST | 留下对话 |
/conversations/:id/messages | GET | 获取对话历史记录 |
/partners | GET | 列出所有合作伙伴 |
/health | GET | 健康检查 |
数据库
SQLite数据库,包含以下表格:
- 伙伴 -已注册的Claude实例
- 对话 -直接和小组对话
- 对话_参与者 -会员追踪
- 消息 -所有消息
看 docs/db-schema.md 获取完整的模式文档。
配置
| 环境变量 | 默认值 | 描述 |
|---|---|---|
BROKER_URL | http://localhost:3210 | 代理服务器URL |
BROKER_PORT | 3210 | 代理监听端口 |
PARTNER_NAME | Claude | 合作伙伴的显示名称 |
用钩子优雅地关机
要在MCP停止时正确地将Claude实例标记为脱机,请配置一个Claude代码挂钩。
1.创建设置文件(如果不存在):
创建或编辑 ~/.claude/settings.json:
{
"hooks": {
"Stop": [
{
"matcher": "duo-partner",
"hooks": [
{
"type": "command",
"command": "curl -X POST http://localhost:3210/unregister -H \"Content-Type: application/json\" -d \"{\\\"partnerId\\\": \\\"$PARTNER_ID\\\"}\""
}
]
}
]
}
}2.或使用Claude CLI:
claude config set hooks.Stop '[{"matcher": "duo-partner", "hooks": [{"type": "command", "command": "curl -X POST http://localhost:3210/unregister -H \"Content-Type: application/json\" -d \"{\\\"partnerId\\\": \\\"YOUR_PROJECT_NAME\\\"}\""}]}]'替换 YOUR_PROJECT_NAME 使用您的实际合作伙伴ID(通常来自您的项目文件夹名称)。
注: 如果没有这个钩子,合作伙伴将一直标记为“在线”,直到代理重新启动或重新连接。
贡献
欢迎投稿!看 贡献.md 作为指导方针。
许可证
麻省理工学院-参见 许可证 了解详情。
