前言¶
DeepSeek Harness 中使用 MCP 時,模型需要知道有哪些工具可以調用。已有做法通常會把每個 MCP 服務器的完整工具集註冊進提示上下文;當服務器和工具變多時,這部分開銷會隨可用工具數量一起增加。
ben7am1n/dsh-mcp-proxy 提供了一個替代形態:只註冊 mcp_discover 與 mcp_call 兩個代理工具,用懶連接和磁盤工具目錄緩存承載後續的發現與調用。
插件定位¶
dsh-mcp-proxy 是 ben7am1n 發佈的 DSH 插件,許可證爲 MIT。
它解決的核心問題是:在配置多個 MCP 服務器時,避免把所有工具的完整 schema 都放進每次請求的上下文中。
核心功能¶
兩個代理工具¶
插件向模型暴露兩個工具:
mcp_discover:按關鍵字搜索工具目錄,獲得服務器、工具名、描述和參數名。mcp_call:指定服務器和工具名稱,並原樣傳遞參數調用工具。
這意味着它不會把每個 MCP 服務器的完整工具集註冊到提示中。
懶連接與磁盤緩存¶
插件啓動時不連接 MCP 服務器,首次發現或首次調用時才連接。
它使用磁盤上的工具目錄緩存。冷啓動時也能回答;當某個服務器暫時不可用時,仍可提供已經連接的發現結果。
服務器聲明¶
插件支持通過配置聲明 stdio 或 streamable-http 類型的 MCP 服務器。
servers 默認是空列表。
安裝與啓用¶
package.json 聲明的 Node 要求爲:
^22.19.0 || >=24.0.0
先安裝插件:
dsh plugin --profile web add dsh-mcp-proxy
啓用具體 MCP 服務器時,需要在配置中覆蓋默認 row,並聲明 servers 列表。由於 servers 默認是空列表,插件不會默認替用戶啓用 MCP 服務器。
典型用法¶
1、使用 mcp_discover 查找工具:
mcp_discover
它會按關鍵字搜索工具目錄,返回命中條目的服務器、工具名、描述和參數名。
2、使用 mcp_call 調用工具:
mcp_call
它會按你指定的服務器和工具名稱執行調用,並原樣傳遞參數。
信任邊界與控制¶
插件以當前 dsh 進程權限運行;每個 MCP 服務器命令都是運行在 agent 沙箱外的可信可執行代碼。
插件本身不添加審批門。如果需要對 mcp_call 做限制,建議複用 DSH 中的工具控制點:
tools/pre-execute
ctx.tools.guard()
也可以結合權限預設,把安全策略放在統一位置。
適用場景與注意¶
適合配置了較多 MCP 服務器、但單次任務只會用到其中一部分工具的場景。
需要注意代理形態的成本:
- 如果模型不知道工具名,會增加一次工具發現往返。
- 工具調用前看到的是參數名,而不是完整 JSON schema。
安裝前建議檢查源碼、許可證、Node 版本要求,以及你準備寫入 servers 的 MCP 服務器命令。
結尾¶
dsh-mcp-proxy 的價值,是在保留按需發現和調用能力的前提下,把 MCP 工具的常駐提示成本壓縮到兩個代理工具。
GitHub:
- https://github.com/ben7am1n/dsh-mcp-proxy