dsh-cert-mcp
English · 简体中文 · Español · Português · हिन्दी
Read-only MCP server that exposes the dsh-plugin-certification registry: certification grades, snapshot dates and five-dimension evidence for DeepSeek Harness (DSH) plugins. Zero runtime dependencies, stdio transport.
Tools
| Tool | Input | Returns |
|---|
get_certification | owner, repo | Full certification record (grade, snapshot, five dimensions, veto, notes) or "no record" |
list_certified | — | Every entry in the public registry: repo / grade / snapshot |
certification_spec | — | Spec v1 summary: five dimensions, grade scale, veto rule |
The embedded snapshot lives in data/certified.json (synced from the certification repo) and the server refreshes it from the public registry at most once per five minutes. No writes, no secrets, no code execution.
Install
git clone https://github.com/PerryLink/dsh-cert-mcp
cd dsh-cert-mcp
node src/index.js # stdio server
Run it directly from the published npm package: npx @perrylink/dsh-cert-mcp.
Register in an MCP client
Claude Code:
claude mcp add dsh-cert -- node <path-to-repo>/src/index.js
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"dsh-cert": {
"command": "node",
"args": ["<path-to-repo>/src/index.js"]
}
}
}
DSH: add it through dsh-mcp-panel as a stdio server, or any MCP client that supports stdio.
Install as a DSH bundle
The package declares dsh.bundle.patch → cordis.patch.yml, so it also installs as a DeepSeek Harness bundle:
# git channel (latest main)
dsh plugin --profile web add "github:PerryLink/dsh-cert-mcp#main"
# npm channel (published releases)
dsh plugin --profile web add @perrylink/dsh-cert-mcp
The inserted row loads the package through the standard Cordis plugin contract: the host half is a plain ESM module exporting name, inject and apply(ctx). This package ships no browser UI, so there is no dsh.client declaration.
// bundle entry (host half) — the contract the patch row loads
export const name = '@perrylink/dsh-cert-mcp'
export const inject = ['tools'] // the host tool surface, provided by dsh-tools
export function apply(ctx) {
// registers the read-only certification lookup surface
// (get_certification / list_certified / certification_spec)
}
The host half needs the tools service (shipped by @deepseek-ai/dsh-tools). A profile without it does not lose the tools silently: Cordis holds this row in PENDING until tools exists, which is visible in the profile's plugin list. Nothing else is required — no config keys, no credentials, and no network access at load time.
Two halves, one data path. The bundle row and the stdio server are separate entry points over the same handleRequest core. The server half is an independent process any MCP client can spawn (node src/index.js), and it is not part of the plugin path: installing this bundle never starts it, and removing the bundle never touches it. Conversely npx @perrylink/dsh-cert-mcp registers nothing on the DSH tool surface.
Remove the bundle with dsh plugin --profile web remove @perrylink/dsh-cert-mcp (or delete the row from the profile patch). The standalone stdio MCP server above keeps working for any MCP client.
Why this exists
The official DeepSeek Harness repository does not run a plugin registry and does not accept external PRs; discovery happens through the dsh-plugin GitHub topic and community lists, none of which certify anything. dsh-plugin-certification turns "can I install this plugin" into a reproducible five-dimension check (manifest, build hygiene, supply-chain Scorecard, release provenance, sandboxed install smoke test) with a public registry and README badges. This MCP server is the same data with an agent-facing interface: agents can look up a plugin's certification before recommending or installing it.
Registry
Data source: PerryLink/dsh-plugin-certification — data/certified.json, spec v1.
Compatibility
- Node
^22.19.0 || >=24.0.0.
- DSH
>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 (declared in engines.dsh, with dsh.manifestVersion: 1).
- Peer:
@deepseek-ai/cordis ^4.0.2. The host half additionally needs the tools service at runtime; the stdio half needs nothing but Node.
Development
pnpm install
pnpm run typecheck # the one type ruler: checkJs over the published host face
pnpm test # JSON-RPC smoke + the real-Cordis runtime suite
pnpm pack # the published tarball
The runtime suite mounts the REAL SystemPrompt/ToolRuntime registries and asserts that mounting this package puts all three certification tools into ctx.tools.schemas(), that disposing the fiber removes them again, and that a context without the tools service parks the plugin in PENDING. dsh --dump-config is deliberately not used as acceptance: a mounted row and a pending fiber look the same there.
There is deliberately one type ruler. @deepseek-ai/* resolves through this repo's own node_modules (the pinned devDependencies — the published line) and the package declares no DSH peer, so a second tsc configuration would be the same command over the same type universe. The typecheck:ci script is kept as the historical no-op duplicate (its only extra key is an empty paths: {}) for compatibility with existing references, not as a second face. The independent second piece of evidence is the runtime mount gate above.
PerryLink DSH Plugin Family
This project is one of the 40 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-autotier | Automatic strong/cheap model-tier routing with deterministic risk guards and a /tier command |
| 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-catalog | DSH Desktop Market standard catalog source for the PerryLink family |
| dsh-checkpoint-rewind | Unified session + workspace + config checkpoints with one-shot /rewind |
| dsh-claude-move | Migrate Claude Code, Codex, OpenCode and Hermes sessions, memories and skills 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 | Deterministic dataset profiling, cleaning and citation verification |
| dsh-defend | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. |
License
Apache-2.0. A listing or grade is an evidence record, not a security guarantee: plugins run inside your DSH process with your permissions.