dsh-mcp-proxy:爲 DSH 提供上下文更省的 MCP 訪問方式

前言

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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