Introduction

When using MCP in DeepSeek Harness (DSH), common operations are not limited to “can it connect,” but also include viewing current connection status, viewing tool parameters, distinguishing between global and project scope, importing existing configurations, and determining which session will take effect after modifications.

The dsh-mcp-manager-ui provides a Web management panel for these operations: view MCP status, expand tool Schemas, add and edit MCPs, import JSON, and switch between global scope and project scope.

What is this

dsh-mcp-manager-ui is the MCP management panel for DeepSeek Harness Web. The GitHub repository address is:

https://github.com/Imzl-zl/dsh-mcp-manager-ui

The license is:

MIT

It is suitable for developers who are already using DSH Web and need to manage MCPs across multiple projects. Below are the verified features, usage, and limitations.

Core Features

View Connections and Tools

The panel can view MCP status, transport method, connection parameters, and a list of tools.

Expanding a single tool allows you to view the complete input JSON Schema, including required/optional parameters, types, enums, default values, and the raw JSON.

Filtering by transport method is supported, for example:

HTTP
stdio

Filtering by connection status is also supported, as well as searching by name, command, or URL.

Add, Import, and Presets

When adding an MCP, preset templates can be applied, for example:

Filesystem
Memory
Sequential Thinking

The “Built-in MCP” directory includes:

Exa
Tavily
Firecrawl
Chrome DevTools
Playwright

You can view the directory, check unconfigured items, and append them.

Importing the following configuration formats is also supported:

mcpServers
servers

mcpServers is common in tools like Claude, Cursor, Cline, Roo, etc.; servers comes from VS Code.

When importing, you can choose “Merge (update on same name)” or “Replace,” with a preview provided before writing.

Global and Project Dual Scope

Global MCPs are written to the Web profile’s:

cordis.patch.yml

After being registered once, they are available to all projects. When writing, the file is structured and modified, while preserving other plugin entries, comments, and:

!!js

environment variable expressions.

Project-level MCPs are written to the project directory:

.dsh/mcp.json

Only sessions within that project are visible. Project tabs allow adding, editing, and removing project-level MCPs.

Projects can also “block” a global MCP by writing:

exclude

New sessions will no longer see that MCP.

When saving, it validates whether the serverName is unique and prompts which scope is occupied.

Connection Fields and Lifecycle

This plugin supports the full MCP connection fields of DSH rc.7+:

command
args
env
cwd
url
headers

As well as call timeout, startup failure strategy, and reconnection strategy.

Project MCPs share a connection instance across all sessions of that project, reusing:

@deepseek-ai/dsh-mcp-client

Lazy connection and automatic reconnection are supported.

Host Remote and Web clients are loaded and unloaded along with the plugin lifecycle.

Credentials, Theme, and Update Notifications

The panel can display and copy decrypted URL credentials, as well as:

args
env
headers

These values are temporarily visible within the session.

The panel follows the DSH dark/light theme and adapts to narrow screens and mobile widths.

Non-mandatory update notifications: When the panel is open, the Host checks the latest version from GitHub Releases at most once a day. Failed queries are silent and never auto-update; no data is sent except for this query. You can set the environment variable to disable it:

DSH_MCP_MANAGER_DISABLE_UPDATE_CHECK

Installation and Activation

This article does not provide unverified installation commands. You can visit the repository to view instructions:

https://github.com/Imzl-zl/dsh-mcp-manager-ui

The license is:

MIT

It is recommended to check the source code, dependencies, and license before installation. This plugin loads with the DSH plugin lifecycle and runs with the current DSH process permissions; you should confirm the source and the target configuration before installing.

Typical Usage

Opening Built-in MCP

  1. Open the management panel.
  2. Click “Built-in MCP” in the top toolbar, located between “Import JSON” and “Add MCP”.
  3. View the directory and check unconfigured items.
  4. Append the selected MCPs once.

Global MCP Taking Effect

Global MCPs are written to:

cordis.patch.yml

