群聊MCP
](https://www.npmjs.com/package/group-chat-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服务器会自动启动。每次会议:
- 生成唯一的代理ID
- 在共享状态下注册代理
- 加入项目对话(每个项目目录一个)
- 对传入通知的轮询(Claude Code)或公开
read_notifications(光标) - 断开连接时进行清理(留下对话、注销)
同一项目目录中的多个代理共享一个项目对话。
工具
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安装程序自动设置) |
许可证
麻省理工学院
