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

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

小夜