前言¶
在 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 Codemcp.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 服務爲例,完整流程如下:
- 服務器要求身份驗證時,該行顯示連接失敗(401),並給出「OAuth 授權」按鈕。
- 點擊後在系統瀏覽器打開授權頁;頁面行內同時提供「打開授權頁面」和「複製鏈接」,瀏覽器沒有自動打開時可手動訪問。
- 授權完成後服務器自動重連,顯示已授權與激活的工具數;可隨時重新授權或撤銷授權。
授權服務器不支持動態註冊時,請在 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