Introduction¶
When developing agents with DeepSeek Harness (DSH), the standard procedure for connecting to an MCP server generally involves: finding the package name or URL, opening the profile’s configuration file, manually writing a YAML snippet, restarting, and then verifying if the tool appears to the model. Misspelling a package name, or a package being delisted from npm, often only leads to an error when the application runs.
DSH’s philosophy is “everything is a plugin,” and this process can be delegated to a plugin. The dsh-mcp-market introduced below does exactly that: it brings the workflow of “Discover MCP server → Fill configuration → Activate” into the Web interface. Installation is complete without a restart, and the model can immediately utilize the new tool.
What is this¶
dsh-mcp-market is a plugin designed for DeepSeek Harness, positioned as an MCP server marketplace. It features a built-in curated catalog (15 servers, each verified to be functional, with both Chinese and English descriptions). After browsing, searching, and filtering, servers can be installed into a running profile with a single click. Under the hood, it relies on the official @deepseek-ai/dsh-mcp-client.
It is maintained by LKMeng2001, uses the MIT license, and the code is open-sourced on GitHub. The problem it solves is specific: it transforms MCP server installation from manually modifying configuration files into a few clicks in the interface, with hot activation and no need to restart.
Core Features¶
Catalog and npm Availability Validation¶
The plugin includes a built-in catalog containing 15 MCP servers with descriptions in both Chinese and English. Upon loading, it retrieves the package names of stdio type servers one by one from registry.npmjs.org to perform an existence check: packages that have been delisted from npm are grayed out and disabled from installation. According to the README, this step serves to block dead entries on one hand and prevent typo-squatting entries from infiltrating the catalog on the other.
One-click Installation for Two Transport Modes¶
The installation interface supports two types of servers:
- stdio: Local process type; you need to fill in
command,args, andenvbefore installation. - streamable-http: Remote URL type; you need to fill in
urlandheadersbefore installation.
After clicking install, the plugin directly creates the service within the currently running profile via ctx.loader.create(). No restart of dsh is required. The configuration is persisted and remains effective after a restart.
Management of the Installed List¶
The installed list in Settings → MCP Market supports:
- Enabling / Disabling a specific server;
- Editing configuration, with reconnection via HMR after changes—no restart needed;
- Uninstalling.
For servers not in the catalog, you can manually add them via the “Add server” form, with parameters consistent with catalog installation.
Catalog Source and Offline Fallback¶
The catalog data has three layers of sources:
- Priority: Pulling the remote catalog JSON from GitHub Pages:
https://LKMeng2001.github.io/dsh-mcp-market/servers.json. Its canonical source isdocs/servers.jsonin the repository. After editing and pushing, it updates globally without needing a release. - Memory Cache: The results of the pull operation are cached in memory.
- Fallback: If the pull fails, it falls back to the built-in snapshot
data/registry-snapshot.json(generated fromdocs/servers.jsonvianpm run sync:catalog).
There is a CI workflow in the repository that checks the existence of every npm package in the catalog daily. If you wish to change the catalog source for a specific profile, you can override it via the plugin configuration option registryUrl. Entry schemas, HTTP routing, and loader design are documented in the repository’s README.zh.md.
Clean Persistence Method¶
All installation actions only write to a # --- dsh-mcp-market managed --- marker block within the profile configuration file cordis.patch.yml. User-written configurations outside this block are preserved as-is and will not be rewritten by the plugin.
Installation and Usage¶
Install from npm (recommended):
dsh plugin --profile web add dsh-mcp-market
Install via local checkout (for development and debugging only, replace the path with your own):
dsh plugin --profile web add "D:\path\to\dsh-mcp-market"
Subsequent update and uninstallation:
# update
dsh plugin --profile web update dsh-mcp-market
# remove
dsh plugin --profile web remove dsh-mcp-market
After installing or updating the plugin, you need to restart dsh web (this involves host-side changes), then open Settings → MCP Market to see the catalog.
Typical Usage¶
After installing the plugin, the complete process for connecting an MCP server is:
- Restart
dsh weband open Settings → MCP Market; - Search for the target server in the catalog and click install;
- Fill in parameters according to the transport type:
stdioforcommand / args / env,streamable-httpforurl / headers; - Confirm installation. The plugin hot-activates the server via
ctx.loader.create(), and the model immediately sees tools in the form ofmcp__<serverName>__<tool>without needing to restart.
Servers not in the catalog go through the manual add form; the process is the same.
If you wish to participate in development, clone the repository and run:
npm install
npm run build # tsc host → lib/, esbuild client → client/client.js
npm run typecheck
After making changes, run npm run build first, then restart dsh web (host-side changes; client-side changes can be observed using the dev watcher).
Applicable Scenarios and Notes¶
Who is it suitable for:
- DSH users who do not want to manually write
cordis.patch.yml, especially when needing to repeatedly try installing different MCP servers; - Teams that need a fixed, verified list of servers; they can use
registryUrlto point to their own catalog JSON.
Notes:
- The plugin runs with the permissions of the current
dshprocess; it is recommended to read the source code and license (MIT) before installing. - MCP servers themselves are third-party code/services:
stdiotypes will spawn subprocesses on the local machine, so only install from sources you trust. - Server configurations (including env) are stored in plaintext in
cordis.patch.yml. Do not write keys directly; encrypt them first if needed. - From a security perspective, all mutation routes of the plugin are same-origin POST requests with Origin validation.
Conclusion¶
dsh-mcp-market brings the “find, install, and manage” of MCP servers into DSH’s settings page: the catalog includes npm availability validation, installation is hot-activated, and configuration only writes to the managed block without touching user-written content. For DSH users who frequently tinker with MCP tools, it saves the time spent manually modifying configurations, restarting, and debugging every time.
- Community Directory Page: https://www.skillhub.cn/plugins/LKMeng2001/dsh-mcp-market
- GitHub Repository: https://github.com/LKMeng2001/dsh-mcp-market
Both links are independently maintained community sites and have no official affiliation with DeepSeek or Hanhua.