前言¶
在 DSH 中手动维护 MCP 服务器配置需要切换到编辑器或配置文件,添加或删除服务器后还要重启。本插件在 DSH 左侧栏新增「连接器」页面,可以直接粘贴 MCP JSON 配置,随时添加、停用、重新连接或删除服务器,并查看每个服务器的连接状态与工具数量。
插件信息¶
- 插件名:apakohzzz/dsh-custom-json-mcp
- 维护者:ApakohZzz
- 分类:客户端
- 版本:1.0.1
- 支持 DSH:>=0.2.1-rc.2 <0.2.2
安装与启用¶
在 DeepSeek Harness 打开「插件 → 添加插件」,填入仓库地址:
https://github.com/ApakohZzz/dsh-custom-json-mcp
也可以使用 github:ApakohZzz/dsh-custom-json-mcp;需要固定版本时在地址后加 #v1.0.1 这样的标签。DSH Web 版可运行:
dsh plugin --profile web add https://github.com/ApakohZzz/dsh-custom-json-mcp
安装后启用插件,左侧栏会出现「连接器」;升级到新版本后请按宿主提示重启 DSH。
页面功能¶
「连接器」页面分为两个分组:
- 自定义 MCP 服务器:在本页添加的服务器。每行提供编辑(齿轮)、重新连接、删除(两次确认)与启停开关。已连接时显示绿点和激活的工具数;连接失败时显示闪烁红点,并用警告框给出原因和处理建议。
- 插件注册的 MCP 服务器:其他插件(如腾讯云服务器 MCP)挂载的 MCP 连接,只读展示。HTTP 服务器提供 OAuth 授权按钮。两个分组各自显示在一块底板上,没有服务器时底板内显示「当前暂无」提示。
点击齿轮打开预填的配置页,修改后保存即重新连接;已存入凭据库的密钥只以 ${名称} 引用显示。
支持的 JSON 格式¶
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "C:/Users/me/Documents"]
},
"remote": {
"type": "http",
"url": "https://example.com/mcp",
"headers": { "Authorization": "Bearer ${MY_MCP_TOKEN}" }
}
}
}
- 顶层可以是 Claude Desktop / Cursor / Windsurf / Claude Code 的
.mcp.json的mcpServers、VS Codemcp.json的servers、VS Code 设置中的mcp.servers,或直接的「名称 → 配置」映射;支持 JSONC 注释与尾逗号。 - 本地命令:
command、args、env、cwd;远程服务:type: "http"、"streamable-http"或"streamableHttp",url(也接受httpUrl、serverUrl)与headers。 - 可选字段:
disabled/enabled、toolCallTimeoutMs(1000–3600000),以及 HTTP 服务器的oauth.clientId、oauth.clientSecret、oauth.scope(或scopes)、oauth.callbackPort。 - 服务器名称只能包含字母、数字、
-、_,最多 32 个字符,且不能与其他插件的 MCP 服务器重名。 - 不支持:SSE 传输、
envFile、VS Code 的inputs与${input:…}、${workspaceFolder}等编辑器变量。不支持的字段会被逐条报错或标为忽略。
凭据管理¶
${NAME}、${env:NAME}与${NAME:-默认值}从 DSH 凭据服务解析(存储值优先,其次是启动 DSH 的环境变量);${userHome}与${pathSeparator}也可使用。缺少的凭据可在配置页直接填写。- 粘贴的明文密钥会在保存时自动移入 DSH 凭据库,配置中只保留
${MCP_<服务器>_<字段>}引用:名称含 KEY / TOKEN / SECRET / PASSWORD / AUTH 等的env与headers值、--api-key xxx或--token=xxx形式的参数、mcp-remote的--header "Authorization: Bearer xxx",以及 URL 中的?api_key=等查询参数。删除服务器时一并移除这些自动生成的凭据。 - DSH 启动 stdio 子进程时会去掉继承环境中名称含 KEY / TOKEN / SECRET / PASSWORD 的变量,因此服务器需要的密钥必须写在
env中(可使用${NAME}引用)。 - 编辑页面不会回显任何已保存的密钥。
OAuth 授权¶
对未配置 Authorization 请求头的 HTTP 服务器,可点击「OAuth 授权」:插件按 MCP 授权规范发现授权服务器(RFC 9728 / RFC 8414),在需要时动态注册客户端(RFC 7591),使用 PKCE 与 resource 参数在系统浏览器中完成授权,回调地址为本机 http://127.0.0.1:<端口>/callback。令牌作为 DSH 凭据记录保存,到期前自动刷新,授权完成后服务器自动重新连接。
以腾讯云 Lighthouse 的 MCP 服务为例,完整流程如下:
- 服务器要求身份验证时,该行显示连接失败(401),并给出「OAuth 授权」按钮。
- 点击后在系统浏览器打开授权页;页面行内同时提供「打开授权页面」和「复制链接」,浏览器没有自动打开时可手动访问。
- 授权完成后服务器自动重连,显示已授权与激活的工具数;可随时重新授权或撤销授权。
授权服务器不支持动态注册时,请在 JSON 中填写预先注册的 oauth.clientId(以及需要的 oauth.clientSecret、oauth.callbackPort)。插件注册的服务器授权后,本插件只为该 MCP 连接补充 Authorization 请求头,不修改原插件配置;撤销授权即恢复原状。要求授权服务器使用 HTTPS(本机地址除外)。
安全说明¶
- 添加 stdio 服务器等同于允许以你的用户权限在本机运行该命令,请只添加可信来源的服务器。
- 管理操作只开放给 DSH 已登录的本机页面(宿主的 Host/Origin 校验与浏览器认证),不向模型提供增删服务器的工具。
- 服务器定义写入当前 profile 的
cordis.patch.yml(经 DSH 设置服务),密钥写入 DSH 凭据库。
已知限制¶
- 状态读取依赖官方客户端的公开行为:断线重连状态来自其日志,工具数来自工具注册表。
- 仅支持 MCP 工具;资源由 DSH 内置的 MCP 资源工具提供,提示词模板不受支持(与官方客户端一致)。
- 正在执行的模型请求不会中途获得新工具;连接或断开后,工具变化从下一次请求起生效。
生态背景¶
DeepSeek Harness 的理念是「一切皆插件」。本插件为社区开发,与 DeepSeek 无隶属或背书关系。社区目录(https://www.skillhub.cn)是独立站点,与 DeepSeek / 幻方无官方从属关系。
来源¶
- https://github.com/ApakohZzz/dsh-custom-json-mcp
- https://www.skillhub.cn/plugins/ApakohZzz/dsh-custom-json-mcp