zhihui-xiezuo-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@zhihui-xiezuo-mcplist my DSH sessions and inspect the one about refactoring auth"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
智慧协作体系(zhihui-xiezuo)
这是**「智慧协作体系」的第一个模块 —— DSH 会话桥**,后续会继续补充其它模块。
让外部 Agent 接入一个已经在运行的本机 DeepSeek Harness (DSH) Web 实例:列会话、只读核对、绑定会话、向指定会话投递任务,并取回该任务所属回合的最终回复。
提供 CLI 与 MCP(stdio) 双入口,Windows / macOS / Linux 可用。
这个包解决什么问题
你在浏览器里开着 dsh web,某个会话里有一场正在进行的对话。你想让另一个 Agent(Codex、Claude Desktop、Cursor、任何 MCP 客户端)把一条任务投进那个会话,并且拿到这一回合的回复。
DSH 官方没有提供这个能力:
官方
@deepseek-ai/dsh-acp是 ACP 协议 + stdio,自己拉起一个全新的 DSH 进程,只能操作它自己创建/恢复的会话。它碰不到你网页上正开着的那个会话——那个会话由dsh web进程持有跨进程写锁,ACP 去session/resume会撞上SessionAlreadyOwnedError。官方没有任何 MCP 形式的会话控制服务端(
packages/mcp/下只有mcp-client和mcp-resources,方向都是「DSH 消费外部 MCP」,不是对外暴露)。
本包补的就是这个缺口:接入已运行实例、操作人正在看的那个会话、人在环。
dsh-acp(官方) | zhihui-xiezuo(本包) | |
协议 | ACP v1 | 私有 HTTP 信封 RPC + WebSocket |
传输 | stdio | HTTP + WS,仅本机环回 |
启动模型 | 客户端 spawn 新 DSH 进程 | 连接已存在的 |
目标会话 | 自己创建/恢复的 | 任意已存在会话,含网页正开着的 |
向已有会话发消息 | ❌ | ✅ |
取回回复正文 | ❌(只返回 | ✅( |
鉴权 | 无(受信控制器) | 启动令牌 → Cookie |
取消 / 审批 | ✅ | ❌ 刻意不订阅审批通道 |
典型用途 | 进程外 subagent、测试运行器 | 把任务投给人正在看的会话 |
两者不重叠,各自独占不同场景。
Related MCP server: pipe-opencode
安装
需要 Node.js ≥ 22。
npm install -g zhihui-xiezuo或者从源码:
git clone https://github.com/chongming1994/zhihui-xiezuo.git && cd zhihui-xiezuo
npm install
npm link # 可选,装出全局命令安装后有两个可执行入口:
zhihui-xiezuo—— 命令行zhihui-xiezuo-mcp—— MCP stdio 服务端
Windows 说明
npm install -g / npm link 会自动生成 .cmd shim,无需手动处理。也可以不装全局,直接用 node <包内路径>\bin\zhihui-xiezuo.js 调用。
快速开始
1. 拿到 DSH 的启动令牌
启动 dsh web 时终端会打印一个带 token 参数的 URL,把那个 token 复制出来。
2. 认证
# 交互式输入(不回显,不落命令行历史)
zhihui-xiezuo auth
# 或从受保护文件读取
zhihui-xiezuo auth --token-file ~/.config/dsh-token凭据写入状态目录(见下),令牌本身不保存。DSH 重启后令牌会变,需要重新 auth。
3. 检查连接
zhihui-xiezuo check --json只调 session/list,不激活任何会话。
4. 列会话、绑定、投递、取回复
zhihui-xiezuo sessions # 列会话摘要(不含聊天正文)
zhihui-xiezuo inspect <会话ID> # 只读核对单个会话
zhihui-xiezuo bind <会话ID> # 显式绑定目标
zhihui-xiezuo send --file ./task.md # 投递任务
zhihui-xiezuo wait <requestId> --timeout 600000 # 取回该回合回复CLI 命令
命令 | 作用 | 副作用 |
| 启动令牌换凭据 | 写本地凭据 |
| 检查连接与接口兼容性 | 无(不激活会话) |
| 列会话摘要 | 无 |
| 只读核对单会话 | 无 |
| 校验并保存绑定 | 写本地配置 |
| 向绑定会话投递 | 有 |
| 等待并取回该回合结果 | 无 |
| 查本地记录 + 只读核对 | 无 |
| 创建执行会话 | 有(需 |
| 重命名会话 | 有(需 |
| 协作工作单状态机 | 读写本地 |
完整选项与退出码见 zhihui-xiezuo --help。
退出码(给调用方用的稳定契约):
0 成功 1 失败 2 用法错误 3 认证/信任失败 4 目标不存在
5 本地等待超时 6 关联不确定 7 提交结果未知MCP 接入
MCP 服务端是 stdio 传输,暴露 10 个工具。
通用配置
{
"mcpServers": {
"zhihui-xiezuo": {
"command": "node",
"args": ["/绝对路径/zhihui-xiezuo/bin/zhihui-xiezuo-mcp.js"],
"env": {
"ZHIHUI_XIEZUO_URL": "http://127.0.0.1:3080"
}
}
}
}全局安装后也可以直接用命令名:
{
"mcpServers": {
"zhihui-xiezuo": {
"command": "zhihui-xiezuo-mcp"
}
}
}Windows 上如果用命令名,注意某些客户端不走 shell、找不到
.cmd;此时请写"command": "node"+ 绝对路径的args。
工具清单
只读
工具 | 作用 |
| 检查连接、认证与接口兼容性 |
| 列会话摘要 |
| 只读核对单个会话 |
| 只读列会话标题 |
| 查本地请求记录 |
写入(需要显式 confirm: true,否则直接拒绝、不执行)
工具 | 作用 |
| 绑定目标会话 |
| 向会话投递任务 |
| 创建会话 |
| 重命名会话 |
长任务
工具 | 作用 |
| 等待并取回该回合回复 |
写操作要求 confirm: true 是刻意的安全边界:本工具绝不推断「当前网页会话」,也绝不代替用户授权。
状态目录
平台 | 位置 |
Windows |
|
macOS / Linux |
|
可用环境变量覆盖,优先级:
--home 参数 → ZHIHUI_XIEZUO_HOME → DSH_BRIDGE_HOME(旧变量,向后兼容) → 平台默认目录内含 config.json、credential.json(凭据)、requests/(请求账本)、workorders/、locks/。
安全边界
本工具在设计上刻意收紧,使用前请知悉:
仅本机环回:只接受
127.0.0.1/localhost/::1,非环回地址在发出任何网络请求之前就失败关闭。不跟随重定向:所有
/api调用与令牌交换都用redirect: 'manual',任何 3xx 一律显式拒绝,绝不把任务正文或凭据转发到别的地址。只发显式绑定的会话:绝不推断「当前网页会话」。目标必须显式指定或已绑定。
不订阅审批通道:因此不可能自动批准任何请求。审批永远留给人。
不提供
cancel/steer/approve/ 改队列 / 改模型 / 改 preset。未知状态不自动重发:
submission_unknown/result-unknown只留账等人工核对,不重试。不读密钥:凭据只存在状态目录的
credential.json,不打印、不写入任务正文。
已知限制
不能取消、不能批准:
send只支持mode=queue,不提供steer/cancel/approve。需要有一个跑着的
dsh web:本包是纯 HTTP 客户端,不自己拉起 DSH。DSH 接口契约是 pre-stable:上游升级后需重新核对(
check会报告契约字段)。Windows 上不做自动 ACL 收紧:
chmod在 Windows 只能切只读位,本包不自动改 ACL。若要限制令牌文件访问,请自行执行:icacls "C:\path\to\dsh-token" /inheritance:r /grant:r "%USERNAME%:R"或直接用交互式
auth(令牌不落文件,最省事)。
开发
npm install
npm test # 139 项测试源码结构:
src/
cli.js 命令行入口、参数解析、命令分派
mcp-server.js MCP stdio 服务端(10 个工具)
rpc.js DSH HTTP 客户端(环回校验、令牌交换、redirect 拒绝)
mux.js WebSocket 会话事件流
associate.js 回合归属关联(requestId → turn → reply)
store.js 请求账本、文件锁、状态单调前进
config.js 状态目录、配置、凭据、原子写
secret-input.js 令牌输入(POSIX mode 校验 / Windows ACL 校验)
workorder.js 协作工作单状态机
errors.js 稳定错误码与退出码
redact.js 输出脱敏许可
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Remote MCP server to run your Atako AI agents: chat, projects, files, integrations and channels.
Read and write shared BitsWeave context, projects, tasks, and work sessions through MCP.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceExposes authorized ChatGPT, DeepSeek, Kimi, and Grok web sessions to agents as MCP tools, including chat and local file attachments over HTTP or stdio.7MIT
- AlicenseNot gradedqualityCmaintenanceEnables inspection and control of a running OpenCode TUI session, including live pane capture, prompt injection, interrupting turns, and blocking waits for session state changes.MIT
- AlicenseNot gradedqualityCmaintenanceEnables permission-scoped MCP clients to interact with DeepSeek Harness Desktop over a local loopback HTTP bridge, including checking status, listing models/workspaces/sessions, reading bounded session history, and creating, sending, waiting for, or canceling chats. Access is restricted per bearer token and only exposes the tools and sessions granted to that token.MIT
- AlicenseNot gradedqualityBmaintenanceLets Claude Code, Codex, or any MCP client drive DeepSeek Harness as a long-lived coding agent: starting and resuming conversations, dispatching tasks in the background, streaming live output and reasoning stats, interjecting or interrupting mid-turn, handling approval prompts, and collecting results later. Sessions persist by ID, so work survives process restarts and can be handed back to a DSH GUI when needed.479 npm15MIT