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¶
- Open the management panel.
- Click “Built-in MCP” in the top toolbar, located between “Import JSON” and “Add MCP”.
- View the directory and check unconfigured items.
- 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¶
- Prepare existing configurations, for example:
mcpServers
or:
servers
- Import them in the panel.
- Choose “Merge (update on same name)” or “Replace”.
- 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:
- Global scope writes to:
cordis.patch.yml
Usually, it takes effect immediately after hot reload, and running sessions can also be affected.
- Project scope writes to:
.dsh/mcp.json
It takes effect on the next new connection; running sessions do not re-read the configuration.
-
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.
-
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:
- Developers managing multiple MCPs in DSH Web;
- Scenarios that require distinguishing between global MCPs and project MCPs;
- 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