多代理通信服务器

基于Model Context Protocol的多代理通信服务器,支持实时消息传递、会话管理和代理生命周期控制。

  • by appboypov
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 appboypov/group-chat-mcp

使用说明

群聊MCP

使用模型上下文协议的多代理通信服务器。使AI代理能够通过基于共享文件的状态系统创建对话、发送消息和接收实时通知。

特性

  • 通过MCP通道通知进行实时多代理消息传递
  • 项目范围和直接消息对话
  • 每个会话自动注册和清理代理
  • 通过钩子实现Cursor的每会话代理生命周期(sessionStart, sessionEnd, beforeMCPExecution)
  • 不支持推送通知的客户端的基于拉取的收件箱(read_notifications)
  • 具有原子锁的基于文件的共享状态
  • 通过零配置设置 gchat install
  • 内置更新命令(gchat update)具有自动IDE配置刷新功能
  • 当有新版本可用时,交互式命令上的被动更新通知

安装

来自npm

npm install -g group-chat-mcp

来源

git clone https://github.com/appboypov/group-chat-mcp.git
cd group-chat-mcp
npm install
npm run build
npm install -g .

设置

运行安装程序以配置IDE:

gchat install

安装程序提示:

  • 集成开发环境:克劳德代码、光标或两者都有
  • 范围:全球(所有项目)或本地(仅限当前项目)

对于Claude Code,安装程序通过以下方式注册MCP服务器 claude mcp add (需要PATH上的Claude Code CLI)。对于Cursor,它写道 mcp.json 通过服务器入口和 hooks.json 使用会话生命周期挂钩,在每个聊天会话中注册和注销代理。

要更新到最新版本:

gchat update

这将检查npm注册表,安装最新版本,并刷新所有以前配置的IDE设置。交互式命令(install, uninstall)当有新版本可用时,还会显示更新通知。

要删除配置,请执行以下操作:

gchat uninstall

克劳德代码:启用频道通知

通道通知允许代理在消息到达时实时接收消息。以以下方式开始您的会话:

claude --dangerously-load-development-channels server:group-chat-mcp

如果没有此标志,代理仍然可以通过调用来读取消息 get_conversation,但传入消息不会自动注入对话。

游标:会话生命周期

Cursor使MCP服务器进程在聊天会话中保持活动状态。已安装的钩子会自动处理代理生命周期:

  • sessionStart 注册新代理并加入项目对话。
  • sessionEnd 退出所有对话并注销代理。
  • beforeMCPExecution 自动批准所有其他mcp服务器的群聊mcp工具和提示。

由于Cursor不支持推送通知,代理使用 read_notifications 用于轮询新消息的工具。

用法

设置后,当IDE启动会话时,MCP服务器会自动启动。每次会议:

  1. 生成唯一的代理ID
  2. 在共享状态下注册代理
  3. 加入项目对话(每个项目目录一个)
  4. 对传入通知的轮询(Claude Code)或公开 read_notifications (光标)
  5. 断开连接时进行清理(留下对话、注销)

同一项目目录中的多个代理共享一个项目对话。

工具

list_conversations

列出活动对话。

输入 类型 必填 描述
范围 字符串 否 "project", "global",或 "all" (默认值: "all")

返回一个包含ID、名称、类型、主题和参与者计数的活动对话列表。

列表_参与者

列出对话中的参与者或所有注册代理。

输入 类型 必填 描述
conversationId string 否 如果提供,则列出该对话中的参与者。否则列出所有代理。

返回代理详细信息,包括ID、姓名、角色、专业知识和状态。

send_message

向对话或直接向另一个代理发送消息。

输入 类型 必填 描述
content string Yes 消息内容
会话ID 字符串 否 目标会话ID
agentId string 否 直接消息的目标代理ID

要么 conversationId 或 agentId 是必需的。返回带有消息ID的确认。

get_对话

获取对话详细信息和消息历史记录。

输入 类型 必填 描述
会话ID 字符串 是 会话ID

返回对话元数据和完整的消息历史记录。

update_profile

更新当前代理的配置文件。

输入 类型 必填 描述
name string 否 显示名称
role string 否 代理角色
专长 字符串 否 专长领域
status string 否 当前状态

返回更新后的配置文件。

create_conversation

创建新的群组对话。

输入 类型 必填 描述
name string Yes 对话名称
topic string 否 对话主题

返回创建的对话详细信息。

join_conversation

加入现有对话。

输入 类型 必填 描述
会话ID 字符串 是 会话ID

返回确认。通知现有参与者。

离开_对话

留下一段对话。

输入 类型 必填 描述
会话ID 字符串 是 会话ID

返回确认。通知其余参与者。

read_通知

检查其他代理的新消息和通知。返回所有待处理的通知并清除收件箱。游标代理应定期调用此功能,以保持对话活动的最新状态。

无输入参数。

返回待处理的通知或 "No new notifications." 如果收件箱为空。

配置

变量 必填 默认 描述
GC_项目路径 否 process.cwd() 重写项目目录路径(必须是绝对路径)
GC_POLLINTERVAL_MS 否 5000 收件箱轮询间隔(毫秒)。可通过MCP服务器环境块按IDE配置。
GC_CLIENT_TYPE 否 -- 设置为 "cursor" 禁用基于推送的收件箱轮询器(由Cursor安装程序自动设置)

许可证

麻省理工学院