apakohzzz/dsh-custom-json-mcp:DSH 左侧栏 MCP 服务器管理

前言

在 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 Code mcp.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 服务为例,完整流程如下:

  1. 服务器要求身份验证时,该行显示连接失败(401),并给出「OAuth 授权」按钮。
  2. 点击后在系统浏览器打开授权页;页面行内同时提供「打开授权页面」和「复制链接」,浏览器没有自动打开时可手动访问。
  3. 授权完成后服务器自动重连,显示已授权与激活的工具数;可随时重新授权或撤销授权。

授权服务器不支持动态注册时,请在 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye