快速了解
它能做什么
用于查看、配置和试运行 MCP 服务器的 DeepSeek Harness Web 管理控制台。
本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。
Web Profile
>=0.1.2-rc.1 <0.2.0, including declared 0.1.2-rc.1 and 0.1.5-alpha.1
证据已验证
核对日期 2026/9/9 UTC 14:21
选择前先看
dsh-mcp-panel 在“设置 → 插件”中新增 MCP 标签页,并提供 /mcp 命令。它展示已配置服务器的状态、工具数量、诊断和重连信息;还可生成添加、编辑或禁用服务器的补丁片段,并通过官方工具管线试运行 MCP 工具。
适合谁
面向管理 MCP 服务器、希望通过可视化状态和配置界面减少手写服务器配置的 DeepSeek Harness 用户。
常见任务
- 查看已配置 MCP 服务器的工具、状态、错误和重连次数。
- 生成并审阅用于添加、编辑或禁用 MCP 服务器的追加式配置补丁。
- 使用 JSON 参数,通过官方工具管线试运行指定 MCP 工具。
- 使用可选的 Streamable HTTP 连通性探测或后台定期探测。
权限与数据
清单声明出站网络权限且不使用原生代码。启用后,插件可能在审批后写入 profile 补丁。
权限- network:outbound
- native-code:none
- 提供的文档称,渲染前会脱敏 URL 凭据、密码、请求头值、Bearer Token 和 JWT。
- 提供的文档称,已配置的请求头不会进入快照,编辑器仅显示请求头键名而非值。
- Profile 变更被描述为追加式补丁操作,并会创建备份。
- 已配置的 MCP 服务器,以及可选的 Streamable HTTP 探测端点。
- 未声明插件专属凭据要求;凭据可能属于所配置的 MCP 服务器,应谨慎处理。
局限
- Resources 和 Prompts 被描述为等待上游支持;当前官方桥接仅覆盖工具。
- 上游缺少观测时,部分连接字段可能显示为未知。
- 提供的证据未演示成功安装、运行测试或真实网络调用。
- 该包声明了 prepare 生命周期脚本。
DSHub 已核对
- 已验证固定源提交、Bundle 清单和 Cordis 补丁结构。
- 清单声明了 Web 客户端界面、出站网络权限、Node 要求及 DeepSeek Harness peer dependency 版本范围。
- 该包采用 Apache-2.0 许可证。
DSHub 未核对
- 本次整理未执行安装、热重载、profile 写入、探测、工具试运行或诊断功能。
固定版本安装
安装 dsh-mcp-panel
这个Plugin Bundle没有 DSH Plugin 安装操作,请根据源码文档使用真实交付方式。
维护者原文
项目 README
dsh-mcp-panel
- 1024 store channel:
npm i -g dsh1024once, thendsh1024 plugin --profile web add dsh-mcp-panel(counts toward the deepseek1024.com install ranking).
The MCP management console for the official DeepSeek Harness MCP client — add, edit, remove, and trial-call MCP servers from a settings page, with honest status, health diagnostics, and safe, reversible profile writes.
Official client = bridge, this plugin = console: read status through the mcp/status seam, write only append-only, approval-gated profile patches.
Official repository. This is the only official repository of dsh-mcp-panel, maintained by PerryLink. Same-name repositories under other accounts are not affiliated.
English · 简体中文 · Español · Português · हिन्दी
</div>Compatibility
| Surface | Status |
|---|---|
| Harness | DeepSeek Harness dsh-v0.1.5-alpha.1 (GitHub tag, verified 2026-09-09) (adapted 2026-09-09): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged. Verified 2026-09-09 against the dsh-v0.1.5-alpha.1 master checkout (full gate chain + profile install smoke). |
| Node | ^22.19.0 || >=24.0.0 |
| Platforms | Web GUI (dual-face: host + browser) |
| Model | Any (the panel is read-only; only /mcp output is model-readable) |
What you get
dsh-mcp-panel is the experience layer on top of the official MCP client: a read-only runtime view plus safe, reversible profile writes.
/mcpcommand — one row per server: transport, target, tool count, connection status (from the upstream seam;unknownwhen unobserved), last error, reconnect count — model-readable, session-log reconstructable, five output languages./mcp <server> tools— model-visiblemcp__*tool names and descriptions./mcp <server> health— derived self-heal suggestions (ENOENT → missing dependency, ECONNREFUSED, timeouts, 401/403/404, DNS, rate limit, reconnect exhaustion…); exit code / stderr tail honestly labeled pending upstream support until the client exposes them./mcp <server> call <tool> [json]— trial-call through the official tool pipeline (ctx.tools.execute()); pre-execute permission policy, approval, guards, and post-execute all apply.- Settings → Plugins → MCP tab — status cards with badges, diagnostics, and probes, plus the server CRUD and the tool trial console.
- Server CRUD — add/edit/remove forms →
insert/set/set disabledfragments → clipboard copy or approval-gated write with automatic backups. - Recommended directory — a built-in community MCP server catalog (filesystem, git, github, fetch, playwright, …) served in the snapshot;
catalogEntriesappends/overrides entries, andcatalogToConfigInputturns one into a one-click add. - Config import/export —
exportConfigs()serializes the server rows to a versioned JSON document (a!!jsrow exports asnullwith a reason), andimportPreview()parses an export back into per-serveraddpatch fragments for review. - Tool trial console — server →
mcp__*tool → JSON args → canonical JSON result + rendered content; capped bytrialMaxResultChars; panel-only, never model context.
Architecture: official client = bridge, this plugin = console
@deepseek-ai/dsh-mcp-client is the only bridge: one plugin instance per MCP server, configured as a hand-written cordis.yml row, connecting the transport, syncing tools, and registering mcp__<server>__<tool> names. This plugin never replaces it — it is the experience layer on top:
┌────────────────────────────────────────────┐
profile │ cordis.yml / cordis.patch.yml │
composition │ - id: mcp-github │
(one row per │ name: '@deepseek-ai/dsh-mcp-client' │
server, hand- │ config: { serverName, transport, … } │
written) │ - id: mcp-panel │
│ name: dsh-mcp-panel ◄── this plugin │
└───────────────┬────────────────────────────┘
│
┌───────────────────────────┴───────────────────────────┐
│ │
┌────▼──────────────┐ ┌───────────────────────────┐ │
│ @deepseek-ai/dsh- │ │ dsh-mcp-panel (console) │ │
│ mcp-client │ │ │ │
│ • transport │ │ • /mcp command │ │
│ • tool sync │ │ • Settings → Plugins → │ │
│ • mcp__* tools │◄──────►│ MCP tab: CRUD, trial │ │
│ • mcp/status seam │ status │ • health diagnostics │ │
└───────────────────┘ │ • probes, capabilities │ │
└───────────────────────────┘ │
The console reads the client through its proposed mcp/status observability seam (not yet shipped upstream; feature-detected) (event + mcpStatus query service), the tool registry, and the loader; it writes only the profile's patch layer — append-only, approval-gated, always backed up. Transport, OAuth, and protocol stay untouched.
Console vs. hand-written cordis.yml
| Hand-written cordis.yml | dsh-mcp-panel console | |
|---|---|---|
| Add a server | Edit YAML, mind indent/quoting | Form → patch fragment → copy or write (approval + auto backup) |
| Edit a server | Edit YAML, restart/hot-reload | Form pre-filled from the live row; unchanged secrets keep their raw values host-side |
| Remove a server | Delete the row | set disabled: true operation (the patch vocabulary has no remove) — re-enableable anytime |
| See status | Read logs | Badges + reconnects + last error, live from the mcp/status seam |
| Try a tool | Ask the model to call it | Trial console → official ctx.tools.execute() pipeline (permission & approval stay in force) |
| Diagnose failures | Grep logs | /mcp <server> health with derived self-heal suggestions |
| Mistakes | Manual revert | Every write is append-only and leaves a timestamped backup |
The console's output IS cordis.patch.yml vocabulary — the same lines you would write by hand, generated, previewed, and applied safely.
Quick start
# 1. install the bundle into your profile
dsh plugin --profile web add "github:PerryLink/dsh-mcp-panel#main"
# or from npm (published releases)
dsh plugin --profile web add dsh-mcp-panel
# 2. restart and verify the row
dsh --profile web --dump-config | grep -A3 'id: mcp-panel'
Then open Settings → Plugins → MCP, or run:
/mcp
/mcp everything tools
/mcp everything health
/mcp everything call echo '{"message": "hi"}'
Install & uninstall
- git channel (latest
main):dsh plugin --profile web add "github:PerryLink/dsh-mcp-panel#main"— thepreparescript builds with production dependencies only. - npm channel (published releases):
dsh plugin --profile web add dsh-mcp-panel. - tarball channel:
pnpm packin this repo, thendsh plugin --profile web add ./dsh-mcp-panel-<version>.tgz. - uninstall: remove the
mcp-panelrow fromcordis.patch.yml(the web surface hot-reloads it), delete the package from the profile'snode_modules, and verify withdsh web --dump-configthat nomcp-panelrow remains.
Configuration
All tunables are Schemastery Config fields (changeable from cordis.yml). cordis.patch.yml documents each key inline.
| Key | Default | Meaning |
|---|---|---|
probeEnabled |
true |
Register the mcp_probe background-job tool (panel-only results) |
probeTimeoutMs |
10000 |
Per-probe timeout in ms |
maxProbes |
10 |
Probe records shown in the panel |
refreshIntervalMs |
0 |
Suggested panel refresh in ms; 0 = on demand |
outputLanguage |
en |
/mcp output language: en | zh | es | pt | hi |
passiveProbeEnabled |
false |
Periodically probe streamable-http servers |
passiveProbeIntervalMs |
60000 |
Passive probe interval in ms |
trialEnabled |
true |
Tool trial console (settings tab + /mcp call) |
trialTimeoutMs |
120000 |
Panel-side deadline per trial call in ms |
trialMaxResultChars |
60000 |
Cap on the trial result payload in chars |
writeEnabled |
true |
Kill switch: false rejects every profile write (copy still works) |
backupCount |
5 |
cordis.patch.yml backups retained per write |
catalogEntries |
[] |
User overlay for the recommended server directory: entries append, an entry with the same id replaces the built-in one |
Tools & surfaces
| Surface | Kind | Notes |
|---|---|---|
/mcp |
command | Per-server status row; model-readable and log-reconstructable |
/mcp <server> tools |
command | Model-visible mcp__* tool names + descriptions |
/mcp <server> health |
command | Derived self-heal suggestions from sanitized error text |
/mcp <server> call <tool> [json] |
command | Trial-call through the official tool pipeline |
mcp_probe |
tool | Optional Streamable HTTP connectivity probe (background job) |
| Settings → Plugins → MCP tab | UI slot | Status cards, server CRUD, and the tool trial console |
mcpPanel Typert Remote |
service | Read-only snapshot channel (host → client) |
Resources & Prompts
The official client documents that "Tools are the only bridged MCP capability" — Resources and Prompts are deferred. The console feature-detects a proposed upstream catalog seam and will show read-only lists the day it ships; until then the capabilities board marks both pending upstream support.
Permissions & data
- Permissions: the
dshWorkshopmanifest declaresnetwork:outboundandnative-code:none. - Data: the panel is read-only; it writes only append-only
cordis.patch.ymlfragments (approval-gated, backup-first). URL query credentials, userinfo passwords, header values, bearer tokens, and JWTs are redacted before rendering; configuredheadersnever enter any snapshot, and env/header values never leave the host (the editor sees keys only).
Security boundaries
- The bridge stays the bridge. No transport, OAuth, or protocol changes; one mcp-client row per server, exactly as hand-written.
- No fake status. Connection fields without upstream observations read
unknown/—withstatusSource: 'derived'; exit codes and stderr tails are never invented. - Writes are append-only, approval-gated, and backed up. The console never rewrites
cordis.patch.yml; it appends generated operations and keeps the newestbackupCountbackups. - No prompt injection. The panel registers no prompt sections; its only model-facing text is the two tool/command descriptions.
Known limitations
- Resources & Prompts are pending upstream support — the official client bridges tools only.
- Exit codes / stderr tails are labeled pending upstream support until the client exposes them.
- Read-only panel — the console never fakes a connection state; unobservable fields read
unknown/-1/—.
Development
pnpm run typecheck && pnpm run typecheck:ci && pnpm test && pnpm run build && pnpm run verify:self-contained && pnpm run verify:artifacts && pnpm pack
scripts/verify-headless.mjs boots the real web profile and prints the exact /mcp output. Releases: node scripts/release.mjs <x.y.z> runs the full gate, commits, and tags v<x.y.z> locally (never pushes).
Topics
dsh, dsh-plugin, deepseek-harness, deepseek, cordis, mcp, mcp-client, observability, panel
Contributors
- @PerryLink — creator and maintainer.
- @xiaoyuyu6420 — diagnosed the missing client devDependencies behind clean-checkout build failures (PR #5).
- @feiler0 — contributed the stdio MCP server probe (one MCP initialize handshake over stdin/stdout) (PR #7, merged as PR #15).
PerryLink DSH Plugin Family
This project is one of the 37 DeepSeek Harness plugins maintained by PerryLink. If this one helps you, the others likely will too:
| Plugin | One-liner |
|---|---|
| dsh-auto-review | Second-model auto-review on the approval chain, fail-closed by default |
| dsh-background-agents | Durable background child agents with a Web UI sidebar, messaging and interrupt |
| dsh-budget | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. |
| dsh-checkpoint-rewind | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore |
| dsh-claude-move | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH |
| dsh-click | Cross-platform native desktop control for DeepSeek Harness — Windows first. |
| dsh-composer-history | Terminal-style input history for the web composer: arrows, Ctrl+R search |
| dsh-data-quality | Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here) |
| dsh-defend | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. |
| dsh-doublecheck | Engineering-discipline guard: requirements grill, test gates, adversary review |
| dsh-draw | Unified static-image generation routing for DeepSeek Harness. |
| dsh-fast | Read-only performance diagnostics for DeepSeek Harness. |
| dsh-fund-research | Deterministic research reports for Chinese public mutual funds |
| dsh-github | GitHub PR/issues integration for DSH, every write gated by approval |
| dsh-industry-research | Industry research orchestration that seals its deliverables through this plugin's ctx.researchReport.assemble |
| dsh-library | Local document knowledge base for DeepSeek Harness. |
| dsh-local-ai | Local-model (Ollama) integration for DeepSeek Harness. |
| dsh-lsp-actions | LSP diagnostics, formatting, completion, code actions and rename over language servers |
| dsh-mask | PII masking middleware: anonymize at the model boundary, restore at the display layer |
| dsh-memento | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool |
| dsh-observe | OpenTelemetry and Langfuse observability exporter for DeepSeek Harness. |
| dsh-output-styles | Claude Code outputStyles-equivalent runtime style switching |
| dsh-permission-rules | Claude Code-style declarative allow/deny/ask permission rules with audit |
| dsh-personal-directive | Personal directive injector with top-bar toggle (framework edition) |
| dsh-plugin-guide | Plugin-development knowledge base as an on-demand agent skill |
| dsh-reach | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console |
| dsh-research-report | Verifiable research-report engine: content-addressed evidence ledger and sealed versions |
| dsh-score | Multi-dimensional quality scoring for DeepSeek Harness plugins. |
| dsh-session-pin | Pin sessions in the Web sidebar with durable ordering |
| dsh-session-sync | Cross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store. |
| dsh-skill-pack-security | Security-audit skill pack: secret scan, dependency and supply-chain review |
| dsh-talk | Voice-first session loop for DeepSeek Harness: talk to it, hear it answer. |
| dsh-test-drive | Isolated install-and-smoke test drives for DeepSeek Harness plugins. |
| dsh-ticktick | TickTick/Dida365 task bridge: session-header panel + 11 tools |
| dsh-translate | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. |
| dsh-wechat | WeChat ↔ DSH bridge (Tencent iLink bot): text/image/file/voice, approvals in chat |
Install from the DSH Desktop Market
All PerryLink plugins are browsable in the built-in DSH Desktop Market: Market → Sources → add source → paste https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → select it. Installation still goes through the Market's npm-identity verification and your confirmation.
License
Apache License 2.0 © 2026 dsh-mcp-panel contributors
有意识地管理
安装与管理
前置条件与目标 Profile
目标: Web Profile
交付方式: Git Bundle — PerryLink/dsh-mcp-panel#8bee136c3135f2f77bff36567bd1d47e01ac2827。
验证、更新与移除
显示生命周期命令
dsh plugin --profile web list兼容性与访问范围
Declared DeepSeek Harness web plugin compatibility: >=0.1.2-rc.1 <0.2.0, including declared 0.1.2-rc.1 and 0.1.5-alpha.1。
风险事实
证据与编辑审查Manifest、Bundle patch、分发与新鲜度
不可变证据
审查状态与源码活动
请使用固定源版本进行审阅。将生成的 profile 补丁和工具试运行视为需要按常规流程审批并检查目标端点的操作。
AI 审查于 2026/9/9 UTC 14:22。GitHub 事实核对日期: 2026/9/9 UTC 14:22。
自当前证据基线以来,没有记录到重要源码变化。