dsh-destinywind-mcp:DSH 下的 MCP 可視化管理與按需工具注入

前言

在 DeepSeek Harness(DSH)裏接多個 MCP 服務器時,工具數量很容易漲到上百個。若每輪對話都把全部工具寫進系統提示詞,token 開銷會明顯放大;同時 MCP 側 tools/list_changed 通知會導致工具反覆註銷與重註冊,緩存命中率下降。另一方面,服務器啓停、環境變量、憑據和工具勾選若全靠手改配置文件,運維成本也高。

下面介紹社區插件 dsh-destinywind-mcp(維護者 rickwindman,分類 admin-security)。它在 DSH Web 設置裏提供 MCP 管理界面,並延續自 dsh-mcp 的能力思路:可視化託管服務器、精細控制工具加載,以及 search / full 兩種注入模式。插件基於 dsh-mcp 1.12.0(MIT)二次修改,npm 包名爲 dsh-destinywind-mcp,當前版本 1.0.0。

這是什麼

dsh-destinywind-mcp 是 DSH 的 Web 端插件:在 Settings → MCP(入口在「技能」下方)集中管理 MCP 服務器註冊表,對接 Harness 內部的 MCP 客戶端、存儲域與憑據服務。

它主要解決三類問題:

  • 缺少可視化管理入口時,新建/編輯/刪除、測試連接、啓停與刷新都可在 UI 完成;
  • 多服務器場景下,通過按需檢索(mcp_tool_search 熱注入)或全量注入,控制工具進入上下文的規模;
  • 進程級環境變量與密鑰分離:普通 KV 可列表維護,敏感值走憑據託管;請求頭支持 變量名 或 ${變量名} 在連接時替換。

DSH 生態採用「一切皆插件」;SkillHub 目錄頁 爲社區收錄站點,與 DeepSeek / 幻方無官方從屬關係。安裝與運行前請自行查看 GitHub 倉庫 源碼與 MIT 許可證。插件以當前 dsh web 進程權限運行,接入的 MCP 命令與網絡訪問範圍與此一致。

核心功能

以下能力均來自倉庫 README 與 package.json 說明,可按需在設置頁逐項使用。

可視化管理與配置方式

  • 服務器生命週期:列表展示,支持新建、編輯、刪除、測試連接、啓停、刷新;新增服務器可走彈窗,並內置 GitHub 相關預設(package.json 描述)。
  • JSON 全量維護:「JSON 維護配置」面板以 JSON 數組查看/編輯全部服務器,應用即保存。
  • 工具級開關:展開各服務器工具列表,默認全選,可取消勾選以只加載需要的工具。
  • 雙注入模式:search 按需檢索以節省 token;full 全量注入,便於排查「工具是否註冊成功」。
  • 圖片結果透傳:MCP 返回的圖片經附件服務進入模型上下文,帶預檢與降級處理(上游 dsh-mcp 實現說明)。

環境變量、憑據與 OAuth

  • 進程級環境變量:全局 KV 配置支持批量添加;服務器請求頭 value 寫變量名或 ${變量名} 即可在連接時替換(例如 Authorization: Bearer ${TOKEN})。
  • 密鑰託管:敏感信息經 DSH 憑據服務存儲,不寫死在明文配置裏(package.json 描述)。
  • OAuth:對 streamable-http 且需 MCP OAuth(授權碼 + PKCE)的服務器,可在配置中顯式開啓(設置頁「使用 OAuth 授權」,oauth: true);連接時打開瀏覽器授權,token 持久化並由 SDK 刷新。若服務器使用靜態 Authorization 頭,不應誤開 OAuth,否則 401 可能被當成 OAuth 挑戰而反覆彈授權。

與 cordis 聲明式 MCP 的協作

DSH 可在 cordis.patch.yml 裏用 @deepseek-ai/dsh-mcp-client 聲明 MCP 服務器。插件會讀取這些聲明並在設置頁只讀展示(標記「cordis 聲明」)。同名 serverName 時聲明優先;可通過「接管 / 釋放」在聲明行與插件託管行之間切換,以啓用 OAuth、憑據、${VAR} 頭替換等僅插件側支持的能力。規則與限制(如缺少顯式 id、含 !!js 的聲明不可接管等)以 README 爲準。

宿主架構要點

