Preface

DeepSeek Harness (DSH) connects to MCP servers via @deepseek-ai/dsh-mcp-client, with configurations typically written in the profile’s cordis.patch.yml. When entries accumulate, verifying “whether installed, connected, or enabled” often requires scanning YAML files, restarting services, or checking logs. Errors in manual edits can also disrupt active connections.

dsh-mcp-manager (npm package name @js2hou/dsh-mcp-manager), maintained by community contributor Js2Hou, provides a Settings → MCP interface for MCP server management. It offers server listing, adding/removing, enabling/disabling, and connection status viewing. Modifications are written back to patch files via HMR, eliminating manual YAML editing. The plugin is categorized as a client, licensed under MIT, and has approximately 11 GitHub stars as of 2026-08-27.

What is This

In short: a visual MCP management plugin for DSH Web profiles.

It registers a Settings → MCP tab in the browser, communicating with the host via a loopback-only Connection RPC (/mcp-manager). The browser does not directly access the file system; all persistence is handled by the host writing to the profile’s cordis.patch.yml. Compared to manual configuration, this adds real-time status, format validation, and connection probing using the same data.

Core Features

Summarized from the README, all features can be verified in Settings → MCP after installation.

Server List: Iterates through installed @deepseek-ai/dsh-mcp-client instances in the profile, displaying serverName, transport method (stdio / streamable-http), URL or command, enable status, load phase, and number of registered tools.

Add and Remove: Forms for adding MCP servers support stdio and streamable-http. Configurable fields include env, headers, args, timeout, and failOnStartupError, with validation for format and duplicate names. Removal is a one-click operation.

Enable and Disable: Toggle individual servers at any time. Tools hot-connect or hot-disconnect based on enable status.

Connection Status and Testing: Each server displays a status capsule (e.g., Connected · N tools, Failed, Loading, Disabled). An independent Test button executes initialize + tools/list probing, reporting latency and tool count.

Edit: Forms expand inline on cards, with changes applied upon saving.

Multi-language: Interface text follows DSH language settings (zh / en).

Persistence: Changes are written to the profile’s cordis.patch.yml and retained after restart. The current patch file path is displayed at the bottom of the page.

Installation and Enabling

Prerequisite: DSH is installed locally, and dsh web runs normally (initializing ~/.dsh/profiles/web).

Recommended: Install via dsh command

dsh plugin --profile web add @js2hou/dsh-mcp-manager

You can also install from the GitHub source (the repository includes built artifacts lib/, no local build required):

dsh plugin --profile web add github:Js2Hou/dsh-mcp-manager

Plugin Marketplace: The plugin is listed in dsh-market and dsh-plugin-marketplace. Search for js2hou/dsh-mcp-manager to install. When using DSH Desktop, search for the same plugin in the built-in marketplace via DSH 1024Store or dshfind sources, ensuring the author is Js2Hou.

One-click Script (macOS / Linux):

curl -fsSL https://raw.githubusercontent.com/Js2Hou/dsh-mcp-manager/main/scripts/install.sh | bash

After installation, hard-refresh the browser (Cmd/Ctrl+Shift+R) and open Settings → MCP. If the tab does not appear, restart DSH once (initial host-side mounting may require this).

Update: Re-run dsh plugin --profile web add @js2hou/dsh-mcp-manager or the installation script.

Typical Usage

After opening Settings → MCP, follow the README instructions.

Add stdio server: Fill in the entry ID, serverName, select transport method stdio, and then fill in command, args, env, cwd, etc. For streamable-http, enter the URL and required headers.

Daily Operations: View real-time status and tool count for each server in the list; click Test to confirm connectivity; Disable servers temporarily without deleting configurations; use Edit to modify parameters, then wait for HMR application (usually 1–2 seconds, or click the manual refresh button in the top-right corner).

Optional Configuration: The loader line supports a patchFile field to specify the absolute path of the user patch layer to edit; defaults to $DSH_HOME/profiles/web/cordis.patch.yml.

Use Cases and Considerations

Who it’s for: Developers and AI configurators who maintain multiple MCP servers in DSH, need a quick overview of connection status, or prefer not to frequently edit cordis.patch.yml manually.

Permissions and Security: The plugin runs with the current DSH process permissions, reading and writing profile patches and triggering MCP client connections. Before installation, review the source code and MIT license to ensure configuration contents (especially env, headers) do not include exposed secrets.

Common Issues (from README): If two MCP tabs appear, check cordis.patch.yml for residual manual mount lines. For new version minimum release age errors, wait 24 hours or configure minimumReleaseAgeExclude for @js2hou/dsh-mcp-manager in pnpm-workspace.yaml as per the README. For MCP servers like Obsidian requiring Bearer authentication, headers should be Authorization: Bearer <api-key> without extra quotes.

Community plugin directories SkillHub and the mentioned marketplaces are independent ecosystem sites, not officially affiliated with DeepSeek or High-Flyer.

Links