LBurny/dsh-plugin--packages-dsh-mcp ↗★ 0
dsh-mcp
DSH内置的MCP服务可视化管理面板 适合需要直接在DSH界面中增删、启停和导入MCP工具配置的用户。
同名套件的其他儲存庫
安裝
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:LBurny/dsh-plugin#7922dc00723785a651a741a9d255357f56b87f56&path:packages/dsh-mcp說明文件
閱讀完整 README ↗dsh-mcp
Manage MCP servers from inside DeepSeek Harness: add, edit, delete, enable/disable, and import from other agent tool configs.
Ported from DSHDesktop's MCP page. It edits the active profile's cordis.patch.yml through the
yaml document API — the same approach as dsh's own dsh-config-editor — so your comments and
!!js expression tags survive, and editing an existing server keeps the advanced keys the form
does not own (toolCallTimeoutMs, reconnect, …). Writes go through writeFileAtomic with the
package's file lock, serialized against the loader's hot reload.
Placement
With dsh-features (功能管理) installed, this panel appears on that hub's single
page and no longer docks its own corner button; without the hub — a bare dsh, or a profile where it is
not installed — the floating panel is built exactly as before. The coupling is two DOM-level
conventions (window.__dshFeatures, #dsh-launchers), described in the repository's AGENTS.md.
Install
dsh plugin --profile web add github:LBurny/dsh-plugin#path:/packages/dsh-mcp
# pin a commit:
dsh plugin --profile web add github:LBurny/dsh-plugin#&path:/packages/dsh-mcp
--profile web = DSHDesktop's shell, --profile desktop = the official desktop app; the panel needs no flag.
Restart dsh afterwards — plugins have no HMR. Server edits themselves do not need a restart: dsh hot-reloads the patch layer.
What it does
- List the MCP servers in the active profile's patch layer, with transport, a one-line summary and enabled state.
- Add / edit a server:
stdio(command, arguments, env, cwd) orstreamable-http(url, headers). - Enable / disable by setting
disabled: trueon the row. - Delete a server row.
- Import from other agent tool configs found under
$HOME(Claude-style.mcp.json, Codex-style TOML, …); servers whose transport this plugin cannot express are shown greyed out. /mcpprints the same list as text, without the browser.
Routes
| Method | Path | Purpose |
|---|---|---|
| GET | /dsh-mcp/panel.js /dsh-mcp/panel.css | browser half |
| GET | /dsh-mcp/api/mcp | servers + importable sources + counts + patch path |
| POST | /dsh-mcp/api/mcp | upsert · toggle · delete · import |
Data
| What | Where |
|---|---|
| MCP servers | `$DSH_HOME/profiles/ |
/cordis.patch.yml, as insert` rows |
This package keeps no settings file of its own.
Test
# from an installed copy (needs `yaml` and @deepseek-ai/dsh-atomic-write via the profile)
cd "$DSH_HOME/profiles/plugins/dsh-mcp"
node test/mcp.test.mjs
The test guards the thing that matters: a round trip through the editor must leave every other row,
every comment and every !!js tag intact.
License
MIT.