插件分 host 與 client:lib/index.js 註冊 mcpManager 服務並持久化 mcp_servers 存儲域;client 在 apply() 中自行掛載 remote 命名空間,設置頁通過內部 API 操作。運行時依賴 @deepseek-ai/* 等 peer 依賴,由 DSH profile 的模塊解析提供,插件本身零 npm 依賴打包。

倉庫 README 寫明在 dsh 0.1.6-alpha.2 上開發與驗證;DSH 與插件聲明版本不一致時,設置頁會給出排查提示(檢查註冊行、重啓 dsh web、硬刷新、同步升級)。使用前請對照本機 DSH 版本與 package.json 中的 dsh 字段。

安裝與啓用

本插件聲明瞭 dsh.bundle.patch,通過 profile 安裝 bundle 即可寫入依賴並自動追加註冊行,無需手工改配置文件。

方式一:plugin_manager

plugin_manager { action: "install_bundle", target: "<本倉庫絕對路徑>" }

方式二:命令行 link 安裝(包裝進 profile,由 bundle 補丁自動註冊):

dsh plugin --profile web add link:<本倉庫絕對路徑>

本地 link: 安裝時,插件目錄需包含指向 $DSH_HOME/profiles/node_modules 的 node_modules symlink(開發用,不入庫),否則 symlink 被 realpath 後可能無法解析 @deepseek-ai/*(README 說明)。

生效步驟(兩步缺一不可):

  1. 重啓 dsh web——宿主半部與 client roster 在進程啓動時裝載,僅刷新瀏覽器不夠。
  2. 硬刷新瀏覽器(Ctrl + Shift + R)——避免加載緩存的舊 client bundle。

若只改客戶端打包產物 lib/client.js,刷新頁面即可;改 lib/index.js 等宿主代碼仍需重啓 dsh web。

典型用法

打開管理頁

重啓並硬刷新後,在 DSH Web 打開 設置(Settings)→ MCP,即可看到服務器列表與全局選項(含注入模式等)。

添加 MCP 服務器(示例)

在 cordis.patch.yml 中聲明 stdio 型 GitHub MCP 的寫法(只讀展示或自行維護聲明時使用):

- insert:
    - id: mcp-github
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        transport: stdio
        serverName: github
        command: npx
        args: ['-y', '@modelcontextprotocol/server-github']

在設置頁中則可通過「添加服務器」表單或 JSON 面板維護同等信息;需要 OAuth、憑據或頭佔位符時,優先使用插件託管行而非純聲明行(README「聲明式服務器」一節)。

確認工具進入會話

  1. 確認對應服務器狀態爲已連接,且所需工具已勾選(默認全選)。
  2. 注入模式爲「按需檢索」時,模型通過 mcp_tool_search 檢索後纔會熱注入工具,未檢索到的工具不在系統提示詞中屬正常現象;可臨時切到「全量注入」驗證註冊是否成功。

常見問題(節選)

  • 看不到 MCP 菜單:按順序檢查是否重啓 dsh web、是否硬刷新、是否裝到當前 profile(如 web)、peer 依賴是否聲明完整(可運行 node tests/check-peers.mjs)。
  • 列表空或 API 404:多爲宿主 mcpManager 未註冊或未重啓;升級插件後需重啓並硬刷新,避免 client 與 host 版本混用。
  • 內網 HTTPS 證書錯誤:可用 NODE_OPTIONS=--use-system-ca 啓動 dsh web,或配置 NODE_EXTRA_CA_CERTS 後重啓。

完整 Q&A 見倉庫 README「安裝使用」與「常見問題排查」章節。

適用場景與注意

適合誰

  • 在 DSH Web profile 下頻繁增減 MCP 服務器、需要 UI 啓停與測試連接的開發者;
  • 接入多個 MCP、希望用 search 模式控制工具 token 開銷的智能體場景;
  • 需要把密鑰放進憑據服務、在請求頭用 ${VAR} 引用環境變量的部署方式;
  • 已用 cordis.patch.yml 聲明 MCP,又希望在同一界面查看聲明來源並選擇性「接管」以啓用 OAuth 等能力的用戶。

使用前注意

  • 插件邏輯與 MCP 子進程、遠程 HTTP 訪問均在 DSH 進程權限下執行,安裝前請審閱源碼與 NOTICE(含 vendored 來源說明)。
  • 聲明式服務器與插件存儲行同名時會衝突,頁面會提示;OAuth 需顯式開啓,靜態 Bearer 服務器勿誤開。
  • 社區目錄當前星標爲 0,功能以倉庫文檔與本地驗證爲準,勿假設與上游 dsh-mcp 行爲完全一致(本倉庫爲修改版)。

結尾

dsh-destinywind-mcp 把 MCP 服務器註冊、工具勾選、環境變量與憑據、OAuth 和注入模式收斂到 DSH Web 的 Settings → MCP,併兼容 cordis 聲明式配置。若你已在 Harness 裏堆疊多個 MCP,又希望少改文件、可控 token,可按 README 用 link: 或 install_bundle 裝入當前 profile,重啓 dsh web 並硬刷新後從設置頁開始配置。

  • 目錄頁:https://www.skillhub.cn/plugins/rickwindman/dsh-destinywind-mcp
  • GitHub:https://github.com/rickwindman/dsh-destinywind-mcp
羽毛球分组比赛记分
小程序二维码

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

小夜