Tools & Capabilities
dsh-tui-mcp-manager
0N3-0/dsh-tui-mcp-manager · ★ 0
Native file-backed MCP server manager for dsh-TUI
Manifest details
安装
dsh plugin --profile web add 'dsh-tui-mcp-manager@0.1.6'从 npm 安装预构建包
For install and environment setup, plus plugin development tutorials, see DSH community docs ↗
README
Table of contents
English | 中文
Manage MCP servers, Sets, tools, and runtime state inside dsh-TUI.
Run /mcp-manager to open the full-screen interface without leaving the terminal.
Install
Requires Node.js ^22.19 || >=24, dsh 0.2.1-rc.2, and dsh-TUI >=0.16.1 <0.17.0.
npm install -g @deepseek-harness-tui/dsh-tui@0.16.1
dsh plugin --profile dsh-tui add dsh-tui-mcp-manager
dsh-tui
Run /mcp-manager inside the TUI. The interface follows dsh-TUI's language setting; use /lang zh or /lang en to switch.
dsh-TUI 0.16.1 admits this plugin through its Loader. /mcp-manager uses host-mediated registration with plugin attribution and commands.invoke grants; failed admission leaves the command unregistered. Language preferences support the new ~/.dsh-tui/settings.json.
Start with dsh-tui (or dst); the launcher uses the dsh-tui profile by default, with no --profile argument. Integration checks cover its composition order, command invocation and cleanup with dsh 0.2.1-rc.2 and TUI 0.16.1. The older dsh --profile dsh-tui entry can leave commands unregistered due to TUI 0.16.1 admission ordering; this plugin does not bypass admission or grants.
Upgrade dsh with npm install -g @deepseek-ai/dsh@0.2.1-rc.2. TUI 0.16.1 declares support for this version and can be installed directly:
dsh plugin --profile dsh-tui add @deepseek-harness-tui/dsh-tui@0.16.1
Preview

Set management · Tools and schemas · Create a Set · Create a server
Highlights
| Area | Capabilities |
|---|---|
| Server pool | Create, duplicate, edit, stop, reconnect, and globally delete servers |
| MCP Sets | Organize members, control runtime and startup state, and deduplicate shared servers |
| Tools | Inspect descriptions and input schemas; search by name or description |
| Diagnostics | Automatically check configuration, connectivity, runtime state, and tools |
| Credentials | Reference sensitive environment variables and headers through DSH credentials |
The server editor exposes dsh 0.2's maxInstructionBytes limit for UTF-8 server instructions in the system prompt (default: 32,768). DSH's shared resource tools read MCP resources on demand.
Server, Set, and tool lists all support / search. Server overviews list every containing Set: ◆ is active and ◇ is inactive.
How Sets work
The effective server list is the union of all active Sets. Shared members start only once:
Set A: context7, websearch
Set B: websearch, ghgrep
Run: context7, websearch, ghgrep
On first use, a Default Set is created from existing MCP servers; after saving, it is an ordinary Set. Stopping a server affects only the current process and never changes Set membership. Resume it in place at any time.
Controls
| Key | Action |
|---|---|
Tab |
Switch focus between navigation and details |
↑ / ↓ |
Select a node, action, field, or tool |
← / → |
Switch detail tabs or move the input cursor |
Enter |
Open, edit, or confirm |
/ |
Search the current list |
w |
Switch between Sets and the server pool |
Esc |
Go back or cancel |
Configuration and Safety
- Server configuration is read from and written to the active profile's
cordis.patch.yml; there is no second database. - Sets live in
mcp-manager.sets.ymlbeside the patch and contain only Set metadata and server IDs. - The complete read/modify/write cycle shares the DSH profile configuration lock, preventing concurrent windows or processes from overwriting each other; content outside the managed block is preserved.
- Related server and Set changes commit together using
fsync, atomic rename and an undo journal. Failed saves roll back; the next access recovers interrupted commits. Later manual edits are preserved and reported as conflicts. - Globally deleting a server also removes its references from every Set.
- Sensitive values go only to the credentials provider; configuration stores references.
- When upgrading from older dsh releases, a profile without a managed block imports its legacy MCP configuration once from
settings.yamlorsettings.yaml.imported.
The Diagnostics tab checks Loader/Fiber state, executable or URL, working directory, credentials, connectivity, and tool count. A server outside the active Set union temporarily enables its existing Loader configuration for the handshake, reads its state, and restores the disabled state afterward without changing Sets or files.
Switching servers, leaving Diagnostics or closing the scene cancels diagnosis and cleans up temporary activation. Lists and other servers remain usable during diagnosis. Background polls, manual refreshes and state events share a refresh queue, and unchanged views retain their snapshot identity.
Stop server also disables only the in-memory Loader row. A configuration or profile reload clears that temporary state.
The plugin modifies only the block between these markers in cordis.patch.yml. Legacy markers, row prefixes, and metadata keys remain compatible.
# >>> dsh-mcp-manager: managed MCP server rows >>>
# managed MCP server rows
# <<< dsh-mcp-manager: managed MCP server rows <<<
Sensitive fields leave only a reference in the patch:
secretHeaders:
api-key:
ref: MY_CONTEXT7_KEY
prefix: ''
Values never appear in server summaries, profile patches, or RPC snapshots.
The journal makes multi-file commits recoverable; external file watchers may briefly observe sequential file replacements. The owner-only recovery journal is .mcp-manager.transaction.json inside the profile. Keep it intact while recovery is pending.
Update and Uninstall
Run the install command again to update. To uninstall:
dsh plugin --profile dsh-tui remove dsh-tui-mcp-manager
git clone https://github.com/0N3-0/dsh-tui-mcp-manager.git
cd dsh-tui-mcp-manager
pnpm install --frozen-lockfile
pnpm check
dsh plugin --profile dsh-tui add .
Common release checks:
pnpm check
npm pack --dry-run
pnpm smoke:package
pnpm check includes type checking, builds, real MCP tests, cross-process writes and crash recovery, diagnostic cancellation, real React lifecycle checks, and TUI Loader admission and command grants. Tests use temporary profiles and local fixtures. The host integration script alone enables Node --expose-internals for Cordis Loader’s built-in module-resolution fallback.
Local add . is only for development. Regular users do not need to clone or build the repository.
Compatibility
dsh-TUI 0.16.1 with dsh 0.2.1-rc.2 is the current build and runtime baseline. The package is pure ESM, MIT licensed, and published through GitHub Actions OIDC Trusted Publishing.
The plugin runs in the host process. Manifest permissions are audit and policy declarations, not an operating-system sandbox.
License
MIT © 2026 0N3-0