前言¶
在 DeepSeek Harness(DSH)裏接 MCP 服務器,內置的 @deepseek-ai/dsh-mcp-client 只支持在配置裏寫靜態 headers,沒有 OAuth,也不支持本地 stdio 進程。遠程服務要 OAuth 登錄、本地工具要用 npx / uvx 起子進程時,就得自己改配置或繞路。
dsh-mcp-manager 是社區維護者 hyqhyq3 發佈的 DSH 插件,在 Web UI 的 Settings → MCP 頁面集中管理 MCP 服務器:HTTP 遠程服務可走瀏覽器 OAuth 或靜態 Bearer token,本地服務可走 stdio,工具按 mcp__<name>__* 命名註冊到 DSH 工具表。下面介紹它的定位、能力與用法。
這是什麼¶
dsh-mcp-manager(GitHub:hyqhyq3/dsh-mcp-manager,當前版本 0.6.0,MIT 許可證)是面向 DSH web profile 的 MCP 服務器管理插件。它通過 cordis.patch.yml 自動注入,無需手改 cordis.patch.yml。
分類上屬於 admin-security:OAuth 憑據與服務器配置落在本地狀態文件,靜態 token 只記環境變量名、不落盤明文。
核心功能¶
OAuth 與靜態 token 認證¶
HTTP 類型服務器支持兩種認證:
- OAuth(authorization code + PKCE):支持 RFC 7591 動態客戶端註冊、
refresh_token輪換,重啓後自動重連。在 UI 點 去認證 (Authenticate),瀏覽器完成授權後工具立即註冊。回調地址爲http://127.0.0.1:<port>/mcp-manager/callback/<id>,OAuth 提供方須允許 loopback redirect;來源取自瀏覽器當前訪問 DSH GUI 的 host/port。 - 靜態 Bearer token:配置裏填寫持有 token 的環境變量名(Codex 風格的
tokenEnv),token 本身不寫入配置文件。
此外支持自定義 HTTP 頭:headers 寫直接值,headerEnv 從環境變量讀取,對應 Codex 的 http_headers / env_http_headers。
stdio 本地進程¶
stdio 類型可直接執行 npx、uvx、python 等命令,插件通過子進程 stdin/stdout 走 JSON-RPC;進程退出後會重連並回收。Windows 10/11 上通過 cmd.exe 啓動,以正確解析 npx.cmd 等 shim。
就地編輯與工作區隔離¶
可在 UI 中重命名服務器、在 stdio 與 HTTP 之間切換、改認證或 headers,無需刪後重建。
全局服務器在任意工作區可見;工作區級服務器寫在 <workspace>/.dsh/dshmm/mcp.json,其工具只註冊到該工作區會話。工作區配置裏可用 exclude 屏蔽指定全局服務器。示例:
{
"mcpServers": {
"filesystem": { "type": "stdio", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "."] },
"unity-mcp": { "type": "http", "url": "http://localhost:8090/", "authMode": "static", "tokenEnv": "UNITY_MCP_TOKEN" }
},
"exclude": ["github"]
}
手改該文件會熱加載;JSON 無效時顯示錯誤,上一份有效配置繼續生效。
工具註冊與按需代理¶
默認關閉「On-demand MCP tool calls」時,每個已連接服務器的工具作爲一等工具暴露,命名與內置客戶端一致,例如服務器名 odin:
mcp__odin__search_tools mcp__odin__describe_tool
mcp__odin__execute_tool mcp__odin__list_tool_scopes
開啓按需模式後,模型側只看到三個代理工具:mcp_search_tools、mcp_describe_tool、mcp_execute_tool。原始 mcp__* 名不會出現在請求裏,直接調用會被拒絕。mcp_search_tools 默認最多返回 10 條匹配(硬上限 20),按服務器名、工具名、描述打分。
notifications/tools/list_changed 觸發時,stdio 與 Streamable HTTP 服務器只對新增、刪除或 schema 變更的工具做增量刷新。
狀態持久化在 ~/.dsh/mcp-manager.json(服務器配置、OAuth 客戶端註冊與 token;靜態 token 僅存環境變量名)。
安裝與啓用¶
環境要求:
- DSH
webprofile(npx @deepseek-ai/dsh web) - Node.js
^22.19或>=24,且pnpm在PATH上
官方安裝命令:
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:hyqhyq3/dsh-mcp-manager
安裝後重啓 dsh --profile web 並刷新頁面。包內聲明瞭 dsh.bundle.patch,插件會自動激活。
典型用法¶
- 打開 DSH Web UI 的 Settings → MCP。
- 點 + Add MCP server(之後可用 編輯 / Edit 修改):
- Scope(作用域):user爲全局;workspace綁定單個工作區,配置寫入該工作區的.dsh/dshmm/mcp.json。
- HTTP:填寫名稱(成爲mcp__<name>__*前綴)、URL、認證模式(OAuth 或 static token)、可選 headers。
- stdio:填寫名稱、命令、參數(每行一個)、環境變量、可選工作目錄。 - OAuth 服務器:點 去認證 → 瀏覽器登錄 → 回調後工具立即註冊。
- 靜態 token 服務器:填寫環境變量名(如
MCP_BEARER_TOKEN),保存後 stdio 會立即拉起並連接。 - 可選:在頁面頂部開啓 On-demand MCP tool calls;該設置按 profile 持久化,現有會話在下一次請求時生效。
狀態徽標包括 connected (N tools)、needs-auth、authorizing、error、disabled。可對每條服務器執行認證、編輯、啓用/禁用、刪除。Disable 會註銷工具並斷開連接,配置與 OAuth token 保留;Enable 重連且無需重新認證。禁用狀態跨重啓保持。
適用場景與注意¶
適合在 DSH Web 環境裏統一管理多 MCP 源的場景:需要 OAuth 的遠程 HTTP 服務、僅需 Bearer token 的 API、以及本地 stdio 工具鏈。工作區隔離適合「全局 GitHub MCP + 某項目專用 filesystem MCP」這類組合。
使用前注意:
- 插件以當前
dsh進程權限運行 stdio 子進程並讀寫~/.dsh/mcp-manager.json;安裝前應查看 GitHub 源碼 與 MIT 許可證,確認符合你的安全策略。 - OAuth 提供方必須支持 loopback redirect;靜態 token 須事先在環境中導出對應變量。
- 按需代理默認關閉;若工具很多、希望壓縮 Native 模式下的 schema 體積,可在 Settings → MCP 頂部開啓。
SkillHub 目錄頁(社區站點,與 DeepSeek / 幻方無官方從屬關係)當前顯示該插件約 11 stars、2 forks,分類 admin-security。
鏈接¶
- 目錄頁:https://www.skillhub.cn/plugins/hyqhyq3/dsh-mcp-manager
- GitHub:https://github.com/hyqhyq3/dsh-mcp-manager
經過上面的步驟,DSH 用戶可以在一個 Settings 頁面完成 MCP 的添加、認證、工作區隔離與工具暴露,補齊內置 MCP 客戶端在 OAuth 與 stdio 上的缺口。