DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Mcp Loader — DeepSeek Harness 插件(DSH Plugin)
← Plugins
M

dsh-mcp-loader

Mcp Loader

DeepSeek Harness (DSH) 的延迟加载 MCP 工具:每个多工具 MCP 服务器提供一个加载器工具、按代理进行工具屏蔽以及描述预设

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:MikotoMyWife/dsh-mcp-loader#178d854d4e37565861265f215f6927afd435f3a2
README兼容性版本

兼容性与来源证明

Mcp Loader 以 dsh-mcp-loader 发布,当前版本为 0.5.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/9/8

版本

0.5.0stable
2026/9/8

相关插件

正在加载相关插件…

最新版
0.5.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/10
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 integrations-communication 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Remote Web Ui@linxin666/dsh-remote-web-ui通过扫码配对访问 dsh Web GUI,共享一个官方界面:设置按钮旁的二维码可将手机和 PC 配对到同一个 Web GUI(手机采用竖屏触控适配层,PC 使用完整桌面界面),通过一次性令牌和 rPocketdsh-pocket把 DeepSeek Harness 装进你的口袋:一个包、一个设置页,手机扫码即同步访问电脑上的 DSH(局域网 + 公网,实时同屏)。DSCODE@toddzheng024/dscode-bundle完整的 DeepSeek 编码代理,支持持久化 shell、Ultra 协作和自动权限审查。

README

dsh-mcp-loader

Lazy-loading MCP tools for DeepSeek Harness (DSH): each multi-tool MCP server is represented by one loader tool (default mcp_<server>), and a server's real tools enter the model context only after the loader is called. With many MCP servers installed, this removes the fixed cost of every tool schema being present in every request — and keeps the visible tool list small enough that the model picks the right tool.

How it works

Initial tool list:   mcp_notes, mcp_browser, mcp_desktop, ...        (one loader per server)
   ↓ model calls mcp_notes({})
→ "ok"                     the next request exposes mcp__notes__search, mcp__notes__create, ...
   ↓ model calls mcp_notes({}) again
→ "ok (20 tool(s) hidden)" those tools leave the context
   ↓ a third call loads them again

The loader is a toggle: call once to load, call again to hide, call a third time to load again — no separate "unload tool" occupies a slot. Single-tool servers (e.g. a lone codegraph_explore) are detected at startup and stay resident without a loader.

Registration model

  • Tool schemas are projected when the prompt is assembled (ctx.systemPrompt.tools(...)), so tools registered inside one tool call appear in the model's next step of the same turn — no extra round trip.
  • Startup registers only loaders (no process spawned). A one-time probe may connect auto/eager servers to count their tools: servers with ≤ singleToolThreshold tools become resident and their loader is removed; mode: lazy servers never participate in the probe and are not spawned at boot.
  • Registration is deployment-wide (global), consistent with the official dsh-mcp-client, because ctx.tools.restrict() only filters inherited tools and rejects names that are not globally registered — per-agent hiding (hiddenTools) is built on top of global registration.

Features

  • Per-server loader toggle — load, hide, reload, with a visible result message (ok, ok (N tool(s) hidden)).
  • Modes — auto (probe once at startup), lazy (always behind a loader, never probed), eager (always resident, no loader).
  • hiddenTools — mask specific tools per agent after a server loads (restrict({ deny })), for every existing agent and for agents created later; masks are per-agent visibility only, the tools stay globally registered.
  • Description engineering — per-server description, descriptionPreset, per-tool toolDescriptions overrides, and parameter-description truncation (maxParameterDescriptionChars), so the model-facing text says what the tool does and when to use it.
  • Resilience — atomic registration (any failure rolls the server back to zero tools), shared concurrent attempts, list_changed resync (full-generation replace), raw tools/call (skips outputSchema validation of structuredContent, same as the official client), transport-failure discard-and-reconnect on next call.
  • Transports — stdio (spawn command/args, env merged into the SDK default environment) and streamable-http (url/headers).
  • Config fail-fast — unknown preset or invalid server name ([A-Za-z0-9_-]{1,32}) fails plugin mount with a named field.

Install

npm install            # build/test locally
npm run build          # tsc → lib/
npm test               # real-link e2e: real cordis ctx + dsh-tools ToolRuntime + real MCP stdio subprocesses

Then register the plugin in your profile (id mcp-loader, package dsh-mcp-loader) and add your servers:

- id: mcp-loader
  name: dsh-mcp-loader
  config:
    servers:
      notes:
        description: "Search, read, create and organize personal notes. Use when the task involves the user's notes."
        command: npx
        args: ['-y', 'mcp-remote', 'https://example.invalid/mcp']
      desktop:
        description: "Control the real desktop ..."
        mode: lazy
        command: npx
        args: ['-y', 'example-desktop-mcp']

Configuration

FieldDefaultMeaning
servers{}Server table; the key is the namespace of mcp__<server>__<tool>
servers.<n>.description—Loader description body: what it can do + when to use it
servers.<n>.modeautoauto / lazy (always loader) / eager (always resident)
servers.<n>.loaderNamemcp_<server>Model-visible loader name
servers.<n>.hiddenTools—Tool names (raw or mcp__s__t) masked per agent after load
servers.<n>.toolDescriptions—Per-tool description overrides
servers.<n>.descriptionPreset—Built-in description tables (desktop-touch)
servers.<n>.maxParameterDescriptionChars0Truncate parameter descriptions (preset may imply one)
servers.<n>.transportstdiostdio or streamable-http
servers.<n>.command/args/env/cwd—stdio process to spawn
servers.<n>.url/headers—streamable-http endpoint and extra headers
servers.<n>.toolCallTimeoutMs60000Per tools/call timeout
connectTimeoutMs30000Connection handshake timeout
singleToolThreshold1auto mode: servers with ≤ this many tools stay resident
loaderHintCall to load this MCP server's tools; call again to hide them.Appended to every loader description

Known limitations

  • Granularity is per server, not per tool (one loader per server).
  • Startup probing is a snapshot: a server that later grows past the threshold stays revealed until restart (pin it with mode: lazy).
  • Images/audio become [image image/png] text placeholders; only tools are bridged — MCP resources/prompts/ progress and task-typed tools are not supported (consistent with dsh-mcp-client).
  • No active reconnect backoff; reconnection happens on the next call.

Ecosystem position

dsh-mcp-loader is one of several DSH plugins that keep large MCP tool catalogs out of every request (compare dsh-mcp-lazy, dsh-capability-menu, dsh-tool-folder, dsh-mcp-lens, dsh-tool-search). Its differentiators: per-server loader toggles, per-agent hiddenTools masking, and model-facing description presets — plus self-owned connections (stdio and streamable-http) instead of wrapping another MCP client.

License

MIT

probeAtStartuptrueProbe auto/eager servers at startup (lazy never probed)