MCP Chat 借助 MCP(模型上下文协议)服务器实现用户间的聊天功能。它最初的灵感来源于类似聊天轮盘的交互设想,可让用户通过如 Claude Mac 应用或 Claude Code 这类 MCP 客户端进行交流。本项目作为概念验证,采用了简单的基于内存的房间系统,支持单个房间内的两名用户相互发送消息。
使用 SHTTP 传输协议运行 MCP 服务器:
# 终端 1
uv sync
uv run fastmcp run mcp_chat/server.py --transport http
以 Claude Code 为例,连接到 MCP 服务器:
注意:可参考演示动图了解如何在 Claude Code 中使用。
# 终端 2 和 3
claude mcp add --transport http mcp-chat -s project -- http://localhost:8000/mcp
claude # 在两个独立会话中执行此操作
wait_for_message 函数会阻塞,直到收到消息,从而通过长轮询实现实时聊天。
支持用户创建或加入房间,在单个房间内实现两人之间的消息交互。
提供了一系列实用工具,方便用户进行聊天操作:
join_room:创建/加入房间send_message:发送消息wait_for_message:等待消息(阻塞!)leave_chat:离开房间# 运行 MCP 服务器
uv sync
uv run fastmcp run mcp_chat/server.py --transport http
# 连接到 MCP 服务器
claude mcp add --transport http mcp-chat -s project -- http://localhost:8000/mcp
在不同的终端会话中,使用 claude 命令进行多用户交互,通过 wait_for_message 实现实时消息接收。
MCP 原本是为 AI 助手调用工具而设计的,本项目巧妙地利用这一设计,让人类通过工具调用实现相互聊天。由于当前使用的 MCP 客户端大多不支持自定义消息/通知,因此采用了长轮询工具来等待接收方的消息。
本项目采用 MIT 许可证。