dsh-mcp:MCP 管理界面与 Tool Search

前言

在使用 DeepSeek Harness(DSH)时,接入多个 MCP(Model Context Protocol)服务器会导致工具列表膨胀。全量注入这些工具会消耗大量 token,同时工具列表的反复更新会破坏缓存。dsh-mcp 是一个客户端插件,旨在解决这些问题:它提供可视化管理界面,支持按需检索(tool search)热注入工具,并确保工具列表稳定,最大化缓存命中率。

核心功能

该插件包含以下核心能力:

  1. 可视化管理:在 Settings → MCP 中管理服务器列表,支持新建、编辑、删除、测试连接、启停及刷新。
  2. 工具级精细控制:展开每个服务器查看工具列表,默认全选,可取消勾选仅加载需要的部分。
  3. 进程级环境变量:支持全局 KV 配置。对于 streamable-http 服务器,可在请求头中使用 ${变量名} 语法,连接时自动替换为配置值(例如 Authorization: Bearer ${TOKEN})。
  4. 双注入模式:提供 search(按需检索,省 token)与 full(全量注入)两种模式。
  5. 图片结果透传:MCP 工具返回的图片经附件服务投影为引用进入模型上下文,带预检与降级文案。
  6. 零 npm 依赖:直接对接 DSH 内部能力。
  7. OAuth 认证支持:支持授权码 + PKCE 流程,token 自动刷新(24 小时内活跃自动续期)。
  8. 系统证书校验:HTTPS 连接默认按系统证书校验,无需额外配置。

安装与启用

安装命令如下:

dsh plugin --profile web add github:ArvinQi/dsh-mcp

该插件支持版本:dsh 0.2.0-rc.2。

安装后,插件会自动注册为 profile 的 bundle 层。重启 dsh web 后,通过 Settings → MCP 即可进入可视化管理页面。

配置与用法

在 Settings → MCP 页面中,你可以进行以下操作:

  1. 声明式服务器接管:
    DSH 原生支持在 cordis.patch.yml 中声明 MCP 服务器。插件会读取这些声明。

    • 声明优先:如果 cordis.patch.yml 中已存在同名声明的服务器(且未 disabled),插件将不会挂载同名行,以避免工具注册表冲突。
    • 接管/释放:点击“接管”后,插件会在受管块内写入 disabled: true,让出 serverName 并由插件行接管挂载,从而启用 OAuth、凭据托管等功能。点击“释放”则交还控制权。
  2. OAuth 认证:
    OAuth 是显式开关。只有在设置页勾选“使用 OAuth 授权”时,才会挂载 OAuth provider。

    • 未勾选时不会自动挂载。
    • 授权前只显示“授权中”,授权失败会写明原因。
    • 授权由设置页按钮发起,宿主打开系统浏览器完成,本页每 5 秒轮询状态。
  3. Tool Search 模式:
    使用 search 模式时,模型通过 mcp_tool_search 热注入所需工具,大幅节省 token。工具列表稳定化机制确保未变化的工具保留原注册,最大化缓存命中。

适用场景与注意

  • 适用场景:需要精细控制多个 MCP 服务器、希望节省 token 消耗、需要处理复杂认证(OAuth)或内网 HTTPS 证书校验的场景。
  • 注意:
    • 插件以当前 dsh 进程权限运行,安装前请检查源码与许可证(MIT)。
    • 升级时,插件会按已有 OAuth 凭据自动迁移。
    • 对于使用静态 token 的服务器,不要勾选 OAuth 选项,否则会被误判为 OAuth 挑战。
羽毛球分组比赛记分
小程序二维码

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

小夜