dsh-mcp-market:在 DeepSeek Harness 里一键安装 MCP server 的插件市场

前言

用 DeepSeek Harness(DSH)做智能体开发时,接入一个 MCP server 的常规动作大致是:找到包名或 URL、打开 profile 的配置文件、手写一段 YAML、重启、再验证工具是否出现在模型面前。包名拼错,或者包已经从 npm 下架,往往要到运行时报错才发现。

DSH 的理念是「一切皆插件」,这套流程同样可以交给插件来做。下面介绍的 dsh-mcp-market 做的就是这件事:把「发现 MCP server → 填配置 → 激活」搬进 Web 界面,装完不重启,模型立刻能用上新工具。

这是什么

dsh-mcp-market 是一个面向 DeepSeek Harness 的插件,定位是 MCP server 市场:内置一份经过筛选的目录(15 个 server,每个都验证过可用,提供中英文描述),浏览、搜索、筛选之后一键安装进正在运行的 profile,底层依赖官方的 @deepseek-ai/dsh-mcp-client。

它由 LKMeng2001 维护,采用 MIT 许可证,代码在 GitHub 开源。它解决的问题很具体:让 MCP server 的安装从手工改配置文件变成界面里的几次点击,并且热激活、不用重启。

核心功能

目录与 npm 存活校验

插件内置一份目录,包含 15 个 MCP server,描述提供中英文两份。加载时会逐条把 stdio 类型的包名拿到 registry.npmjs.org 上做存在性校验:已从 npm 下架的包会被置灰并禁止安装。按 README 的说明,这一步一方面挡住死条目,另一方面防止包名被仿冒(typosquat)的条目混进目录。

两种传输方式的一键安装

安装界面支持两类 server:

  • stdio:本地进程型,安装前填写 command、args、env;
  • streamable-http:远程 URL 型,安装前填写 url、headers。

点击安装后,插件通过 ctx.loader.create() 在当前运行中的 profile 里直接创建服务,不需要重启 dsh;配置会持久化,重启后依然生效。

已安装列表的管理

Settings → MCP Market 的已安装列表支持:

  1. 启用 / 停用某个 server;
  2. 编辑配置,改完通过 HMR 重连,不用重启;
  3. 卸载。

目录里没有的 server,可以用手动「添加 server」表单自行录入,参数项与目录安装一致。

目录来源与离线回退

目录数据有三层来源:

  1. 优先拉取 GitHub Pages 上的远端目录 JSON:https://LKMeng2001.github.io/dsh-mcp-market/servers.json,其规范来源是仓库里的 docs/servers.json,编辑推送后全局更新,不需要发版;
  2. 拉取结果有内存缓存;
  3. 拉取失败时回退到插件内置的快照 data/registry-snapshot.json(由 docs/servers.json 通过 npm run sync:catalog 生成)。

仓库里有一条 CI workflow,每天检查目录里的每个 npm 包是否仍然存在。如果想在某个 profile 里换目录源,通过插件配置项 registryUrl 覆盖即可。条目 schema 与 HTTP 路由、loader 的设计在仓库的 README.zh.md 里有文档。

干净的持久化方式

所有安装动作只写 profile 配置文件 cordis.patch.yml 里一个 # --- dsh-mcp-market managed --- 标记块,块外用户自己写的配置原样保留,不会被插件改写。

安装与启用

从 npm 安装(推荐):

dsh plugin --profile web add dsh-mcp-market

本地检出安装(仅供开发调试,把路径换成你自己的):

dsh plugin --profile web add "D:\path\to\dsh-mcp-market"

后续更新与卸载:

# update
dsh plugin --profile web update dsh-mcp-market

# remove
dsh plugin --profile web remove dsh-mcp-market

安装或更新插件后需要重启 dsh web(涉及宿主端变更),然后打开 Settings → MCP Market 就能看到目录。

典型用法

装好插件后,接入一个 MCP server 的完整流程是:

  1. 重启 dsh web,打开 Settings → MCP Market;
  2. 在目录里搜索目标 server,点击安装;
  3. 按传输类型填参数:stdio 填 command / args / env,streamable-http 填 url / headers;
  4. 确认安装。插件通过 ctx.loader.create() 热激活该 server,模型立刻看到 mcp__<serverName>__<tool> 形态的工具,无需重启。

目录之外的 server 走手动添加表单,流程相同。

想参与开发的话,克隆仓库后执行:

npm install
npm run build        # tsc host → lib/, esbuild client → client/client.js
npm run typecheck

改动后先 npm run build 再重启 dsh web(宿主端变更;客户端变更可以用 dev watcher 观察)。

适用场景与注意事项

适合谁:

  • 不想手写 cordis.patch.yml 的 DSH 使用者,尤其是需要反复试装不同 MCP server 的时候;
  • 需要一份固定、经过存活校验的 server 清单的团队,可以用 registryUrl 指向自己的目录 JSON。

注意事项:

  1. 插件以当前 dsh 进程的权限运行,安装前建议先读一遍它的源码与许可证(MIT);
  2. MCP server 本身是第三方代码/服务:stdio 类型会在本机拉起子进程,只安装你信任的来源;
  3. server 的配置(包括 env)以明文存进 cordis.patch.yml,不要把密钥直接写进去,需要时先加密;
  4. 安全面上,插件的所有变更类路由都是同源 POST,并做 Origin 校验。

结尾

dsh-mcp-market 把 MCP server 的「找、装、管」收进 DSH 的设置页:目录带 npm 存活校验,安装热激活,配置只写托管块、不碰用户手写内容。对经常折腾 MCP 工具的 DSH 用户来说,它省掉的是每次手改配置、重启、排错的时间。

  • 社区目录页:https://www.skillhub.cn/plugins/LKMeng2001/dsh-mcp-market
  • GitHub 仓库:https://github.com/LKMeng2001/dsh-mcp-market

两个链接均为社区维护的独立站点,与 DeepSeek、幻方无官方从属关系。

羽毛球分组比赛记分
小程序二维码

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

小夜