Introduction

After connecting multiple MCP servers to DSH, common issues arise: whether a server is configured, if it is currently enabled or disabled, if the loader is loading, and how many tools have been registered; Skills also need to be looked up and switched across multiple sources. This plugin places these operations within the DSH Settings page, allowing you to view the MCP server list and connection status on one page, while supporting adding, deleting, enabling, disabling, restarting, and JSON import/export. It also provides Settings -> Skills Management and an HTTP API.

What is this

@xxxyz/dsh-mcp-manager is a DeepSeek Harness plugin maintained by xxxyz, licensed under the MIT License. It writes MCP server configurations to the project-level or global cordis.patch.yml and provides a management entry in the DSH Web settings. The following introduces its features, installation methods, and typical usage.

Core Features

  • MCP server list: Displays serverName, transport method, URL/command, enabled status, loader real-time loading phase, and registered tool count.
  • Add/Delete MCP servers: Supports env, headers, args, with format and duplicate name validation.
  • Enable/Disable MCP servers: Tools connect/disconnect hot.
  • Restart MCP servers: Executes disable + re-enable, automatically reconnecting and resynchronizing tools.
  • Configuration persistence: Writes to project-level profiles/<profile>/cordis.patch.yml or global ~/.dsh/cordis.patch.yml, persisting after restart.
  • Health check: Displays real-time tool count and loader phase for each server.
  • JSON Export/Import: Merges new additions, automatically skipping existing ones.
  • Host registers 4 mcp_manager_* model tools.
  • Settings -> Skills Management: Browse/search skills, group by source, collapse by provider, and one-click enable or disable any skill.
  • HTTP API: POST /dsh-mcp-manager/api, request body is {op, args}, returns {ok, ...}.
  • One command to install and auto-mount, supports Windows / macOS / Linux.

Installation and Enablement

Prerequisites: DSH is installed and dsh web runs normally; Node.js >= 18, pnpm >= 9.

Execute the installation command:

dsh plugin --profile web add @xxxyz/dsh-mcp-manager@latest

This command installs the plugin and automatically mounts it. After installation, hard refresh the browser (Cmd/Ctrl+Shift+R), and you will see Settings -> MCP Management.

If npm view returns a 404, it might be a mirror synchronization delay. Wait a moment and try again, or use:

--registry=https://registry.npmjs.org

Typical Usage

  1. Open Settings -> MCP Management, fill in serverName, transport method, and corresponding fields, and select project-level or global.
  2. On the MCP management card, enable/disable, restart, edit, or delete the server.
  3. One-click export JSON, or paste JSON to import; importing merges new additions, automatically skipping existing servers.
  4. Open Settings -> Skills Management, browse/search skills, and one-click enable or disable any skill.
  5. Call the HTTP API via script:
POST /dsh-mcp-manager/api

The op in the request body is the operation name, and args is the parameters object:

{
  "op": "operation",
  "args": {}
}

Response:

{
  "ok": true
}
  1. Uninstall the plugin:
dsh plugin --profile web remove @xxxyz/dsh-mcp-manager

Restart DSH after execution.

Configuration and Security

Modifying configuration uses HMR (Hot Module Replacement) for hot application, usually waiting 1–2 seconds for an auto-refresh; the page auto-polls.

The loader line must be in insert block form. Usually, there is no need to write it manually; the bundle patch from dsh plugin add automatically inserts it.

token is an optional access token, disabled by default. After setting it, write operations need to carry:

x-dsh-token: <token>

It can also be configured via environment variables:

DSH_MCP_MANAGER_TOKEN=<token>

If port 3080 is exposed to the LAN or public internet, the token is an important defense line against arbitrary write operations and stdio command injection; local single-machine use does not require configuration.

The HTTP API has CSRF protection: it only accepts POST and must carry:

x-dsh-plugin: dsh-mcp-manager

and validates the same-origin Origin; local scripts like curl do not need an Origin.

If the page shows two MCP tabs or duplicate tools, you need to delete the old loader line or the dsh.profile.bundles entry, then restart DSH.

Applicable Scenarios and Notes

This plugin is suitable for developers who need to centrally view MCP server status, manage server configurations, switch skill statuses, or operate MCP management via scripts / HTTP API within DSH.

Because the plugin manages MCP server configurations, stdio type servers might execute local commands, and the plugin runs with the current dsh process permissions. You should check the source code and license before installing. The license for this plugin is MIT.

GitHub 仓库