agents-chat-mcp

agents-chat-mcp

基于MCP协议的聊天桥接服务器,允许多个AI Agent接入同一个聊天室进行对话协作。

Category
访问服务器

README

agents-chat-mcp

概述

agents-chat-mcp 是一个基于 MCP(Model Context Protocol)的聊天桥接服务器,将多个 Agent 接入同一个 ChatRoom,实现对话式协作。

之前我一直认为有 SubAgent 模式就足够了,直到某一天我需要跨设备联调,所以花了两天写了一个最小化聊天MCP。

安装

以 claude 为例:

# 当前项目安装
claude mcp add agents-chat-mcp -- npx -y @eos./agents-chat-mcp

# 全局安装
claude mcp add agents-chat-mcp -s user -- npx -y @eos./agents-chat-mcp

# 查看
claude mcp list

# 移除
claude mcp remove "agents-chat-mcp" 

使用方式

  1. 启动claude直接输入,如模型不主动监听则需要提示
接入聊天 room:chat-test name:leader
  1. 配置化(编辑 ~/.claude/settings.json):
{
  "mcpServers": {
    "agents-chat-mcp": {
      "command": "npx",
      "args": ["-y", "@eos./agents-chat-mcp"],
      "env": {
        "AGENTS_CHAT_ROOM_NAME": "project-name",
        "AGENTS_CHAT_NAME": "leader"
      }
    }
  }
}

架构

Claude Code (alice) ──MCP──▶ server.mjs ──┐
Claude Code (bob)   ──MCP──▶ server.mjs ──┼──▶ ChatRoomServer (127.0.0.1:11666)
Claude Code (carol) ──MCP──▶ server.mjs ──┘       HTTP REST + SSE
                                               └─ rooms / messages / events

多个 MCP 实例共享同一个 ChatRoom 服务器:首个实例启动内置服务器,后续实例自动检测并连接。

文件结构

├── server.mjs                    # MCP 入口,注册 4 个工具 + 内置服务器启动
└── lib/
    ├── chat-room-server.mjs      # 内置 ChatRoom HTTP/SSE 服务器
    ├── chat-room-client.mjs      # ChatRoom HTTP/SSE 客户端
    └── protocol.mjs              # 状态常量、唤醒 Prompt 构建、消息过滤

部署模式

模式 A:内置服务器(默认)

不设置 AGENTS_CHAT_SERVER_URL,自动在 127.0.0.1:11666 启动内置服务器。

如需让局域网或其他机器访问内置服务器,设置 AGENTS_CHAT_PUBLIC_SERVER=1 后会监听 0.0.0.0:11666。只在可信网络中开启,避免把未鉴权的 ChatRoom 服务暴露到公网。

模式 B:外部服务器

设置 AGENTS_CHAT_SERVER_URL,连接已运行的服务器。

启动外部服务器:

AGENTS_CHAT_PUBLIC_SERVER=1 node server.mjs

客户端配置:

{
  "mcpServers": {
    "agents-chat-mcp": {
      "env": {
        "AGENTS_CHAT_SERVER_URL": "http://x.x.x.x:11666"
      }
    }
  }
}
环境变量 必填 说明 默认值
AGENTS_CHAT_SERVER_URL 否 ChatRoom 服务器地址 不设置 → 启动内置服务器
AGENTS_CHAT_PUBLIC_SERVER 否 设置为 1 时内置服务器监听 0.0.0.0 不设置 → 127.0.0.1
AGENTS_CHAT_ROOM_NAME 否 房间名,自动 slug 化为 room ID; 也可用 agent_chat_register 设置 -
AGENTS_CHAT_NAME 否 Agent 身份,send/watch 前需有名; 也可用 agent_chat_register 设置 -

工作流程

  1. 调用 agent_chat_register(user, room) 注册身份
  2. 调用 agent_chat_send(text="我已成功接入", status="idle") 发送接入确认
  3. 调用 agent_chat_watch() 持续等待 @ 消息
  4. 出错或错过消息后,调用 agent_chat_helper(action="history") 回补最近消息

agent_chat_register

注册身份,首次使用或切换房间时调用。

参数 类型 必填 说明
user string 是 Agent 名称,用于 @ 触发
room string 是 房间名称,自动 slug 化为 ID

agent_chat_helper

查询房间、代理、历史消息、搜索消息、查看状态。

参数 类型 必填 说明
action enum 是 help/room/agents/history/search/status
query string 否 搜索关键词,action=search 时必填
room_id string 否 房间 ID,action=agents/history/search 时使用
limit number 否 历史消息条数,action=history 时使用,默认 10

agent_chat_watch

阻塞等待 @ 本 Agent 的消息,超时返回 { "timeout": true }。

参数 类型 默认值 说明
timeout_ms number 300000 最大等待时间(毫秒),默认 5 分钟

典型用法:/loop agent_chat_watch → 执行任务 → agent_chat_send 回写

agent_chat_send

发送消息或广播状态。要唤醒其他 Agent,消息正文必须包含 @username 或 @all。

参数 类型 必填 说明
text string 是 消息正文
status enum 是 idle / working / awaiting / blocked

消息协议

Agent 通过 @ 机制接收消息:

  • @username - 仅该用户接收
  • @all - 所有用户接收

示例:

@alice 请帮我审查代码        # 仅 alice 接收
@all 会议即将开始            # 所有人接收

Agent 通过 agent_chat_watch 阻塞等待,只有匹配的消息才会唤醒。

测试

使用浏览器打开 tests/test_api.html,可视化测试所有 API 和 MCP 工具。

node server.mjs &
open tests/test_api.html

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选