DeepSeek Harness (DSH) uses an “everything is a plugin” architecture. When managing MCP server instances, traditional configuration methods usually require manual editing of configuration files or reliance on patch-based configuration, which is not very intuitive. dsh-mcp-manager is an MCP management plugin for DSH that provides the ability to start and stop mcp-client instances through a Web GUI, and supports automatically discovering and importing MCP servers from local configuration files.

This plugin is maintained by welsione and is licensed under the MIT License.

Core Features

  1. Web GUI Settings Panel
    The DSH settings page displays an “MCP Management” entry. This panel lists all mounted mcp-client instances, supports quick location through search and filtering (All / Enabled / Disabled), and provides one-click toggling.

  2. True Start/Stop
    Unlike a simple toggle, the start/stop functionality provided by this plugin is a “true start/stop.” Disabling a server disconnects it and unregisters its tools (mcp__<server>__*), making those tools invisible to the Agent runtime; enabling it reconnects and re-registers the tools.

  3. Automatic Mounting
    The plugin supports reading server configurations from <harness home>/mcp-servers.json. As long as a server is declared in this file, the plugin automatically mounts it as an mcp-client instance on startup.

  4. Local Configuration Source Discovery
    At the bottom of the panel, there is a “Local Configuration Source Discovery” feature, which can scan Claude Code global configuration (~/.claude.json), project configuration (~/.mcp.json), and Claude Desktop configuration. It can detect the running status of local addresses and supports one-click import.

  5. Batch Operations
    The toolbar provides “Enable All” and “Disable All” features, supporting batch management of multiple servers.

  6. Persistence and Headless Compatibility
    The list of disabled services is persistently stored in <harness home>/mcp-manager.json and automatically reapplied after restart. The plugin is also compatible with Headless mode, allowing start/stop operations to work through the underlying logic even without a Web GUI.

  7. Zero Build
    The plugin uses a single-file structure (ESM host + ModuleLoader client) and can be used directly without any compilation step.

Installation and Activation

Using this plugin requires DSH version 0.1.0-rc.7 or later. The installation process is as follows:

  1. Install the plugin package via the command line.
# Option 1: Install from the npm registry
dsh plugin --profile web add dsh-mcp-manager

# Option 2: Install directly from GitHub (code must be committed)
dsh plugin --profile web add github:welsione/dsh-mcp-manager

# Option 3: Install a pinned version (recommended to avoid main branch drift)
dsh plugin --profile web add github:welsione/dsh-mcp-manager#v1.0.0
  1. After installation, restart the DSH process. The plugin will automatically enter dsh.profile.bundles, and the management panel will be loaded on the settings page of the Web interface.

Usage

Declare servers in <harness home>/mcp-servers.json. This plugin is compatible with Claude’s mcpServers-style configuration.

{
  "servers": {
    "filesystem": {
      "transport": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
    }
  }
}

After declaration, refresh the page or click “Rescan” in the panel, and the new server will be mounted automatically.

2. Patch Instance Mounting

If you need more fine-grained control, you can also add @deepseek-ai/dsh-mcp-client in the profile’s cordis.patch.yml.

- insert:
    - id: mcp-my-server
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: my-server
        transport: stdio
        command: npx
        args: ['-y', '@some/mcp-server']

3. Import Local Configurations

In the “Local Configuration Source Discovery” area at the bottom of the “MCP Management” panel, the system lists MCP servers configured locally. For entries that support mounting (such as stdio or streamable-http), click “Import” to write them into mcp-servers.json and apply them immediately.

4. Hot Reload

After modifying the configuration file, there is no need to restart DSH. Simply click “Rescan” in the Web panel to add, remove, or hot-update servers.

Notes

  1. SSE Protocol Limitation: If a server using the SSE protocol is discovered in the local configuration source (such as the MCP plugin for JetBrains IDEA or DataGrip), the interface will prompt “Mounting is not currently supported.” This is because the official DSH dsh-mcp-client currently only supports the stdio and streamable-http transport protocols.
  2. Hidden Configuration Items: The configuration source discovery API does not return the env or headers values from configuration files when displaying configurations; it only indicates whether they exist.
  3. GitHub Installation Mechanism: When installing with the github: prefix, the retrieved code is the committed code on GitHub. If local code modifications have not been git pushed, they cannot be installed through this method.

Summary

dsh-mcp-manager solves the cumbersome problem of managing multiple MCP instances in DSH. Through the Web interface, it provides visual start/stop control, batch operations, and configuration discovery. Combined with automatic mounting and persistence mechanisms, it significantly improves development and debugging efficiency.

  • Repository: https://github.com/welsione/dsh-mcp-manager
  • Directory Listing: https://www.skillhub.cn/plugins/welsione/dsh-mcp-manager