Skip to content

dsh-cert-mcp

Verified

dsh-cert-mcp · v0.2.2 · Apache-2.0

Read-only MCP server exposing the dsh-plugin-certification registry: certification grades, snapshots and five-dimension evidence for DeepSeek Harness plugins.

Install

dsh plugin add dsh-cert-mcp

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Readme

dsh-cert-mcp

License DSH plugin Gitee Version npm version npm downloads dsh-cert-mcp MCP server dsh-cert-mcp MCP server

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 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.patchcordis.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 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 = '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 dsh-cert-mcp registers nothing on the DSH tool surface.

Remove the bundle with dsh plugin --profile web remove 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-certificationdata/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.
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: load, spill, compaction and cache hit rate
dsh-fund-research Chinese mutual-fund research with sealed, traceable source snapshots
dsh-github GitHub PR/issue/CI integration with every write approval-gated
dsh-industry-research Industry and company research pack: chain map, policy timeline, company cards
dsh-kit One-command starter pack that installs the core family
dsh-library Local document knowledge base with hybrid search and citation-aware injection
dsh-local-ai Local Ollama model discovery and task-based routing with cloud fallback
dsh-lsp-actions LSP diagnostics, formatting, completion, code actions, symbols and rename
dsh-mask PII masking at the model boundary with a host-side restore table
dsh-mcp-panel MCP management console: /mcp command, Settings tab and trial calls
dsh-memento Approval-gated cross-session memory protocol (ctx.memory + SQLite)
dsh-observe OpenTelemetry and Langfuse telemetry export from the session event stream
dsh-output-styles Runtime-switchable model output styles
dsh-permission-rules Declarative allow/deny/ask rules plus a process-level network policy
dsh-plugin-certification Community certification registry with repro-checkable grades and badges
dsh-plugin-doctor Zero-dependency static + sandbox smoke detector for DSH plugins
dsh-plugin-guide Plugin-dev knowledge base, agent skill and the dsh-plugin-dev CLI toolchain
dsh-plugin-kit Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins
dsh-plugin-portal Zero-dependency static portal rendering the whole plugin family as one page
dsh-plugin-upgrade-015 Merged 0.1.3-alpha.10.1.5-rc.1 upgrade corridor card plus a zero-dependency seam scanner
dsh-reach Multi-channel approval/question bridge: WeChat, Telegram, Feishu + a session console
dsh-research-report Verifiable research reports: evidence ledger, manifest seal, per-claim verdicts
dsh-score Multi-dimensional plugin quality scoring with an evidence-backed leaderboard
dsh-session-pin Pin sessions and workspaces in the Web sidebar with per-pin colors
dsh-session-sync Git-backed cross-device session synchronization with keep-both merges
dsh-skill-pack-security Security-audit skill pack plus the plugin_vet supply-chain gate
dsh-talk Voice-first session loop: speech-to-text input and text-to-speech replies
dsh-team-rooms Cross-session team rooms: shared message bus, task board and timeline
dsh-test-drive Isolated install-and-smoke test drives with a pass/fail matrix
dsh-ticktick TickTick/Dida365 task bridge: session-header panel plus eleven agent tools
dsh-translate Vendor parameter translation and deterministic JSON repair
dsh-wechat WeChat ↔ DSH bridge (Tencent iLink bot) developed with pan17, who hosts the repo
dsh-personal-directive Personal directive injector with a top-bar toggle (fork of liucai2026/dsh-personal-directive)

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.