Usually, DSH hot reload takes effect immediately, including running sessions.

Project MCP Taking Effect

Project-level MCPs are written to:

.dsh/mcp.json

They take effect on the next new connection; running sessions are not affected.

If there are still sessions running for this project, the new session will reuse the existing connection and the old configuration; only when all sessions of that project have ended will the next session use the new configuration to connect.

After modifying the configuration, there is no need to click “Reconnect” or restart the Host; simply opening a new session is sufficient.

Importing Existing MCP Configurations

  1. Prepare existing configurations, for example:
mcpServers

or:

servers
  1. Import them in the panel.
  2. Choose “Merge (update on same name)” or “Replace”.
  3. Review the preview and write.

Disabling Update Notifications

You can set:

DSH_MCP_MANAGER_DISABLE_UPDATE_CHECK

in the environment where DSH is running to disable non-mandatory update notifications.

When Configuration Takes Effect

The mechanism for global and project scopes is different:

  1. Global scope writes to:
cordis.patch.yml

Usually, it takes effect immediately after hot reload, and running sessions can also be affected.

  1. Project scope writes to:
.dsh/mcp.json

It takes effect on the next new connection; running sessions do not re-read the configuration.

  1. If there are still sessions running for this project, the new session will reuse the existing connection and the old configuration; only when all sessions have ended will the next session use the new configuration to connect.

  2. Changes to the visibility of “blocked” global MCPs take effect the same way, only for subsequent sessions.

Known Limitations and Notes

First Round Readiness Timing

Project MCPs connect asynchronously by default. The first round of conversation in a new session might not be ready, but it becomes available from the second round onward.

If the server is configured with:

failOnStartupError: true

it will wait for the connection confirmation before continuing to create the session.

Blocking Does Not Release Names

“Blocking” (hiding) a global MCP only hides its tools; the global instance of that serverName is still running and occupying the name; it cannot be taken over by a server with the same name within the project. If takeover is required, disable or remove the server globally first.

Global and Project Cannot Share Names

serverName is unique throughout the process; project-level names cannot be the same as the global name or names of other projects. When saving, it will prompt which scope is occupied.

If manually editing:

.dsh/mcp.json

or if the project is not registered in the workspace registry, validation can be bypassed; in that case, the second connection will fail to start.

Shared Connection and Configuration Stickiness

Running connections stick to the configuration of the first session; only after all sessions have ended will a new connection use the new configuration.

Per-Session Isolation Not Supported

Servers that bind session identity to the connection or process, such as browser automation, SSH sessions, editor buffers, indexers that connect per connection, etc., are not supported in the project scope.

Windows stdio Process Chains

On Windows, stdio servers that ignore stdin EOF may leave grandchild processes. It is recommended that the server handles the exit itself, or use:

streamable-http

DSH Exit Grace Period

DSH’s exit grace period is 5 seconds. When multiple servers are exiting slowly, the exit may be forcibly cut off before the teardown is complete.

Plugin Hot Reload

Plugin hot reload clears project tools for running sessions. Running sessions need to open a new session to retrieve the updated project MCP tools.

Compatibility

The verified DeepSeek Harness versions are:

0.1.0-rc.7

and above, verified up to:

0.1.0-rc.8

The platform is Windows; Linux/macOS uses the same DSH Web contract.

Target Audience and Risk Warnings

Suitable for:

  1. Developers managing multiple MCPs in DSH Web;
  2. Scenarios that require distinguishing between global MCPs and project MCPs;
  3. Scenarios where users wish to import existing MCP configurations from Claude, Cursor, Cline, Roo, or VS Code.

Risks:

  • The plugin reads and writes MCP configurations and can display decrypted credentials, so it should be used in a trusted environment.
  • The plugin runs with the current DSH process permissions; it is recommended to check the source code and license before installing.
  • The license is:
MIT

Getting Started

The current verified information does not provide a confirmed directory page URL. The GitHub repository is:

https://github.com/Imzl-zl/dsh-mcp-manager-ui