前言¶
用 DeepSeek Harness(DSH)做智能體開發時,接入一個 MCP server 的常規動作大致是:找到包名或 URL、打開 profile 的配置文件、手寫一段 YAML、重啓、再驗證工具是否出現在模型面前。包名拼錯,或者包已經從 npm 下架,往往要到運行時報錯才發現。
DSH 的理念是「一切皆插件」,這套流程同樣可以交給插件來做。下面介紹的 dsh-mcp-market 做的就是這件事:把「發現 MCP server → 填配置 → 激活」搬進 Web 界面,裝完不重啓,模型立刻能用上新工具。
這是什麼¶
dsh-mcp-market 是一個面向 DeepSeek Harness 的插件,定位是 MCP server 市場:內置一份經過篩選的目錄(15 個 server,每個都驗證過可用,提供中英文描述),瀏覽、搜索、篩選之後一鍵安裝進正在運行的 profile,底層依賴官方的 @deepseek-ai/dsh-mcp-client。
它由 LKMeng2001 維護,採用 MIT 許可證,代碼在 GitHub 開源。它解決的問題很具體:讓 MCP server 的安裝從手工改配置文件變成界面裏的幾次點擊,並且熱激活、不用重啓。
核心功能¶
目錄與 npm 存活校驗¶
插件內置一份目錄,包含 15 個 MCP server,描述提供中英文兩份。加載時會逐條把 stdio 類型的包名拿到 registry.npmjs.org 上做存在性校驗:已從 npm 下架的包會被置灰並禁止安裝。按 README 的說明,這一步一方面擋住死條目,另一方面防止包名被仿冒(typosquat)的條目混進目錄。
兩種傳輸方式的一鍵安裝¶
安裝界面支持兩類 server:
- stdio:本地進程型,安裝前填寫 command、args、env;
- streamable-http:遠程 URL 型,安裝前填寫 url、headers。
點擊安裝後,插件通過 ctx.loader.create() 在當前運行中的 profile 裏直接創建服務,不需要重啓 dsh;配置會持久化,重啓後依然生效。
已安裝列表的管理¶
Settings → MCP Market 的已安裝列表支持:
- 啓用 / 停用某個 server;
- 編輯配置,改完通過 HMR 重連,不用重啓;
- 卸載。
目錄裏沒有的 server,可以用手動「添加 server」表單自行錄入,參數項與目錄安裝一致。
目錄來源與離線回退¶
目錄數據有三層來源:
- 優先拉取 GitHub Pages 上的遠端目錄 JSON:
https://LKMeng2001.github.io/dsh-mcp-market/servers.json,其規範來源是倉庫裏的docs/servers.json,編輯推送後全局更新,不需要發版; - 拉取結果有內存緩存;
- 拉取失敗時回退到插件內置的快照
data/registry-snapshot.json(由docs/servers.json通過npm run sync:catalog生成)。
倉庫裏有一條 CI workflow,每天檢查目錄裏的每個 npm 包是否仍然存在。如果想在某個 profile 裏換目錄源,通過插件配置項 registryUrl 覆蓋即可。條目 schema 與 HTTP 路由、loader 的設計在倉庫的 README.zh.md 裏有文檔。
乾淨的持久化方式¶
所有安裝動作只寫 profile 配置文件 cordis.patch.yml 裏一個 # --- dsh-mcp-market managed --- 標記塊,塊外用戶自己寫的配置原樣保留,不會被插件改寫。
安裝與啓用¶
從 npm 安裝(推薦):
dsh plugin --profile web add dsh-mcp-market
本地檢出安裝(僅供開發調試,把路徑換成你自己的):
dsh plugin --profile web add "D:\path\to\dsh-mcp-market"
後續更新與卸載:
# update
dsh plugin --profile web update dsh-mcp-market
# remove
dsh plugin --profile web remove dsh-mcp-market
安裝或更新插件後需要重啓 dsh web(涉及宿主端變更),然後打開 Settings → MCP Market 就能看到目錄。
典型用法¶
裝好插件後,接入一個 MCP server 的完整流程是:
- 重啓
dsh web,打開 Settings → MCP Market; - 在目錄裏搜索目標 server,點擊安裝;
- 按傳輸類型填參數:stdio 填 command / args / env,streamable-http 填 url / headers;
- 確認安裝。插件通過
ctx.loader.create()熱激活該 server,模型立刻看到mcp__<serverName>__<tool>形態的工具,無需重啓。
目錄之外的 server 走手動添加表單,流程相同。
想參與開發的話,克隆倉庫後執行:
npm install
npm run build # tsc host → lib/, esbuild client → client/client.js
npm run typecheck
改動後先 npm run build 再重啓 dsh web(宿主端變更;客戶端變更可以用 dev watcher 觀察)。
適用場景與注意事項¶
適合誰:
- 不想手寫
cordis.patch.yml的 DSH 使用者,尤其是需要反覆試裝不同 MCP server 的時候; - 需要一份固定、經過存活校驗的 server 清單的團隊,可以用
registryUrl指向自己的目錄 JSON。
注意事項:
- 插件以當前 dsh 進程的權限運行,安裝前建議先讀一遍它的源碼與許可證(MIT);
- MCP server 本身是第三方代碼/服務:stdio 類型會在本機拉起子進程,只安裝你信任的來源;
- server 的配置(包括 env)以明文存進
cordis.patch.yml,不要把密鑰直接寫進去,需要時先加密; - 安全面上,插件的所有變更類路由都是同源 POST,並做 Origin 校驗。
結尾¶
dsh-mcp-market 把 MCP server 的「找、裝、管」收進 DSH 的設置頁:目錄帶 npm 存活校驗,安裝熱激活,配置只寫託管塊、不碰用戶手寫內容。對經常折騰 MCP 工具的 DSH 用戶來說,它省掉的是每次手改配置、重啓、排錯的時間。
- 社區目錄頁:https://www.skillhub.cn/plugins/LKMeng2001/dsh-mcp-market
- GitHub 倉庫:https://github.com/LKMeng2001/dsh-mcp-market
兩個鏈接均爲社區維護的獨立站點,與 DeepSeek、幻方無官方從屬關係。