前言¶
在 DeepSeek Harness(DSH)或各類 Agent 開發環境裏,Model Context Protocol(MCP)服務常被用來擴展讀寫文件、調用工具等能力。配置往往寫在本地 JSON 裏,不一定進版本庫,也很少有人按安全基線逐項覈對。常見寫法例如用 npx -y 拉取未鎖版本的 npm 包:每次啓動都可能拿到上游最新版,一旦供應鏈被投毒,Agent 在調用該 MCP 時就會執行不可信代碼。npm 依賴有專門的審計工具,但 MCP 服務端聲明(命令、參數、遠端 URL)是另一條攻擊面。下面介紹維護者 feely0208 在 DSH 插件目錄中歸類爲 admin-security 的 dsh-mcp-audit(npm 包名 @deepwhale-cn/dsh-mcp-audit),它針對 MCP 配置文件做靜態規則檢查,不替代對 MCP 服務源碼的審查。
這是什麼¶
dsh-mcp-audit 是一款 DSH 安全類插件,當前 npm 版本爲 0.1.1(MIT 許可證)。定位一句話:審計 MCP 配置裏的未鎖定遠端包、明文端點、可執行本地服務。倉庫地址:https://github.com/feely0208/dsh-mcp-audit;社區目錄頁:https://www.skillhub.cn/plugins/feely0208/dsh-mcp-audit。DSH 社區插件站點(如 dsh-plugin.org)與 DeepSeek / 幻方無官方從屬關係,安裝前仍建議自行查看源碼與許可證。
MCP 服務通常比普通插件權限更大(文件、工具、賬號相關能力),而配置分散在個人機器上時更難被團隊流程覆蓋。本插件只做「配置長什麼樣」的規則掃描,與 dsh-dep-audit 分工明確:後者查 npm 依賴,本插件查 MCP 配置。
它查什麼¶
規則按 README 中的分級如下(具體條目與依據可用 --list-rules 查看):
| 級別 | 內容 |
|---|---|
| 高 | npx -y 未鎖版本;明文 http:// 端點 |
| 中 | 指向本地可執行文件或腳本 |
| 低 | 倉庫裏找不到 MCP 配置 |
README 用未鎖版本的 filesystem 服務舉例:配置類似 "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem"] 時,每次啓動都會拉最新包,且缺少可回滾的版本記錄;將包名鎖到具體版本(如 @2024.11.0)可緩解「上游悄悄改包」一類風險。
安裝與啓用¶
運行環境要求(來自 package.json):Node.js >= 18,DSH >= 0.1.0-rc.6。
在 DSH 中安裝(Web 配置檔):
dsh plugin --profile web add @deepwhale-cn/dsh-mcp-audit
不通過 DSH 插件機制、僅作 CLI 使用時:
npx @deepwhale-cn/dsh-mcp-audit
插件以當前 dsh / node 進程權限讀取本機上的 MCP 配置路徑;安裝或 npx 執行前,請確認你信任該包來源並閱讀倉庫代碼。
典型用法¶
安裝後可通過 dsh-mcp-audit 命令行入口操作。README 給出的示例:
先看演示檢出效果:
dsh-mcp-audit --demo
列出規則及依據,便於對照整改:
dsh-mcp-audit --list-rules
生成 HTML 報告(示例輸出文件名爲 r.html):
dsh-mcp-audit --html r.html
官方 README 附有演示輸出、規則列表與 HTML 報告截圖(託管於 deepwhale.org.cn 的 plugin-assets),可作爲預期輸出參考。
適用場景與邊界¶
適合誰:在本地或 CI 中爲 Agent / IDE 維護 MCP 配置的開發者;希望在接 MCP 進 Agent 前做一層配置 hygiene 的團隊。
邊界(README 明確說明):
- 只審配置,不審服務本身 —— 服務代碼是否外發數據、邏輯是否惡意,本工具看不到。
- 鎖定版本不等於絕對安全 —— 能防「上游悄悄改」,防不了「包本身惡意」。
- 與依賴審計插件互補,不能替代最小權限、密鑰掃描等其它 guard 能力。
本插件是工具軟件;使用者須遵守所在地區法律法規,對使用後果自行承擔責任。
結尾¶
dsh-mcp-audit 把 MCP 配置裏幾類高頻風險(未鎖遠端包、明文 HTTP、本地可執行路徑、缺失配置)收成可重複的 CLI / DSH 插件流程,適合在擴 MCP 能力前先做一輪配置審計。進一步瞭解與安裝: