DeepSeek Harness Plugin MCP
MCP server that lets AI agents discover, inspect, install, and run DeepSeek Harness plugins via MCP, bridging the gap between the MCP protocol and Cordis-based plugin bundles.
README
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.patch → cordis.patch.yml). Foreign agents speak MCP, not Cordis. This server is the inverse of @deepseek-ai/dsh-mcp-client:
| Plane | Needs DSH? | What the agent can do |
|---|---|---|
| Catalog | No | Search/list/inspect every public dsh-plugin repo, read README and cordis.patch.yml |
| Profile | dsh on PATH |
dsh plugin add / remove into a real profile |
| Runtime | dsh on PATH + --allow-runtime |
Boot 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_searchdsh_plugin_get/dsh_plugin_inspect/dsh_plugin_readmedsh_plugin_list_installed/dsh_plugin_install/dsh_plugin_uninstalldsh_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 / env | Default | Meaning |
|---|---|---|
--http |
stdio | Streamable HTTP |
--host / DSH_PLUGIN_MCP_HOST |
127.0.0.1 |
Bind address |
--port / DSH_PLUGIN_MCP_PORT |
8765 |
Bind port |
--allow-install / DSH_PLUGIN_MCP_ALLOW_INSTALL |
off | dsh plugin add/remove |
--allow-runtime / DSH_PLUGIN_MCP_ALLOW_RUNTIME |
off | Spawn DSH and bridge tools |
--profile / DSH_PLUGIN_MCP_PROFILE |
mcp-bridge |
Target profile |
--dsh-root / DSH_ROOT |
unset | Harness checkout (informational in status) |
--cache-dir / DSH_PLUGIN_MCP_CACHE_DIR |
~/.dsh-plugin-mcp |
Catalog cache |
--no-catalog / DSH_PLUGIN_MCP_CATALOG=0 |
on | Disable GitHub catalog tools |
GITHUB_TOKEN / GH_TOKEN |
unset | GitHub API auth |
Install and runtime are off until you opt in. Catalog is always available.
Typical agent flow
dsh_plugin_searchwith the task keywords.dsh_plugin_inspectonowner/repo. PreferisDshBundle: true.- Optional:
dsh_plugin_installwithgithub:owner/repo. dsh_runtime_startwithplugins: ["github:owner/repo"].- 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.