Back to directory

dsh-project-mcp-manager

Maintenance: Active

wldxiaobai/dsh-project-mcp-manager

An MCP management plugin for DeepSeek Harness that extends configuration across both projects and users.

View on GitHub
$ dsh plugin add dsh-project-mcp-manager

Install

dsh has no central install command — add this plugin’s entry (documented in its README) to your profile or patch config, then restart.

How installs work

10

stars

3

forks

TypeScript

Language

MIT

License

2026-08-22

Created

2026-11-12

Last push

README

dsh-project-mcp-manager

English | 中文

A project-level MCP auto-loading plugin for DSH: write MCP server configs in <projectRoot>/.dsh/mcp.yml or .dsh/mcp.json and they are mounted automatically (via the official @deepseek-ai/dsh-mcp-client) whenever a dsh session opens in that project. Changes to the file hot-reload into the running dsh process, and tool visibility follows the session's original project (session.header.cwd). The default dsh-project-mcp-manager bundle includes the loader and the companion dsh-project-mcp-ui MCP Manager page for the web and desktop apps (three entries — main sidebar, settings sidebar, and a Built-in plugins settings tab — all opening the same panel). The UI is enabled by default and can be disabled independently; the loader keeps working.

Eager capability boundary (dsh ≥ 0.2.2-rc.1): the official client owns the protocol, reconnect, tool names, resources, and server instructions. Shipped profiles already mount shared MCP resource tools. Official configuration is a profile-layer Cordis patch (with that layer's own HMR) plus plugin_manager. This plugin still owns what the host does not:

  1. Project-level discovery of <projectRoot>/.dsh/mcp.yml, .dsh/mcp.json, and the read-only legacy .mcp.json.
  2. Tool visibility isolated by the session's original project (session.header.cwd). working_directory does not retarget it.
  3. The MCP file format, the dsh-mcp CLI, and the MCP Manager page.

Project-file hot reload is this plugin's file watcher. It does not replace official profile HMR. Transport types are decided by the official client.

Supported dsh versions:

Plugin dsh
v0.11.x – v0.13.x 0.2 line, from 0.2.2-rc.1 (engines.dsh: ^0.2.2-rc.1)
v0.10.x 0.2.1-rc.2 – 0.2.1-rc.5
v0.7.x – v0.8.x 0.2.0 line, from 0.2.0-rc.2
v0.6.0 0.1.5

If this plugin is useful, a GitHub star is appreciated. Bugs, host mismatches, or ideas belong in Issues — even a short report helps.

Lazy loading on DSH 0.2.2-rc.1

Choose Lazy for a server in MCP Manager, or add "mode": "lazy" to its entry under mcpServers in .dsh/mcp.json. In a managed mcp.yml row, use config.mode: lazy. The default is eager.

Lazy supports stdio and Streamable HTTP. Use mcp_search to find a tool, mcp_describe for its schemas, and mcp_call to run it. Search connects to the visible Lazy servers to discover their tools. Pass server to limit discovery to one. Each connection caches its tool list and closes when the session ends or the row is unloaded. Tool allow and deny rules apply to all three proxies.

Use Eager for servers that need DSH resource integration, server instructions, or host policies targeting individual registered tools. Lazy handles MCP tool calls, with DSH's MCP result adapter for text and images. A failed connection can be retried on the next request.

Context cost in the header

For the focused session, the MCP Manager header shows two estimates:

  • MCP — the MCP tool definitions the model can see (schemas and descriptions), grouped by server; visible mcp_search, mcp_describe, and mcp_call definitions count once as shared Lazy overhead.
  • Results — the MCP tool results still retained on the current surface, including every result returned through Lazy mcp_search, mcp_describe, and mcp_call. Results removed by the tool-result pruner or by compaction no longer count.

Both use the host's four-characters-per-token heuristic: they are estimates, not provider counts, and exclude server instructions and conversation history. A tag is absent when there is no session or nothing to price; clicking it opens the per-server breakdown and the context-window share. The Results bubble also shows definitions + results combined. The figure refreshes after request headers, tool results, and compaction replacements without polling. In code mode (PTC) the two tags merge into one MCP n/a, explicitly marked as not estimable on this basis rather than shown as zero. Details: MCP Manager page and query surface.

Installation (mount into a profile)

Install only dsh-project-mcp-manager; it brings the core loader and the MCP Manager page. How the bundle is laid out: install.

Prerequisite: install dsh itself (skip if you already have it). Download DeepSeek Harness from the official page: https://www.deepseek.com/harness/. To install it from npm or GitHub instead:

npm install -g @deepseek-ai/dsh        # official npm package
npm install -g deepseek-ai/dsh         # or install from the GitHub source

Option 1: the dsh plugin command (recommended) — dsh plugin forwards pnpm inside the profile directory and handles installing/upgrading dependencies:

# Install the latest version with the UI included (choose your profile)
dsh plugin --profile web add dsh-project-mcp-manager@latest
dsh plugin --profile desktop add dsh-project-mcp-manager@latest
# For other profiles, e.g. headless, substitute the profile name.

# Pin a release version (check available versions with
# npm view dsh-project-mcp-manager versions; bundled UI needs the coordinated release)
dsh plugin --profile web add dsh-project-mcp-manager@<version>

Option 2: install directly with pnpm (equivalent to option 1):

# dshHome defaults to %USERPROFILE%\.dsh (uses $DSH_HOME if set)
cd $env:USERPROFILE\.dsh\profiles\web
pnpm add dsh-project-mcp-manager@latest

Option 3: local development install — build the checkout, then link only its root manager package. The workspace dependency supplies the matching UI; no separate UI link or bundle selection is needed:

Read the full README on GitHub →

DSH Plugins is an independent community directory of DeepSeek Harness plugins. Not affiliated with or endorsed by DeepSeek. Third-party plugins are not security-audited — review the source before installing.

New DeepSeek Harness plugins, weekly. No spam.