使用说明
天空聊天mcp
连接的MCP服务器 skych.at 与任何MCP客户端(Claude Code、llama.cpp web UI等)聊天。
WebSocket在后台保持打开状态,在实时消息到达时对其进行缓冲。LLM对该缓冲区进行读写操作,无需轮询。
建立在官方之上 skychat npm包和 模型上下文协议TypeScript SDK.
与克劳德代码一起使用
1.注册服务器 (一次性,从您启动的任何目录 claude):
claude mcp add skychat -- npx -y skychat-mcp@latest --guest
添加 -s user 使其在每个项目中都可用。确认方式:
$ claude mcp list
skychat: npx -y skychat-mcp@latest --guest - ✓ Connected
2.使用它。 启动一个Claude Code会话——没有单独的进程可以运行,Claude Code会生成服务器本身。工具(read_messages, send_message, reply_to,…)自动显示。用简单的英语与克劳德交谈:
“现在人们在聊什么?”
“向总务室发送‘克劳德密码的问候’。”
“竖起大拇指回复邮件12345。”
“切换到IT室,总结最后30条消息。”
3.使用帐户登录 (可选——客人工作,但历史有限):
claude mcp add \
-e SKYCHAT_USERNAME=alice \
-e SKYCHAT_PASSWORD=hunter2 \
skychat -- npx -y skychat-mcp@latest
首次成功登录会将令牌保存到 ~/.config/skychat-mcp/token.json (chmod 0600),因此您可以在此之后删除env变量。
与llama.cpp web UI一起使用
llama.cpp无法生成子进程,因此此子进程需要HTTP传输,您可以将其作为长期进程运行:
npx -y skychat-mcp@latest --http --guest
在 llama-server → 设置→ MCP → add http://localhost:8765/mcp。工具会自动出现。然后像上面的Claude代码示例一样,在web UI中与模型进行对话。
安装
需要 节点18+。您通常不需要本地安装-- npx -y skychat-mcp@latest 适用于上述两种设置。对于Claude Code设置,您根本不需要手动运行任何东西:Claude Code将服务器本身作为子进程生成。
如果您特别需要全局安装(主要用于为基于浏览器的客户端运行长期HTTP/SSE服务器):
npm install -g skychat-mcp
skychat-mcp --http --port=8765 # streamable HTTP
skychat-mcp --sse --port=8765 # legacy SSE
认证
启动时按以下顺序解决:
| 优先级 | 来源 | 备注 |
|---|---|---|
| 1 | --guest flag |
匿名,无提示 |
| 2 | SKYCHAT_TOKEN env var |
JSON或字符串标记 |
| 3 | ~/.config/skychat-mcp/token.json |
成功登录后保存 |
| 4 | SKYCHAT_USERNAME + SKYCHAT_PASSWORD env-vars |
新登录,令牌被保存 |
| 5 | 回退 | 客人 |
没有交互式提示——env-vars是登录的唯一方式。这可以保证服务器在stdio上安全生成(推荐的Claude Code设置)。
要注销:请致电 logout 工具,或删除令牌文件。下一个开始没有 SKYCHAT_* env-vars回落到客人。
工具
| 工具 | 说明 |
|---|---|
read_messages |
返回缓冲消息。 room_id 过滤器, limit 上限计数(默认30,最大200)。 |
send_message |
发送消息。可选的 room_id. |
reply_to |
通过消息的ID引用回复消息,使用 @<id> 语法。 |
list_rooms |
列出服务器知道的所有房间。 |
join_room |
通过数字ID切换到其他房间 |
fetch_history |
向服务器询问旧邮件(仅限于访客)。 |
status |
连接状态、用户名、缓冲区统计信息。 |
logout |
清除已保存的身份验证令牌。重新启动服务器以再次登录。 |
自动回复机器人
通过 --auto-reply 每当提及bot帐户时,服务器都会自动响应。LLM收到提及,调用工具(reply_to, send_message, join_room, read_messages)直到满意,然后停止。
npx -y skychat-mcp@latest --http --auto-reply
npx -y skychat-mcp@latest --http --auto-reply --llm-url=http://localhost:8080
npx -y skychat-mcp@latest --http --auto-reply --system-prompt="You are a pirate."
npx -y skychat-mcp@latest --http --auto-reply --system-prompt-file=prompt.txt
| 标志 | 默认值 | 描述 |
|---|---|---|
--auto-reply |
off | 启用提及→LLM回路 |
--llm-url=URL |
http://localhost:8080 |
与OpenAI兼容的API的基本URL(/v1/chat/completions) |
--system-prompt=TEXT |
简短的帮助助手提示 | 发送给LLM的系统提示 |
--system-prompt-file=PATH |
-- | 改为从文件读取系统提示 |
LLM必须支持OpenAI风格的函数/工具调用。 llama-server 使用具有工具功能的模型即可开箱即用。提及是按顺序处理的——如果队列填满(第2章),则删除额外内容,以避免淹没聊天。
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
SKYCHAT_URL |
wss://skych.at/api/ws |
WebSocket URL——自托管实例的覆盖 |
SKYCHAT_TOKEN |
-- | 使用以前发出的令牌(JSON或字符串)继续 |
SKYCHAT_USERNAME |
-- | 新登录的用户名 |
SKYCHAT_PASSWORD |
-- | 新登录密码 |
XDG_CONFIG_HOME |
~/.config |
令牌存储的基本目录 |
发展
git clone https://github.com/skychatorg/skychat-mcp.git
cd skychat-mcp
npm install
npm run build
npm start -- --guest --http
其他脚本: npm run dev (通过tsx观看模式), npm run lint, npm run lint-fix.
笔记
- 客人可以阅读信息并加入房间,但历史非常有限。登录以获得完全访问权限。
- 缓冲区保存最后一个 500条消息 所有房间;最老的被扔在帽子上。
- 默认传输方式为 标准,这正是Claude Code所期望的,也是最有效的。
--http和--sse存在于基于浏览器的客户端,如llama服务器。
许可证
WTFPL——做你他妈的想做的事——公共许可。