aka-danielZhang/dsh-mcp-settings
用于MCP服务器管理、库存状态和Web设置的DSH捆绑包
项目介绍Project Overview
dsh-mcp-settings 是可安装的 DeepSeek Harness 插件包,含管理器、清单与设置 UI 三个插件,用于在 Web Settings 中管理 mcp.servers:启停 MCP 客户端、轮询状态、统计工具,并支持表单/JSON 编辑与凭据引用。需要在 Web 配置文件中通过表单配置 stdio 或 HTTP MCP 服务器时使用。注意:它要求匹配的 Harness 开发版发出 mcp-client/status 事件,且不能与其他设置驱动的 MCP 管理器或 UI 共存。
dsh-mcp-settings is an installable DeepSeek Harness bundle with manager, inventory, and settings UI plugins for managing mcp.servers from Web Settings. It starts and stops MCP client fibers, polls connection status, counts tools, and supports Form/JSON editing plus credential references. Use it when configuring stdio or Streamable HTTP MCP servers in a Web profile. It requires a matching Harness development build that emits mcp-client/status, and must not coexist with another settings-driven MCP manager or UI.
请帮我了解并安装插件:【dsh-mcp-settings】【https://github.com/aka-danielZhang/dsh-mcp-settings】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add github:aka-danielZhang/dsh-mcp-settings
把 aka-danielZhang/dsh-mcp-settings 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-mcp-settings
English | 中文
An installable DeepSeek Harness bundle containing the three plugins that manage MCP servers from Web Settings.
| Cordis row | Entry | Responsibility |
|---|---|---|
dsh-mcp-settings-manager |
dsh-mcp-settings/manager |
Owns mcp.servers, starts and stops one in-box MCP client fiber per enabled server, and publishes merged connection status. |
dsh-mcp-settings-inventory |
dsh-mcp-settings/inventory |
Exposes the read-only mcpInventory/list Remote. |
dsh-mcp-settings-ui |
dsh-mcp-settings + ./client |
Adds the MCP Settings page, Form/JSON editing, enable toggles, status polling, and tool counts. |
The bundle inserts these rows into a compatible Web profile. The profile must not already mount another settings-driven MCP manager or MCP Settings UI. Existing mcp.servers user settings are not removed.
Requirements
- A matching DeepSeek Harness development build whose
webprofile already supplies the DSH peer packages listed inpackage.json. - That Harness build must emit the
mcp-client/statusevent; this event is not yet on the public Harness default branch. - Node.js
^22.19.0 || >=24. - pnpm 10 or newer when installing directly from GitHub.
Install from GitHub
DSH plugins are distributed as bundles. dsh plugin add installs this package into a profile and appends its dsh.bundle layer to the profile manifest; no separate enable script is required.
dsh plugin --profile web add github:aka-danielZhang/dsh-mcp-settings
This command installs the bundle only. It does not install or upgrade the Harness-owned peer packages, so point it at a matching Web profile as described above.
Git installs run this repository's prepare script to create lib/. pnpm blocks dependency build scripts until the profile grants permission. If the first install reports an ignored build, add the exact package key it prints to ~/.dsh/profiles/web/pnpm-workspace.yaml and repeat the command:
allowBuilds:
"dsh-mcp-settings@https://codeload.github.com/aka-danielZhang/dsh-mcp-settings/tar.gz/<commit-sha>": true
This permission allows package code to run during installation. Pin a commit when installing code you do not control:
dsh plugin --profile web add github:aka-danielZhang/dsh-mcp-settings#<commit-sha>
Restart dsh --profile web after installation. Open Settings > MCP; the existing mcp.servers list remains available.
Verify the composed rows:
dsh --profile web --dump-config
The output should contain dsh-mcp-settings-manager, dsh-mcp-settings-inventory, and dsh-mcp-settings-ui.
Install a local checkout
git clone https://github.com/aka-danielZhang/dsh-mcp-settings.git
cd dsh-mcp-settings
dsh plugin --profile web add file:.
The package scripts are optional shortcuts when dsh is installed globally:
pnpm run plugin:add
pnpm run plugin:dump
pnpm run plugin:remove
The documented DSH CLI remains the authoritative installation path; the scripts do not edit profile files directly.
Configure MCP servers
Use Settings > MCP. The manager reads the same mcp.servers settings namespace as the in-box implementation. Credentials stay in the Harness credential service: HTTP entries use authorizationCredentialRef to build a Bearer authorization header, while stdio entries use envCredentialRefs to map target environment names to credential references, so keys never enter the MCP settings document. Reference names follow the portable environment-variable form [A-Za-z_][A-Za-z0-9_]*.
When authorizationCredentialRef is present, its resolved Bearer value is authoritative and replaces any case variant of an Authorization entry in headers. A credentials/updated event restarts only servers that use the changed reference, so rotations reach the next process or connection without editing MCP settings.
The UI supports stdio and Streamable HTTP servers, Form and JSON editing, credential references, direct enable/disable, and live status/tool counts. An enabled server is queried immediately after save and every two seconds until connected or 60 seconds elapse.
Remove
dsh plugin --profile web remove dsh-mcp-settings
Restart the Web profile. The bundle rows disappear while user settings remain intact.
Develop
The typecheck and test setup follows the DSH out-of-tree plugin convention: keep a Harness checkout in the sibling directory ../deepseek-harness.
git clone https://github.com/deepseek-ai/deepseek-harness.git ../deepseek-harness
cd ../deepseek-harness && pnpm install
cd ../dsh-mcp-settings
pnpm install
pnpm run typecheck
pnpm test
pnpm run bundle
pnpm run smoke
For live development, install the local checkout into the Web profile once, keep dsh web running, and run the bundle watcher in another terminal:
pnpm run plugin:add
pnpm run dev:web
dsh web always mounts the client HMR receiver. The watcher rebuilds this out-of-tree package's Host and Client bundles; the running Host observes the changed bundle revision and reloads the browser plugin without a page refresh. Harness's root pnpm run dev:web only watches in-tree packages/*/* client plugins and does not replace this package-local watcher.
prepare uses the self-contained tsdown.config.ts and tsconfig.prepare.json, so a consumer installing from GitHub does not need the sibling Harness checkout. Type checking and tests do require it.
GitHub CI verifies the consumer-side install, bundle, JavaScript syntax, and packed distribution without a Harness checkout. The full typecheck and test suite intentionally runs against a matching sibling Harness development tree because the required mcp-client/status event has not yet landed on the public Harness default branch.
Compatibility
Current compatible DeepSeek Harness version: 0.1.0-rc.7 (@deepseek-ai/dsh-root and the in-box @deepseek-ai/dsh-mcp-client, both 0.1.0-rc.7). Since v0.2.2 the manager mirrors the reconnect defaults and server-name pattern locally instead of importing unpublished dsh-mcp-client exports, so it loads on a clean rc.7 harness. The harness build must emit the mcp-client/status event.
This bundle replaces extension points present in the current DeepSeek Harness release-candidate line and deliberately reuses the in-box @deepseek-ai/dsh-mcp-client. DSH is pre-release software; update the peer ranges, Typert descriptor, and bundle patch together when those extension points change.
Origin and license
The implementation was migrated from the MIT-licensed MCP manager, MCP inventory, and MCP Settings packages in DeepSeek Harness. See LICENSE.
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS