dsh-mcp-connect:在 DSH Web 设置页管理 MCP 服务器

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye