证据快照复核于 2026-09-09GitHub 数据核对日期: 2026-08-21
证据已验证Plugin Bundle集成与连接Web Profile

dsh-mcp-panel

用于查看、配置和试运行 MCP 服务器的 DeepSeek Harness Web 管理控制台。

快速了解

它能做什么

用于查看、配置和试运行 MCP 服务器的 DeepSeek Harness Web 管理控制台。

本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。

使用场景
集成与连接配置
适配技术
deepseek-harnessMCPcordis
兼容性

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 管理面板

在“设置 → 插件 → MCP”中提供服务器状态、诊断、配置片段和工具试运行界面。

机制证据
/mcp 命令

列出已配置的 MCP 服务器,并支持工具列表、健康建议及通过官方工具管线的试运行调用。

机制证据

选择前先看

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

查看 commit 8bee136 对应的 README
维护者编写的上游内容原文于 2026/9/9README.md 获取,正文和仓库相对媒体固定到 commit 8bee136c3135,内容哈希为 05c73dd395e5。以下是未经 DSHub 翻译的上游原文,语言可能与当前页面不同;第三方托管的 badge 可能独立更新。
<div align="center">

dsh-mcp-panel

  • 1024 store channel: npm i -g dsh1024 once, then dsh1024 plugin --profile web add dsh-mcp-panel (counts toward the deepseek1024.com install ranking). Gitee

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.

License DSH plugin dsh-doctor Node CI Version npm version npm downloads

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.

  • /mcp command — one row per server: transport, target, tool count, connection status (from the upstream seam; unknown when unobserved), last error, reconnect count — model-readable, session-log reconstructable, five output languages.
  • /mcp <server> tools — model-visible mcp__* 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 disabled fragments → 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; catalogEntries appends/overrides entries, and catalogToConfigInput turns one into a one-click add.
  • Config import/exportexportConfigs() serializes the server rows to a versioned JSON document (a !!js row exports as null with a reason), and importPreview() parses an export back into per-server add patch fragments for review.
  • Tool trial console — server → mcp__* tool → JSON args → canonical JSON result + rendered content; capped by trialMaxResultChars; 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" — the prepare script builds with production dependencies only.
  • npm channel (published releases): dsh plugin --profile web add dsh-mcp-panel.
  • tarball channel: pnpm pack in this repo, then dsh plugin --profile web add ./dsh-mcp-panel-<version>.tgz.
  • uninstall: remove the mcp-panel row from cordis.patch.yml (the web surface hot-reloads it), delete the package from the profile's node_modules, and verify with dsh web --dump-config that no mcp-panel row 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 dshWorkshop manifest declares network:outbound and native-code:none.
  • Data: the panel is read-only; it writes only append-only cordis.patch.yml fragments (approval-gated, backup-first). URL query credentials, userinfo passwords, header values, bearer tokens, and JWTs are redacted before rendering; configured headers never 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 / with statusSource: '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 newest backupCount backups.
  • 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

检查兼容性证据

风险事实

网络

Declares outbound network access for MCP connectivity probes and server interactions.

证据
profile-write

Can append approval-gated MCP configuration patches and retain backups when profile writes are enabled.

证据
证据与编辑审查Manifest、Bundle patch、分发与新鲜度

不可变证据

审查状态与源码活动

AI 已审查

请使用固定源版本进行审阅。将生成的 profile 补丁和工具试运行视为需要按常规流程审批并检查目标端点的操作。

AI 审查于 2026/9/9 UTC 14:22GitHub 事实核对日期: 2026/9/9 UTC 14:22

自当前证据基线以来,没有记录到重要源码变化。

下一步

按 Plugin 安装流程操作

订阅重要变化: dsh-mcp-panel