dsh-plugin
DayuanJiang/next-ai-draw-iodsh 的 draw.io 绘图插件:通过 next-ai-drawio MCP 服务器作图,点回复里的链接在右侧栏打开实时预览,可以手动修改图,AI 的每次修改都是可以恢复的版本。需 Node.js 18+,首次使用由 npx 下载 MCP 服务器。
扫描 Claude Code / Codex / CodeBuddy 配置中的 MCP,通过 stdio 与 streamable-http initialize 握手检测真实连通性,支持启停开关与 /mcp 控制面板。
Windows MCP Hub for DeepSeek Harness — scans the MCP servers configured in your local coding agents
(Claude Code / Codex / CodeBuddy), probes real connectivity with an actual MCP initialize handshake
(both stdio and streamable-http transports), and lets you enable/disable each server from the UI.
~/.claude.json), Codex (~/.codex/config.toml)
and CodeBuddy (~/.codebuddy/mcp.json), with cross-agent deduplication (same MCP shown once, sources merged).initialize
handshake over HTTP (streamable-http, JSON and SSE responses, configurable headers passthrough).
Online (green) / offline (red) at a glance, with the concrete failure reason and latency.已停用(未启用,不检测连接)) and are never probed; re-enabling auto re-tests.~/.dsh/dsh-scan-mcp.json (survives restarts)./mcp popup panel — type /mcp in any session to open a modal control panel (not an AI reply).mcp_discovered_catalog (scan + connectivity, read-only).dsh web)fetch for streamable-http probes)Pick one of the following commands (replace <profile-name> with your DSH profile name, e.g. web):
# 1. From npm (recommended)
dsh plugin --profile <profile-name> add dsh-scan-mcp
# 2. From GitHub
dsh plugin --profile <profile-name> add https://github.com/chenbin-dev/dsh-scan-mcp.git
# 3. Local development
dsh plugin --profile <profile-name> add /path/to/dsh-scan-mcp
Then restart the profile (e.g. stop and run dsh web again). The plugin is a static bundle:
it survives DSH restarts and needs no per-session approval prompt.
/mcp → the MCP control panel pops up:
stdio / streamable-http) · endpoint, ● online / ● offline,
failure reason, Reconnect button (greyed out when disabled), sliding togglemcp_discovered_catalog tool for the full catalog.| Agent | Config file | Format |
|---|---|---|
| Claude Code | ~/.claude.json | JSON mcpServers object |
| Codex | ~/.codex/config.toml | TOML [mcp_servers.<name>] sections |
| CodeBuddy | ~/.codebuddy/mcp.json | JSON |
Missing/unreadable files show up in the panel's diagnostics counter and don't break the rest of the scan.
Want more sources? Edit the SOURCES array at the top of src/index.js (or open a PR / an issue).
command with args (plus env), sends initialize over stdin, waits for the
JSON-RPC response on stdout.POST initialize to url with
Content-Type: application/json and Accept: application/json, text/event-stream;
parses both plain JSON and SSE (data: line) responses; forwards the config's headers
(e.g. Authorization) verbatim.initialize): no MCP tools are ever invoked, no MCP process is left
running (each probe is terminated when done), and disabled servers are never probed at all.~/.dsh/dsh-scan-mcp.json stores only MCP ids and their toggle state — no credentials.A server stays offline? Click Reconnect on its row to see the exact reason:
ERR_MODULE_NOT_FOUND — usually a corrupted npm/npx cache. Run npm cache clean --force
(or delete the offending directory under %LocalAppData%\npm-cache\_npx\<hash>), then reconnect.npm ... 404 — the package name does not exist; fix it in your agent config (e.g. sequential-thinking
is @modelcontextprotocol/server-sequential-thinking).连接超时 (stdio) — the process did not answer initialize within 20s (common when network/proxy
is required).HTTP 状态 404/405(该地址可能不是 MCP 端点) — the url is not an MCP endpoint or the server
does not implement MCP.网络不可达 / 连接超时 (streamable-http) — cannot reach the endpoint; check network/proxy.未识别到 MCP initialize 响应 — non-JSON/SSE reply; the endpoint may need a headers auth field.dsh-scan-mcp/
├── package.json # plugin metadata (dsh.bundle.patch / dsh.client)
├── cordis.patch.yml # bundle patch — inserts the plugin row (id: wmcp)
└── src/
├── index.js # Host half: scan + handshake probes + HTTP RPC + tool + /mcp command
└── client.js # Client half (browser): settings page + popup panel + command trigger
export { name, inject, apply }) using Node built-ins only
(child_process, fs, fetch); peer dependency @deepseek-ai/dsh-tools is provided by the host.POST /__scan-mcp/scan|test|setEnabled.node --check src/index.js && node --check src/client.js (npm test).