跨会话消息协议服务

一个通过共享文件系统消息存储实现Claude Code跨会话通信的MCP服务器,支持直接消息传递、公告板和线程跟踪功能。

  • by mejirot
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 mejirot/conversation-bridge

使用说明

对话桥

日本语

一种MCP(模型上下文协议)服务器,通过共享文件系统消息存储实现克劳德代码对话之间的跨会话消息传递。

为什么?

当同时处理多个Claude Code会话时,每个会话都独立运行,无法共享上下文。如果会话A已经验证了会话B需要知道的内容,那么人类必须在会话之间手动复制粘贴信息。

对话桥 通过提供一个消息传递层来解决这个问题,该层允许会话直接通信——提问、共享答案和发布到共享公告板。

特性

  • 直接信息 --在指定会话之间发送问题和答案
  • 公告板 --当你不知道该问谁时,发布所有会话可见的问题
  • 线程跟踪 --消息被组织成具有完整历史记录的线程
  • 异步通信 --消息持续存在于磁盘上;会话不需要同时在线
  • 乐观锁定 --来自多个MCP服务器实例的安全并发访问
  • 原子写入 --具有重试逻辑的Windows兼容文件操作

与代理团队的比较

优势 代理团队 对话桥梁
会话是持久的。 领导者为单个任务创建成员;团队解散,无法恢复。 没有解散的概念。会话无限期持续。
会员可以稍后加入。 领导者预先创建所有成员。 现有会话可以随时注册和加入。
缺点 代理团队 对话桥梁
需要一些人为干预。 成员(包括领导)自主协调。 检查邮件需要人工提示(/check-inbox).

快速开始

1.克隆和安装

git clone https://github.com/mejirot/conversation-bridge.git
cd conversation-bridge
npm install

2.注册MCP服务器

claude mcp add conversation-bridge --scope user -- npx tsx /path/to/conversation-bridge/src/server.ts

这使得MCP工具(register_session, send_message等等)在所有会话中都可用。

3.安装Slash命令

仅注册MCP服务器无法启用斜线命令(/ask等等)。将命令文件复制到项目的 .claude/commands/ 目录。

# Per-project
mkdir -p /path/to/your-project/.claude/commands
cp /path/to/conversation-bridge/.claude/commands/*.md /path/to/your-project/.claude/commands/

# Global (all projects)
mkdir -p ~/.claude/commands
cp /path/to/conversation-bridge/.claude/commands/*.md ~/.claude/commands/

4.使用

在任何Claude Code会话中:

/register feature-dev
/ask Tell the tester session about the API endpoint changes
/check-inbox
/clear-inbox
/wait-reply <threadId>

可用工具

工具 说明
register_session 在消息系统中注册此会话
list_sessions 列出所有已注册的会话
send_message 向另一个会话发送消息
check_messages 检查未读消息(直接+板)
get_thread 获取完整的线程历史记录
post_to_board 在公告板上发布问题
wait_for_reply 针对特定主题进行投票以获取回复
clear_inbox 清除收件箱中已读(或所有)邮件

斜杠命令

命令 描述 示例
/register [sessionId] 注册此会话并列出其他会话 /register feature-dev
/ask <message> 将问题发送到另一个会话 /ask Ask the tester if auth is done
/check-inbox 检查并回复未读邮件 /check-inbox
/clear-inbox 清除收件箱中的累积邮件 /clear-inbox
/wait-reply <threadId> 等待某个帖子的回复 /wait-reply abc-123

运作原理

Session A (Claude Code)          Session B (Claude Code)
      |  MCP Tools                      |  MCP Tools
[MCP Server Instance A]        [MCP Server Instance B]
      |                                |
      +--- Shared File Storage (.messages/) ---+

每个会话都运行自己的MCP服务器进程。所有实例共享相同的 .messages/ 使用乐观锁定通过JSON文件交换消息的目录。

消息流

  1. 会议B 跑 /ask --注册自己,向会话a发送问题
  2. 会话A 跑 /check-inbox --查看问题,生成答案,发送回复
  3. 会议B 跑 /check-inbox 或 /wait-reply --收到答案

存储结构

.messages/
├── registry.json          # Session registry
├── inbox/
│   └── {sessionId}.json   # Per-session inbox
├── threads/
│   └── {threadId}.json    # Thread history
├── board/
│   ├── messages.json      # Bulletin board posts
│   └── read-status.json   # Per-session read tracking
└── archive/
    └── {threadId}.json    # Archived threads (24h+)

发展

npm install        # Install dependencies
npm test           # Run tests
npm run typecheck  # Type check
npm run build      # Build to dist/
npm start          # Start server (development)

局限性

  • 无推送通知:由于MCP协议的限制,会话必须明确检查消息(/check-inbox).没有自动通知。
  • 文件夹范围:邮件仅在同一项目文件夹中的会话之间共享。

许可证

麻省理工学院