前言¶
在 DeepSeek Harness 里接 MCP(Model Context Protocol)服务器,常见做法是改 cordis.patch.yml 或手写 YAML,保存后往往还要重启 Harness,才能看到工具是否挂上。连接失败时,原因分散在日志里,批量从 Claude Desktop / Cursor 迁配置也不顺手。
dsh-mcp-connect 把 MCP 服务器的添加、编辑、测试、导入和运行时连接收进 Web 设置页的「MCP 服务器」一节:保存即连接,不必手改 YAML,也不必为改一条 MCP 配置重启 dsh web。
这是什么¶
dsh-mcp-connect 由社区维护者 BigNewbie 发布,许可证为 MIT(README 与 package.json 一致)。插件在 DeepSeek Harness 的 Web 界面中提供 MCP 管理 UI,并把已保存的服务器在运行时挂载为工具,命名形如 mcp__<serverName>__<tool>,供所有会话调用。
前提:DeepSeek Harness >= 0.2.0,且使用 Web 界面(dsh web)。package.json 中 engines.dsh 写明 >=0.2.0-rc.2 <0.3.0-0。
核心功能¶
下面按 README 列出的能力说明,均可在安装后于 设置 → MCP 服务器 使用。
设置页管理界面¶
「MCP 服务器」独立成节;卡片展示实时状态、工具数量与失败原因。支持启用/停用、编辑、删除(删除需二次确认)。配置文件里已有的 MCP 行会以只读卡片列出,便于从 YAML 迁移。
两种传输¶
- streamable-http:URL + 请求头。
- stdio:命令 + 参数 + 环境变量 + 工作目录。
README 注明:sse 传输不受支持(与官方 MCP 客户端一致,仅 stdio 与 streamable HTTP)。
先测后存¶
表单内「测试连接」会真实连一次并列出服务端工具,确认无误后再保存;不保存也可以先测。
JSON 批量导入¶
兼容 Claude Desktop / Cursor 常见写法:裸对象、外层带 mcpServers、或数组;逐条返回新增/更新/失败原因。type 可为 http、streamable-http、stdio;省略时按是否有 url / command 推断。enabled: false 或 disabled: true 表示只保存不连接。
环境变量与 ${VAR}¶
连接时从 ~/.dsh/.env 展开占位符;进程环境里非空同名变量优先。注册表只保存占位符原文,换 token 只需改 .env。url、headers、env、args、command、cwd 等字符串字段均可写 ${VAR};缺失变量会明确报错。设置页顶部显示 .env 路径与变量个数(仅名字,值不离开 Host)。
运行时与 YAML 共存¶
保存、停用、删除立即生效;停用会断开并卸载工具。编辑支持原地热更新,serverName 不可改(改名需删除后重建)。另附带 mcp_servers 工具,模型可用同一套操作增删、测试、导入服务器。
状态含义¶
| 状态 | 含义 |
|---|---|
| 已连接 · N 个工具 | 会话中可调用 mcp__<name>__* |
| 连接中… | 握手或重连中 |
| 连接失败 | 首次连接失败,卡片显示原因(含缺失的环境变量名) |
| 已停用 | 不连接、不注册工具 |
已知限制(README)¶
仅桥接 MCP tools(与官方 dsh-mcp-client 一致),Resources / Prompts 不暴露给模型。一个 serverName 只能有一个实例。首次连接失败不会无限自动重试;需改配置保存或点「重新加载」。导入时不会自动把明文密钥改写成 ${VAR}。
安装与启用¶
方式一:Web 插件页(推荐)¶
侧栏 Plugins → Install → 粘贴:
github:BigNewbie/dsh-mcp-connect
安装完成后刷新页面,打开 设置 → MCP 服务器。包内带 dsh.bundle.patch,安装时自动作为 bundle 挂载,无需手改 YAML。
方式二:让 agent 安装¶
plugin_manager install_bundle target=github:BigNewbie/dsh-mcp-connect
方式三:CLI + 手动挂载¶
dsh plugin --profile web add github:BigNewbie/dsh-mcp-connect
CLI 只把包装进 profile,不会自动选中 bundle;需在 ~/.dsh/profiles/web/cordis.patch.yml 末尾追加:
- insert:
- id: mcp-connect
name: dsh-mcp-connect
然后重启 dsh web。
卸载¶
plugin_manager remove_bundle target=dsh-mcp-connect
或在插件页停用/移除。~/.dsh/mcp-servers.json 不会被删除。
典型用法¶
添加服务器¶
打开 设置 → MCP 服务器,选择传输方式并填表。serverName 只允许字母、数字、_、-,最长 32 位,并作为工具名前缀。可先「测试连接」,成功后再保存。
JSON 导入示例¶
粘贴到「导入 JSON」:
{
"notes": {
"type": "http",
"url": "http://127.0.0.1:3000/mcp",
"headers": { "Authorization": "Bearer ${NOTES_TOKEN}" }
},
"github": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
}
}
在 ~/.dsh/.env 中配置对应变量,例如:
# 注释
NOTES_TOKEN=你的 token
SEARCH_API_KEY="带空格或 # 的值请加引号"
改完 .env 后点「重新加载」使新值生效。
配置文件位置¶
服务器定义保存在 ~/.dsh/mcp-servers.json(所有 profile 共用),由插件维护;一般无需手改,若手改后需点「重新加载」。单条结构示例(摘自 README):
{
"version": 1,
"servers": [
{
"serverName": "notes",
"transport": "streamable-http",
"enabled": true,
"toolCallTimeoutMs": 60000,
"url": "http://127.0.0.1:3000/mcp",
"headers": { "Authorization": "Bearer ${NOTES_TOKEN}" }
}
]
}
适用场景与注意¶
适合谁:经常在 DSH Web 里切换或调试 MCP、需要从 Cursor / Claude Desktop 批量导入配置、希望用 .env 管理密钥而不把 token 写进 JSON 的开发者。
权限与安全:插件以当前 dsh web 进程权限运行;能添加 stdio 服务器等于能在本机执行任意命令。README 要求不要把 dsh web 暴露到公网;默认只监听回环地址时风险相对可控。管理接口走同源 /mcp-connect/api/*,复用 DSH 的 Host/Origin 与登录态,未登录返回 401。安装前建议阅读仓库源码与 MIT 许可证,确认符合你的部署策略。
DeepSeek Harness 生态强调「一切皆插件」;社区目录站点与 DeepSeek / 幻方无官方从属关系,本插件来自社区仓库,非官方应用商店内置项。
结尾¶
dsh-mcp-connect 把 MCP 的配置与连接从 YAML 和重启循环里抽出来,放到 Web 设置页:测通再存、JSON 导入、运行时挂载,并与已有 YAML 只读对照,适合在 Harness 0.2.x Web 场景下日常维护 MCP。
- 目录页:https://www.skillhub.cn/plugins/BigNewbie/dsh-mcp-connect
- GitHub:https://github.com/BigNewbie/dsh-mcp-connect