dsh-mcp-proxy:为 DSH 提供上下文更省的 MCP 访问方式

前言

DeepSeek Harness 中使用 MCP 时,模型需要知道有哪些工具可以调用。已有做法通常会把每个 MCP 服务器的完整工具集注册进提示上下文;当服务器和工具变多时,这部分开销会随可用工具数量一起增加。

ben7am1n/dsh-mcp-proxy 提供了一个替代形态:只注册 mcp_discovermcp_call 两个代理工具,用懒连接和磁盘工具目录缓存承载后续的发现与调用。

插件定位

dsh-mcp-proxyben7am1n 发布的 DSH 插件,许可证为 MIT。

它解决的核心问题是:在配置多个 MCP 服务器时,避免把所有工具的完整 schema 都放进每次请求的上下文中。

核心功能

两个代理工具

插件向模型暴露两个工具:

  • mcp_discover:按关键字搜索工具目录,获得服务器、工具名、描述和参数名。
  • mcp_call:指定服务器和工具名称,并原样传递参数调用工具。

这意味着它不会把每个 MCP 服务器的完整工具集注册到提示中。

懒连接与磁盘缓存

插件启动时不连接 MCP 服务器,首次发现或首次调用时才连接。

它使用磁盘上的工具目录缓存。冷启动时也能回答;当某个服务器暂时不可用时,仍可提供已经连接的发现结果。

服务器声明

插件支持通过配置声明 stdiostreamable-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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye