Preface¶
DeepSeek Harness (dsh) can integrate MCP, skills, and memory as runtime capabilities, but in practice you still need to handle several specific tasks: adding a new MCP server, checking whether a server is available, migrating existing configurations from Claude Code / Codex, and managing skill sources and updates.
dshx (repository: why913/dshx) is a community management tool for dsh: it performs a connection self-check before writing — if it can’t connect, it won’t write; it supports migrating MCP, skills, and global memory from Claude Code / Codex; and it can also be installed as a dsh plugin, providing /mcp commands and card operations in the dsh Web interface.
What This Is¶
@why913/dshx is an unofficial community project, unaffiliated with DeepSeek, and is licensed under MIT. It primarily covers three types of objects:
- MCP servers: add, remove, list, connection test, migration.
- Skills: install from GitHub or locally, remove, update, migrate.
- Global memory: migrate from Claude Code / Codex to
dsh.
It can be used both as a command-line tool and installed as a dsh plugin, providing /mcp commands in the dsh Web interface.
Core Features¶
- Add or remove MCP servers with a single command, with support for listing and testing.
- Performs an actual connection check before writing; rejects outright if it can’t connect, so broken configurations never get written to files.
- API keys support environment variable references, avoiding plaintext in configuration files.
- Skills can be installed from GitHub or local paths, with sources recorded for updates.
- Supports migrating MCP, skills, and global memory from Claude Code / Codex.
- Provides
/mcpcommands and clickable cards indshWeb. - Ships with a built-in
SKILL.md, allowing thedshagent to discover and invoke the tool.
Installation and Activation¶
Environment requirements:
- Node.js
>=22.19 @deepseek-ai/dsh-toolsis a peer dependency provided by the hostdshis currently in developer preview; documentation indicates it has been tested on@deepseek-ai/dsh0.1.0-rc.6
First install the command-line tool:
npm install -g @why913/dshx
To make /mcp commands and plugin capabilities appear in the dsh Web interface, run:
dsh plugin --profile web add @why913/dshx
You can also install the local skill example provided in the documentation to make it easier for the dsh agent to discover and invoke dshx:
dshx skill add ./skills/dshx
Here, ./skills/dshx is a local example relative to the current path; if the skill is not in the current directory, you’ll need to run it based on the actual path.
Note: dshx does not automatically restart dsh after modifying configurations; you’ll need to reload dsh for changes to take effect.
Typical Usage¶
The following commands are executed from the dshx command line.
Adding MCP Servers¶
Adding a local stdio server:
dshx mcp add everything -- npx -y @modelcontextprotocol/server-everything
Adding a remote streamable-http server:
dshx mcp add --transport http <name> <url>
During execution, dshx first performs a connection self-check; only after it passes does it write to the dsh configuration.
Viewing, Removing, and Testing MCP Servers¶
dshx mcp list
dshx mcp rm <name>
dshx mcp test <name>
dshx mcp test <name> only tests the connection and does not modify the configuration.
Migrating MCP from Claude Code / Codex¶
First preview what can be migrated:
dshx mcp import
After confirming, write it:
dshx mcp import --yes
All three import commands for MCP, skills, and memory default to preview mode; adding --yes actually writes the data.
Managing Skills¶
dshx skill list
dshx skill add <owner/repo[/subdirectory] | local path>
dshx skill rm <name>
dshx skill update <name>
dshx skill import [--yes]
Before installation, dshx performs a format check: missing name or description, names not in kebab-case, or using the old camelCase disableModelInvocation key will all be rejected.
Migrating Global Memory¶
dshx memory import
dshx memory import --yes
Using in the dsh Web Interface¶
In a dsh Web session, you can use:
/mcp
/mcp <server>
/mcp import
/mcp import <server>
/mcp import all
/mcp help
/mcp is used to inspect MCP servers; the /mcp import family is used to list and execute migrations. Since /mcp cannot access dsh’s real connection status, it creates a diagnostic connection to report results.
Use Cases and Considerations¶
This is suitable for developers who are already using dsh and want to reduce manual maintenance of MCP configurations, unify migration of MCP and skills from Claude Code / Codex, or quickly inspect MCP servers in the Web interface.
Points to note before use:
- The plugin runs with the file and environment permissions accessible to the current
dshprocess; it’s recommended to review the source code, command behavior, and MIT license before installation. - Slash commands are only available in
dshWeb; in headless CLI or terminal, usedshx mcp .... /mcpreports results from a self-created diagnostic connection and does not representdsh’s current live connections or reconnection status.- MCP servers requiring OAuth are not supported.
- When modifying fields of an existing server, documentation indicates you can only rewrite the entire entry with
--force. - Values provided using
$VARsyntax are stored as environment variable references; if the source configuration originally contained plaintext tokens, they may remain plaintext after migration. dshxwon’t restartdshfor you; you’ll need to reloaddshafter modifying configurations.
Related Links¶
- Repository: https://github.com/why913/dshx
- Directory page: https://www.skillhub.cn/plugins/why913/dshx