dsh-mcp-master
v0.1.0
Published
MCP Master for DeepSeek Harness: global and project (.mcp.json) MCP servers, chosen per session from a picker beside the model selector — switchable at any time — with OAuth sign-in and trust review for project servers.
Maintainers
Readme
dsh-mcp-master
English | 中文
面向 DeepSeek Harness 的 MCP Master。 按会话选择要使用的 MCP 服务器 —— 来自全局列表和工作区的项目列表。选择器就在输入框工具栏、模型选择器的左边:新建会话时选,会话开始后也能像切换模型一样随时切换。
- 项目服务器来自其他 Agent 已在使用的文件:
.mcp.json(Claude Code)、.cursor/mcp.json、.vscode/mcp.json、.dsh/mcp.json。 - 全局服务器来自
~/.dsh/mcp-master/mcp.json(同样的mcpServers格式)。同名时项目服务器覆盖全局服务器。
选择器
[ 🔌 MCP 2 ● ] [ 模型 ▾ ] [ ➤ ] —— 出现在每个会话(包括刚新建、还没发消息的会话)的输入框工具栏中。
- 不用时零占位:没有任何全局或项目服务器时不显示。
- 标签:本会话启用的服务器数量 + 一个汇总状态点(绿:已连接 · 黄:需要登录 · 红:出错 · 闪烁:启动中)。小蓝点表示有待确认信任的项目服务器。
- 面板(点击标签打开;Esc / 点击外部关闭):分「项目」「全局」两组。每行的勾选框 = 在本会话中使用,另有状态、传输方式、
默认标记,以及行内「登录 / 重试」。展开一行可查看命令/URL(配置原文,不展开变量)、认证方式、服务端版本、工具列表、日志,以及重新连接、退出登录、撤销信任。 - 底栏:显示新会话默认启用哪些服务器;「设为新会话默认」把当前选择保存为该工作区默认(「恢复按配置文件」回到文件中
enabled标记的默认值)。 - 只使用主题 token(跟随亮/暗色),文案跟随「设置 → 通用 → 语言」。
会话如何获得服务器
| 主题 | 说明 |
|---|---|
| 新会话 | 从工作区默认开始:已保存的默认;否则为所有已信任、且在文件中未标记 "enabled": false / "disabled": true 的服务器。 |
| 分叉与子 Agent | 继承父会话(parentSession)的选择。 |
| 会话中切换 | 勾选/取消只在本会话注册/注销该服务器的工具,从下一步开始生效。工具的增减由 DSH 自己记录在会话日志中(developer/message 的 tool-addition/removal),因此历史、恢复和重放保持一致 —— 这与 Agent preset 不同:preset 是整套插件组合,会话开始后就被锁定。 |
| 持久化 | 选择、默认值、信任与 OAuth 令牌保存在 ~/.dsh/mcp-master/state.json(0600),不会修改任何配置文件。 |
| 进程生命周期 | 只要有活动会话(或在界面中打开但尚未开始的会话)选中某服务器,它就保持运行;最后一个会话取消选择 2 分钟后停止;工作区没有会话也没人查看 15 分钟后整体关闭。 |
信任(项目服务器)
克隆下来的仓库里的 .mcp.json 可以运行任意命令,所以项目服务器必须先信任才能运行(与 Claude Code 对项目级服务器的审批一致)。勾选未信任的服务器时会展示确切的命令/URL,点击「信任并启用」。信任按工作区保存并绑定配置原文:命令、参数、环境变量、URL 或请求头一旦变化,服务器会变为「配置已变更」,需要再次确认。全局服务器由你自己维护,始终受信任。autoTrust: true 可跳过确认。
传输与认证
- stdio(独立进程组,连同子进程回收;工作目录为工作区根目录)、Streamable HTTP(会话 ID、SSE 响应、
list_changed推送)、旧版 HTTP+SSE(自动回退);会响应服务端的ping/roots/list。 - OAuth 遵循 MCP 授权规范:RFC 9728 → RFC 8414/OIDC 发现 → RFC 7591 动态客户端注册 → 授权码 + PKCE(S256)(携带 RFC 8707
resource),之后自动刷新。令牌按服务器 URL 保存,登录一次所有工作区通用。显式配置的Authorization头原样使用;不支持动态注册的服务商可配置"oauth": { "clientId", "clientSecret", "scope" }。 - 变量:
${VAR}、${VAR:-默认值}、${env:VAR}、${workspaceFolder},取值来自 DSH 进程环境叠加登录 shell 环境(~/.zshrc中导出的变量和 shellPATH在桌面版中同样可用)。 - 工具命名为
mcp__<服务器>__<工具>,与内置 MCP 客户端一致;输入 schema 会折叠为注册表支持的 JSON Schema 子集;带readOnlyHint的工具可并行执行。
配置(可选)
见 README.md。
开发
pnpm install
pnpm run verify # 构建 + 类型检查 + 测试重新构建已安装的副本后需要重启 DSH:Host 模块是 ES module,不会被原地重新加载。
许可
MIT
