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

  1. Add or remove MCP servers with a single command, with support for listing and testing.
  2. Performs an actual connection check before writing; rejects outright if it can’t connect, so broken configurations never get written to files.
  3. API keys support environment variable references, avoiding plaintext in configuration files.
  4. Skills can be installed from GitHub or local paths, with sources recorded for updates.
  5. Supports migrating MCP, skills, and global memory from Claude Code / Codex.
  6. Provides /mcp commands and clickable cards in dsh Web.
  7. Ships with a built-in SKILL.md, allowing the dsh agent to discover and invoke the tool.

Installation and Activation

Environment requirements:

  • Node.js >=22.19
  • @deepseek-ai/dsh-tools is a peer dependency provided by the host
  • dsh is currently in developer preview; documentation indicates it has been tested on @deepseek-ai/dsh 0.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 dsh process; it’s recommended to review the source code, command behavior, and MIT license before installation.
  • Slash commands are only available in dsh Web; in headless CLI or terminal, use dshx mcp ....
  • /mcp reports results from a self-created diagnostic connection and does not represent dsh’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 $VAR syntax are stored as environment variable references; if the source configuration originally contained plaintext tokens, they may remain plaintext after migration.
  • dshx won’t restart dsh for you; you’ll need to reload dsh after modifying configurations.

Related Links

  • Repository: https://github.com/why913/dshx
  • Directory page: https://www.skillhub.cn/plugins/why913/dshx