前言¶
DeepSeek Harness(dsh)是 DeepSeek 開源的智能體運行時,官方倉庫把它概括成一句話:一切皆插件。模型適配、工具、會話、沙箱和網頁界面,都可以在配置層增刪,不必改核心源碼。項目目前仍是開發者預覽,接口會繼續變。社區裏已經出現獨立的插件目錄站點,把 GitHub 上帶 dsh-plugin 話題的倉庫集中展示;需要說明的是,這類目錄與 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。
日常用 dsh web 跑智能體時,很多人會把外部能力接到 MCP(Model Context Protocol)上:遠程 HTTP 服務、本機用 npx / uvx 拉起的進程,都算常見接法。DSH 自帶的 @deepseek-ai/dsh-mcp-client 能掛靜態 headers,但倉庫 README 寫明瞭兩處缺口:沒有 OAuth,也沒有本地 stdio 傳輸。需要瀏覽器登錄的遠程 MCP,或者一條命令在本機起一個 MCP 進程,都得另找辦法。
dsh-mcp-manager 把這件事收進 Web 界面的 設置 → MCP 頁:添加一次服務器,HTTP 可以走瀏覽器 OAuth 或環境變量裏的靜態 token,stdio 可以直接拉起本地進程,工具再按 DSH 慣例註冊成 mcp__<服務器名>__*。本文按社區目錄詳情頁、GitHub 倉庫 README(中英文)、package.json,以及官方 deepseek-ai/deepseek-harness 交叉覈對後整理。
這是什麼¶
dsh-mcp-manager 是一款面向 DeepSeek Harness Web 界面的開發與運行時插件,由 hyqhyq3 維護,採用 MIT 許可證,主要語言是 JavaScript。社區目錄把它歸在「開發與運行時」,收錄日期是 2026-08-06。倉庫創建於 2026-08-13;截至 2026-08-18,GitHub 顯示 7 星,目錄頁上的數字是 6,星標會變,以倉庫頁面爲準。package.json 裏的版本是 0.6.0。
它解決的問題很具體:在設置頁裏集中管理 MCP 服務器,補上內置客戶端缺的 OAuth 與本地 stdio。HTTP 服務器支持授權碼 + PKCE,並按 RFC 7591 做動態客戶端註冊;沒有 OAuth 的服務則用環境變量名引用 Bearer token,明文不寫進配置。stdio 服務器由插件自己 spawn 子進程,走 stdin/stdout 上的 JSON-RPC。工具既可以直接暴露給模型,也可以打開可選的按需 broker,把模型側表面收成三個固定工具。
核心功能¶
倉庫 README 列出的能力可以分成幾塊,下面只寫已經交叉覈對過的部分。
-
設置頁管理。client 半在
settings.section槽位掛一個 MCP 頁籤。添加、就地編輯、啓用/禁用、刪除都在同一頁完成:可以改名字、在 stdio 與 HTTP 之間切換、改認證方式和標頭,不必刪掉重建。狀態徽章包括已連接 (N 個工具)、待認證、認證中、錯誤、已禁用。禁用會註銷該服務器的工具並斷開連接,配置和 OAuth token 仍保留;再啓用時自動重連,不必重新登錄。 -
OAuth(授權碼 + PKCE)。host 半做動態客戶端註冊和 PKCE,回跳落在 DSH GUI 自己的 webserver 上,路徑形如
http://127.0.0.1:<端口>/mcp-manager/callback/<id>。origin 從瀏覽器實際地址派生,GUI 用哪個 host/port 訪問都可以。登錄一次之後,refresh_token會輪換,重啓後自動重連。每個 GUI origin 對應一次客戶端註冊;GUI 換地址後,下次登錄會重新註冊。 -
靜態 Bearer token。沒有 OAuth 的 HTTP 服務器走 Codex 風格的
tokenEnv:配置裏只寫環境變量名稱(例如MCP_BEARER_TOKEN),token 本身不落盤。還可以配headers(直接值)和headerEnv(值從環境變量讀),對齊 Codex 的http_headers/env_http_headers。 -
stdio 本地進程。命令可以是
npx、uvx、python等,插件負責拉起、重連,退出時回收子進程。Windows 下經cmd.exe啓動,以便解析npx.cmd這類 shim。HTTP 走 Streamable HTTP(POST JSON-RPC、Mcp-Session-Id、SSE 或 JSON 響應)。 -
工具註冊與按需 broker。默認把已連接服務器的工具註冊成與內置客戶端相同的
mcp__<服務器名>__*名稱,並對 JSON Schema 做註冊表支持的清洗。頁面頂部有一個「按需 MCP 工具調用」開關,默認關閉;打開後,Native 模式的 agent 只看到mcp_search_tools、mcp_describe_tool、mcp_execute_tool三個 broker,原始mcp__*不再出現在模型請求裏,直接調用也會被拒絕。該開關對整個 profile 生效,重啓後保持。stdio 和 Streamable HTTP 收到notifications/tools/list_changed時,只更新新增、刪除或 schema 變化的註冊。 -
工作區隔離。全局服務器對所有工作區可見;工作區服務器寫在
<工作區>/.dsh/dshmm/mcp.json,工具只註冊進工作目錄解析到該工作區的會話。選中某個工作區後,可以用「隱藏」屏蔽指定的全局服務器。serverName在全局和所有工作區來源之間必須唯一,重複會被標成衝突並跳過。手改mcp.json會被熱重載;JSON 無效時界面報錯,繼續使用上一次有效配置。工作區 OAuth token 仍寫在~/.dsh/mcp-manager.json,不進聲明式的mcp.json。
狀態文件是 ~/.dsh/mcp-manager.json:服務器配置、OAuth 客戶端註冊信息和 token 都在這裏。靜態 token 只保存環境變量名。
安裝與啓用¶
社區目錄詳情頁給出的安裝命令是:
dsh plugin add github:hyqhyq3/dsh-mcp-manager
倉庫 README 寫得更完整,因爲這個插件聲明瞭 dsh.client.platform 爲 web,需要掛到 web profile:
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:hyqhyq3/dsh-mcp-manager
裝完後重啓 dsh --profile web 並刷新頁面。包內聲明瞭 dsh.bundle.patch,插件會自動激活,不必手改 cordis.patch.yml。
如需可復現安裝,目錄頁建議固定 commit 哈希:
dsh plugin add github:hyqhyq3/dsh-mcp-manager#<commit>
前置條件按 README 覈對如下:
- DeepSeek Harness 使用 web profile(
npx @deepseek-ai/dsh web) - Node.js
^22.19或>=24,PATH裏有 pnpm - Windows 10/11 上跑 stdio 時,命令經
cmd.exe啓動
目錄頁有一條固定提示:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和許可證。
OAuth 還要求 MCP 服務器的授權方允許迴環重定向。回調由 DSH GUI 自己的 webserver 接收,不是另開一個端口去猜。
典型用法¶
打開 DSH Web UI 的 設置 → MCP,點 + 添加 MCP 服務器。
作用域選 user 時,服務器對所有工作區可見;選 workspace 時,從第二個下拉框指定工作區,配置寫入該工作區的 .dsh/dshmm/mcp.json。
HTTP 需要填名稱(決定 mcp__<名稱>__* 前綴)、URL、認證方式(OAuth 或靜態 token),以及可選標頭。OAuth 服務器保存後點 去認證,瀏覽器打開登錄頁,同意後跳回,工具會立刻註冊。靜態 token 只填環境變量名,例如 MCP_BEARER_TOKEN。
stdio 需要填名稱、命令、逐行參數、可選環境變量和工作目錄。保存後插件會立即拉起本地進程並連接。
按需模式關閉時(默認),名爲 odin 的服務器會把工具直接暴露給 agent,README 給的例子是:
mcp__odin__search_tools mcp__odin__describe_tool
mcp__odin__execute_tool mcp__odin__list_tool_scopes
打開按需模式後,Native agent 只看到三個 broker:
mcp_search_tools({ query, server?, limit? }):默認最多 10 條輕量結果,硬上限 20;查詢詞按服務器名+2、工具名+3、描述+1計分mcp_describe_tool({ name }):返回當前會話可見工具的描述和輸入 schemamcp_execute_tool({ name, arguments }):走 DSH 標準工具流水線執行;建議先 describe,但不強制
工作區配置也可以手寫。README 給的 mcp.json 示例如下:
{
"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"]
}
type 缺省爲 http;stdio 的 cwd 缺省爲工作區根。exclude 列出要在此工作區隱藏的全局服務器名稱。已在 DSH 註冊的工作區,也可以在 UI 裏直接增刪改,效果與手改文件相同。
適用場景與注意事項¶
適合已經在用 dsh web,並且需要把 MCP 接到智能體循環裏的人。比較對口的情況包括:遠程 MCP 必須走瀏覽器 OAuth;本機用 npx / uvx / python 起一個 stdio 服務器;希望按項目隔離 MCP,而不是所有工作區共用一套全局配置;MCP 工具很多,想用按需 broker 把每輪請求裏的 schema 收窄。
使用前有幾條邊界需要看清楚。
插件只橋接 MCP 的 tools,不橋接 resources 和 prompts。按需過濾目前只針對 DSH 默認的 native 呈現;使用 code 或 both 的 agent 會保留完整 MCP 目錄,避免生成式 SDK 不完整,或誤攔 Code Mode 子調用。
OAuth token 以明文 JSON 存在 ~/.dsh/mcp-manager.json 裏,README 要求把這個文件當機密。靜態 token 和 headerEnv 的值從環境變量讀取,不落盤。工作區 OAuth token 也在同一狀態文件,不寫進 mcp.json。
stdio 服務器是隨插件生命週期存活的常駐子進程。POSIX 下 args 按空格分詞,引號可以保護含空格的參數,但沒有 shell 展開。Windows 下整條命令行交給 cmd.exe,&、|、>、%VAR% 會被解釋,倉庫建議用絕對路徑,併爲含空格的參數加引號。
插件以當前 dsh 進程的權限運行。安裝社區插件前,應先看源碼和許可證;需要可復現環境時,把安裝命令釘到具體 commit。社區目錄是獨立站點,安裝命令以目錄頁和倉庫原文爲準,不要憑插件名自行拼接。
小結¶
dsh-mcp-manager 把 MCP 服務器的添加、認證、啓停和工作區隔離收到 DeepSeek Harness 的設置頁裏,補上了內置客戶端沒有的 OAuth(PKCE + 動態客戶端註冊)和本地 stdio。工具默認按 mcp__<名稱>__* 註冊,也可以打開按需 broker,讓 Native 模式只看到三個固定入口。它是社區 MIT 項目,不是官方內置能力;裝之前檢查倉庫,OAuth 狀態文件按機密保存。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-mcp-manager/
GitHub:https://github.com/hyqhyq3/dsh-mcp-manager