DSH Plugin Store
Back to home

bobleer

deepseek-harness-plugin-mcp

MCP server that lets any agent discover, install, and run DeepSeek Harness plugins (topic: dsh-plugin).

Stars
2
Language
TypeScript
Created
Aug 13, 2026
Updated
Aug 13, 2026
MCP
GitHub repoHomepage

Introduction

DeepSeek Harness Plugin MCP

Made by BitFun.

MCP server that lets any agent discover, inspect, install, and run DeepSeek Harness plugins.

Catalog source: github.com/topics/dsh-plugin.

English | 中文

What it does

DSH plugins are Cordis bundles (dsh.bundle.patchcordis.patch.yml). Foreign agents speak MCP, not Cordis. This server is the inverse of @deepseek-ai/dsh-mcp-client:

PlaneNeeds DSH?What the agent can do
CatalogNoSearch/list/inspect every public dsh-plugin repo, read README and cordis.patch.yml
Profiledsh on PATHdsh plugin add / remove into a real profile
Runtimedsh on PATH + --allow-runtimeBoot that profile and call composition tools as dsh__*

UI/TUI/skin plugins are catalogued and installable. They do not become MCP tools; their UI stays in DSH.

Install

npm install -g deepseek-harness-plugin-mcp
# or
npx deepseek-harness-plugin-mcp --help

Node ^22.19 || >=24.

Wire it into an agent

Cursor / Claude Desktop / Claude Code / Codex (stdio)

{
  "mcpServers": {
    "dsh-plugins": {
      "command": "npx",
      "args": ["-y", "deepseek-harness-plugin-mcp"],
      "env": {
        "GITHUB_TOKEN": "ghp_optional_but_recommended"
      }
    }
  }
}

Enable install and runtime (this runs dsh plugin and plugin code):

{
  "mcpServers": {
    "dsh-plugins": {
      "command": "npx",
      "args": ["-y", "deepseek-harness-plugin-mcp", "--allow-install", "--allow-runtime"],
      "env": {
        "GITHUB_TOKEN": "ghp_…",
        "DSH_PLUGIN_MCP_PROFILE": "mcp-bridge"
      }
    }
  }
}

dsh must be on PATH for the profile and runtime planes.

Streamable HTTP

dsh-plugin-mcp --http --port 8765 --allow-runtime

Point the agent at http://127.0.0.1:8765/mcp. GET /health is a process liveness check.

Inside DeepSeek Harness

This package is itself a DSH bundle:

dsh plugin --profile web add github:bobleer/deepseek-harness-plugin-mcp
dsh --profile web

The live Harness then serves Streamable HTTP MCP (default http://127.0.0.1:8765/mcp) and mirrors ctx.tools — every first-party and third-party tool the composition registered.

MCP tools

Control plane:

  • dsh_plugin_status / dsh_plugin_refresh_catalog / dsh_plugin_list / dsh_plugin_search
  • dsh_plugin_get / dsh_plugin_inspect / dsh_plugin_readme
  • dsh_plugin_list_installed / dsh_plugin_install / dsh_plugin_uninstall
  • dsh_runtime_start / dsh_runtime_stop / dsh_runtime_load / dsh_runtime_unload / dsh_runtime_list_tools

After dsh_runtime_start, DSH tools appear as dsh__<name>.

Resources: dsh-plugin://catalog, dsh-plugin://github/{owner}/{repo} (+ /readme, /package.json, /cordis.patch.yml), dsh-plugin://installed/{profile}, dsh-plugin://runtime/tools.

Prompts: search-dsh-plugins, install-dsh-plugin, use-dsh-plugin.

Flags and env

Flag / envDefaultMeaning
--httpstdioStreamable HTTP
--host / DSH_PLUGIN_MCP_HOST127.0.0.1Bind address
--port / DSH_PLUGIN_MCP_PORT8765Bind port
--allow-install / DSH_PLUGIN_MCP_ALLOW_INSTALLoffdsh plugin add/remove
--allow-runtime / DSH_PLUGIN_MCP_ALLOW_RUNTIMEoffSpawn DSH and bridge tools
--profile / DSH_PLUGIN_MCP_PROFILEmcp-bridgeTarget profile
--dsh-root / DSH_ROOTunsetHarness checkout (informational in status)
--cache-dir / DSH_PLUGIN_MCP_CACHE_DIR~/.dsh-plugin-mcpCatalog cache
--no-catalog / DSH_PLUGIN_MCP_CATALOG=0onDisable GitHub catalog tools
GITHUB_TOKEN / GH_TOKENunsetGitHub API auth

Install and runtime are off until you opt in. Catalog is always available.

Typical agent flow

  1. dsh_plugin_search with the task keywords.
  2. dsh_plugin_inspect on owner/repo. Prefer isDshBundle: true.
  3. Optional: dsh_plugin_install with github:owner/repo.
  4. dsh_runtime_start with plugins: ["github:owner/repo"].
  5. Call the listed dsh__* tools.

Development

npm install
npm run check

Protocol smoke (official MCP Inspector CLI, same client family as @modelcontextprotocol/sdk):

npx @modelcontextprotocol/inspector --cli node dist/cli.js --method tools/list
npx @modelcontextprotocol/inspector --cli node dist/cli.js --method tools/call \
  --tool-name dsh_plugin_status --tool-args-json '{}'

Design: docs/design.md.

License

MIT