# dsh-cert-mcp > ЁЯзК **2026-10-31 рд╕реЗ рдлрд╝реНрд░реАрдЬрд╝ред рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрднред** рдХреЛрдИ рдирдИ рдкреНрд░рдорд╛рдгрди рд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ; рд░рдЬрд┐рд╕реНрдЯреНрд░реА `dsh-plugin-certification` рдореЗрдВ рд░рд╣рддреА рд╣реИред ## рд░рдЦрд░рдЦрд╛рд╡ рд╕реНрдерд┐рддрд┐: ЁЯзК рдлрд╝реНрд░реАрдЬрд╝ 2026-10-31 рд╕реЗ рдлрд╝реНрд░реАрдЬрд╝ред рдпрд╣ read-only MCP endpoint рд╕рдВрджрд░реНрдн рдПрдХреАрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд░рд╣рддрд╛ рд╣реИ; рдкреНрд░рдорд╛рдгрди рдбреЗрдЯрд╛ `dsh-plugin-certification` рдХрд╛ рд╣реИред [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) [![DSH plugin](https://img.shields.io/badge/dsh--plugin-тЬЕ-green)](https://github.com/topics/dsh-plugin) [![DSH Market](https://raw.githubusercontent.com/2BingLing/dsh-market/master/assets/readme/badge-listed-en.svg)](https://dsh.market/) [![Gitee](https://img.shields.io/badge/Gitee-mirror-c71d23?logo=gitee)](https://gitee.com/perrylink/dsh-cert-mcp) [![Version](https://img.shields.io/github/v/tag/PerryLink/dsh-cert-mcp?label=version)](https://github.com/PerryLink/dsh-cert-mcp/releases) [![npm version](https://img.shields.io/npm/v/dsh-cert-mcp)](https://www.npmjs.com/package/dsh-cert-mcp) [![npm downloads](https://img.shields.io/npm/dm/dsh-cert-mcp)](https://www.npmjs.com/package/dsh-cert-mcp) [![dshfind](https://dshfind.com/api/badge/PerryLink/dsh-cert-mcp?metric=downloads&lang=hi)](https://dshfind.com/hi/plugins/PerryLink/dsh-cert-mcp?ref=badge) [![dsh-cert-mcp MCP server](https://glama.ai/mcp/servers/PerryLink/dsh-cert-mcp/badges/score.svg)](https://glama.ai/mcp/servers/PerryLink/dsh-cert-mcp) [![dsh-cert-mcp MCP server](https://glama.ai/mcp/servers/PerryLink/dsh-cert-mcp/badges/card.svg)](https://glama.ai/mcp/servers/PerryLink/dsh-cert-mcp) [English](README.md) ┬╖ [чоАф╜Уф╕нцЦЗ](README-zh.md) ┬╖ [Espa├▒ol](README-es.md) ┬╖ [Portugu├кs](README-pt.md) ┬╖ [рд╣рд┐рдиреНрджреА](README-hi.md) ```sh dsh plugin --profile add dsh-cert-mcp ``` рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп [MCP](https://modelcontextprotocol.io) рд╕рд░реНрд╡рд░, рдЬреЛ [dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification) рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ: DeepSeek Harness (DSH) рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдкреНрд░рдорд╛рдгрди рдЧреНрд░реЗрдб, рд╕реНрдиреИрдкрд╢реЙрдЯ рддрд┐рдерд┐рдпрд╛рдБ рдФрд░ рдкрд╛рдБрдЪ-рдЖрдпрд╛рдореА рд╕рд╛рдХреНрд╖реНрдпред рд╢реВрдиреНрдп рд░рдирдЯрд╛рдЗрдо рдирд┐рд░реНрднрд░рддрд╛рдПрдБ, stdio рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯред ## рдЗрдВрд╕реНрдЯреЙрд▓ ```sh dsh plugin --profile web add github:PerryLink/dsh-cert-mcp ``` ```sh git clone https://github.com/PerryLink/dsh-cert-mcp cd dsh-cert-mcp node src/index.js # stdio рд╕рд░реНрд╡рд░ ``` рдкреНрд░рдХрд╛рд╢рд┐рдд npm рдкреИрдХреЗрдЬ рд╕реЗ рд╕реАрдзреЗ рднреА рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: `npx dsh-cert-mcp`ред ### MCP рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ Claude Code: ```sh claude mcp add dsh-cert -- node /src/index.js ``` Claude Desktop (`claude_desktop_config.json`): ```json { "mcpServers": { "dsh-cert": { "command": "node", "args": ["/src/index.js"] } } } ``` DSH: рдЗрд╕реЗ [dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel) рдХреЗ рдЬрд╝рд░рд┐рдпреЗ stdio рд╕рд░реНрд╡рд░ рдХреА рддрд░рд╣ рдЬреЛрдбрд╝реЗрдВ, рдпрд╛ рдХреЛрдИ рднреА `stdio`-рд╕рдорд░реНрдерд┐рдд MCP рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВред ### DSH рдмрдВрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдпрд╣ рдкреИрдХреЗрдЬ `dsh.bundle.patch` тЖТ `cordis.patch.yml` рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ DeepSeek Harness рдмрдВрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрддрд╛ рд╣реИ: ```sh # git рдЪреИрдирд▓ (рдирд╡реАрдирддрдо main) dsh plugin --profile web add github:PerryLink/dsh-cert-mcp # npm рдЪреИрдирд▓ (рдкреНрд░рдХрд╛рд╢рд┐рдд рд░рд┐рд▓реАрдЬрд╝) dsh plugin --profile web add dsh-cert-mcp ``` рдЬреЛрдбрд╝реА рдЧрдИ рдкрдВрдХреНрддрд┐ рдкреИрдХреЗрдЬ рдХреЛ рдорд╛рдирдХ Cordis рдкреНрд▓рдЧрдЗрди рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рд╕реЗ рд▓реЛрдб рдХрд░рддреА рд╣реИ: host рдЖрдзрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп ESM рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ `name`, `inject` рдФрд░ `apply(ctx)` рдХреЛ рдирд╛рдорд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ UI рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП `dsh.client` рдШреЛрд╖рдгрд╛ рднреА рдирд╣реАрдВ рд╣реИред ```js // рдмрдВрдбрд▓ рдкреНрд░рд╡реЗрд╢ (host рдЖрдзрд╛) тАФ рд╡рд╣реА рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдЬреЛ patch рдкрдВрдХреНрддрд┐ рд▓реЛрдб рдХрд░рддреА рд╣реИ export const name = 'dsh-cert-mcp' export const inject = ['tools'] // host рдЯреВрд▓ рд╕рддрд╣, рдЬреЛ dsh-tools рджреЗрддрд╛ рд╣реИ export function apply(ctx) { // рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рдорд╛рдгрди рд▓реБрдХрдЕрдк рд╕рддрд╣ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ // (get_certification / list_certified / certification_spec) } ``` **host рдЖрдзреЗ рдХреЛ `tools` рд╕реЗрд╡рд╛ рдЪрд╛рд╣рд┐рдП** (рдЬреЛ `@deepseek-ai/dsh-tools` рджреЗрддрд╛ рд╣реИ)ред рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЪреБрдкрдЪрд╛рдк рдЯреВрд▓реНрд╕ рдирд╣реАрдВ рдЦреЛрддреА: Cordis рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ `PENDING` рдореЗрдВ рд░реЛрдХ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреА рдкреНрд▓рдЧрдЗрди рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИред рдФрд░ рдХреБрдЫ рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ тАФ рди рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреБрдВрдЬрд┐рдпрд╛рдБ, рди рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓, рди рд▓реЛрдб рдХреЗ рд╕рдордп рдиреЗрдЯрд╡рд░реНрдХред **рджреЛ рдЖрдзреЗ, рдПрдХ рд╣реА рдбреЗрдЯрд╛ рдкрдеред** рдмрдВрдбрд▓ рдкрдВрдХреНрддрд┐ рдФрд░ stdio рд╕рд░реНрд╡рд░ рдПрдХ рд╣реА `handleRequest` рдХреЛрд░ рдХреЗ рджреЛ рдкреНрд░рд╡реЗрд╢ рд╣реИрдВред рд╕рд░реНрд╡рд░ рдЖрдзрд╛ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреЛрдИ рднреА MCP рдХреНрд▓рд╛рдЗрдВрдЯ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ (`node src/index.js`), рдФрд░ рд╡рд╣ **рдкреНрд▓рдЧрдЗрди рдкрде рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ**: рдпрд╣ рдмрдВрдбрд▓ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рд╡рд╣ рдХрднреА рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддрд╛, рдФрд░ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд╡рд╣ рдХрднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд `npx dsh-cert-mcp` DSH рдЯреВрд▓ рд╕рддрд╣ рдкрд░ рдХреБрдЫ рднреА рд░рдЬрд┐рд╕реНрдЯрд░ рдирд╣реАрдВ рдХрд░рддрд╛ред рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП: `dsh plugin --profile web remove dsh-cert-mcp` (рдпрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ patch рд╕реЗ рдкрдВрдХреНрддрд┐ рдорд┐рдЯрд╛ рджреЗрдВ)ред рдЕрд▓рдЧ рдЦрдбрд╝рд╛ stdio MCP рд╕рд░реНрд╡рд░ рдХрд┐рд╕реА рднреА MCP рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд░рд╣рддрд╛ рд╣реИред ## What is dsh-cert-mcp? рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп [MCP](https://modelcontextprotocol.io) рд╕рд░реНрд╡рд░, рдЬреЛ [dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification) рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ: DeepSeek Harness (DSH) рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдкреНрд░рдорд╛рдгрди рдЧреНрд░реЗрдб, рд╕реНрдиреИрдкрд╢реЙрдЯ рддрд┐рдерд┐рдпрд╛рдБ рдФрд░ рдкрд╛рдБрдЪ-рдЖрдпрд╛рдореА рд╕рд╛рдХреНрд╖реНрдпред рд╢реВрдиреНрдп рд░рдирдЯрд╛рдЗрдо рдирд┐рд░реНрднрд░рддрд╛рдПрдБ, stdio рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯред ![dsh-cert-mcp рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдЖрд░реЗрдЦ: рдЗрдВрд╕реНрдЯреЙрд▓ тЖТ рдкреИрдирд▓ рдЦреЛрд▓реЗрдВ тЖТ рдХрд╛рд░реНрдпред](docs/assets/dsh-cert-mcp-flow.svg) *рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣: рдЗрдВрд╕реНрдЯреЙрд▓ тЖТ рдкреИрдирд▓ рдЦреЛрд▓реЗрдВ тЖТ рдХрд╛рд░реНрдпред рдиреАрдЪреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрдорд╛рдВрдб рд╕рддрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред* *рд╡рд╣реА рд░рди, рдПрдирд┐рдореЗрдЯреЗрдбред* ## рдЯреВрд▓реНрд╕ | рдЯреВрд▓ | рдЗрдирдкреБрдЯ | рд▓реМрдЯрд╛рддрд╛ рд╣реИ | |---|---|---| | `get_certification` | `owner`, `repo` | рдкреВрд░рд╛ рдкреНрд░рдорд╛рдгрди рд░рд┐рдХреЙрд░реНрдб (рдЧреНрд░реЗрдб, рд╕реНрдиреИрдкрд╢реЙрдЯ, рдкрд╛рдБрдЪ рдЖрдпрд╛рдо, рд╡реАрдЯреЛ, рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ) рдпрд╛ ┬лрдХреЛрдИ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ┬╗ | | `list_certified` | тАФ | рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреА рд╣рд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐: рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА / рдЧреНрд░реЗрдб / рд╕реНрдиреИрдкрд╢реЙрдЯ | | `certification_spec` | тАФ | рд╕реНрдкреЗрдХ v1 рд╕рд╛рд░рд╛рдВрд╢: рдкрд╛рдБрдЪ рдЖрдпрд╛рдо, рдЧреНрд░реЗрдб рдкреИрдорд╛рдирд╛, рд╡реАрдЯреЛ рдирд┐рдпрдо | рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реНрдиреИрдкрд╢реЙрдЯ `data/attestations.json` рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ (рдкреНрд░рдорд╛рдгрди рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рд╕реЗ рд╕рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ) рдФрд░ рд╕рд░реНрд╡рд░ рдЙрд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдЕрдзрд┐рдХрддрдо рд╣рд░ рдкрд╛рдБрдЪ рдорд┐рдирдЯ рдореЗрдВ рд░реАрдлрд╝реНрд░реЗрд╢ рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ рд▓реЗрдЦрди рдирд╣реАрдВ, рдХреЛрдИ рд╕реАрдХреНрд░реЗрдЯ рдирд╣реАрдВ, рдХреЛрдИ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдирд╣реАрдВред ## рдпрд╣ рдХреНрдпреЛрдВ рдореМрдЬреВрдж рд╣реИ DeepSeek Harness рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рди рдкреНрд▓рдЧрдЗрди рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЪрд▓рд╛рддрд╛ рд╣реИ рдФрд░ рди рдмрд╛рд╣рд░реА PR рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ; рдЦреЛрдЬ GitHub рдХреЗ `dsh-plugin` рдЯреЙрдкрд┐рдХ рдФрд░ рд╕рдореБрджрд╛рдп рдХреА рд╕реВрдЪрд┐рдпреЛрдВ рд╕реЗ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рдкреНрд░рдорд╛рдгрди рдирд╣реАрдВ рдХрд░рддрд╛ред `dsh-plugin-certification` ┬лрдХреНрдпрд╛ рдореИрдВ рдпрд╣ рдкреНрд▓рдЧрдЗрди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ?┬╗ рдХреЛ рдкреБрдирд░реБрддреНрдкрд╛рджреНрдп рдкрд╛рдБрдЪ-рдЖрдпрд╛рдореА рдЬрд╛рдБрдЪ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ (рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ, рдмрд┐рд▓реНрдб рд╕реНрд╡рдЪреНрдЫрддрд╛, рд╕рдкреНрд▓рд╛рдИ-рдЪреЗрди Scorecard, рд░рд┐рд▓реАрдЬрд╝ рдкреНрд░реЛрд╡реЗрдиреЗрдВрд╕, рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реНрдореЛрдХ), рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдФрд░ README рдмреИрдЬ рдХреЗ рд╕рд╛рдеред рдпрд╣ MCP рд╕рд░реНрд╡рд░ рд╡рд╣реА рдбреЗрдЯрд╛ рд╣реИ, рдкрд░ рдПрдЬреЗрдВрдЯ-рдЙрдиреНрдореБрдЦ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде: рдПрдЬреЗрдВрдЯ рдХрд┐рд╕реА рдкреНрд▓рдЧрдЗрди рдХреА рд╕рд┐рдлрд╝рд╛рд░рд┐рд╢ рдпрд╛ рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕рдХрд╛ рдкреНрд░рдорд╛рдгрди рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИред ## рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд: [PerryLink/dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification) тАФ `data/attestations.json`, рд╕реНрдкреЗрдХ v1ред **рдпрд╣ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреНрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд╕рд░реНрд╡рд░ рдХрд╛ рдЫреЛрдЯрд╛ рдЙрддреНрддрд░ рдХреНрдпрд╛ рдмрддрд╛рддрд╛ рд╣реИред** рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдПрдХ **рдСрдкреНрдЯ-рдЗрди рдЙрдкрд╕рдореБрдЪреНрдЪрдп** рд╣реИ: рдХреЛрдИ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдЙрд╕рдореЗрдВ рддрднреА рдЖрддреА рд╣реИ рдЬрдм рдЙрд╕рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рд╣реЛ рдЪреБрдХрд╛ рд╣реЛ, рдЗрд╕рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдб рди рдорд┐рд▓рдирд╛ рдпрд╣ **рд╕рдмреВрдд рдирд╣реАрдВ** рдХрд┐ рд╡рд╣ рдкреНрд▓рдЧрдЗрди рдкреНрд░рдорд╛рдгрд┐рдд рдирд╣реАрдВ рд╣реИ, рдФрд░ `list_certified` рдХрд╛ рдХрдо рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓реМрдЯрд╛рдирд╛ рдпрд╣ рд╕рдмреВрдд рдирд╣реАрдВ рдХрд┐ рдмрд╣реБрдд рдХрдо рдкреНрд▓рдЧрдЗрдиреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рд╣реБрдЖред рдпрд╣ рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдХреЗ рд╕рдордп рд╕рд╛рде рднреЗрдЬреЗ рдЧрдП рд╕реНрдиреИрдкрд╢реЙрдЯ рдореЗрдВ **рдПрдХ** рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдереА (рдЧреНрд░реЗрдб A, рд╕реНрдиреИрдкрд╢реЙрдЯ 2026-09-07); рдПрдХ-рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╡рд╛рд▓реА рд╕реВрдЪреА рдХрд╛ рдХреЛрдИ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдЕрд░реНрде рдирд╣реАрдВ рд╣реЛрддрд╛ тАФ рдПрдХ рдЧреНрд░реЗрдб рдЙрд╕ рдПрдХ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд▓рдЧрдЗрдиреЛрдВ рдХреЗ рдмреАрдЪ рдХреНрд░рдо-рдпреЛрдЧреНрдп рддреБрд▓рдирд╛ рддрднреА рд╕рдВрднрд╡ рд╣реЛрддреА рд╣реИ рдЬрдм рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдмрд╣реБрдд рд╕реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реЛрдВред рд╣рд░ `list_certified` рдЙрддреНрддрд░ рдХреЗ рд╕рд╛рде рдПрдХ `coverage` рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрддрд╛ рд╣реИ рдЬреЛ рдпрд╣реА рдмрд╛рдд рдХрд╣рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдХреЗрд╡рд▓ рдЯреВрд▓ рдЖрдЙрдЯрдкреБрдЯ рдкрдврд╝рдиреЗ рд╡рд╛рд▓рд╛ рдПрдЬреЗрдВрдЯ рдЧрд┐рдирддреА рдХреЛ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдХрд╡рд░реЗрдЬ рд╕рдордЭ рди рд▓реЗред рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреА рддрд╛рд░реАрдЦрд╝ **рдкреНрд░рдорд╛рдгрди рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА** рдХрд╛ рддрдереНрдп рд╣реИ, рдЗрд╕ рд╕рд░реНрд╡рд░ рдХреА рддрд╛рдЬрд╝рдЧреА рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ: рдпрд╣ `dsh-plugin-certification` рд╕реЗ рдмрд╛рдЗрдЯ-рджрд░-рдмрд╛рдЗрдЯ рд╕рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╕рдордп-рд╕рд╛рд░рдгреА рддрдерд╛ рдЬрд╛рдБрдЪ рдЙрд╕реА рдХреА рд╣реИред ## рдЕрдиреБрдХреВрд▓рддрд╛ | рд╕рддрд╣ | рд╕реНрдерд┐рддрд┐ | |---|---| | Harness | DeepSeek Harness `dsh-v0.2.1-rc.2` (devDependencies and the declared `engines.dsh` range both admit that line; `typecheck` and the 5-test suite are green against `@deepseek-ai/dsh-system-prompt` / `@deepseek-ai/dsh-tools` 0.2.1-rc.2) | | Node | `^22.19.0 \|\| >=24.0.0` | | рдШреЛрд╖рд┐рдд host рд░реЗрдВрдЬ | `engines.dsh`: `>=0.2.1-0 <0.3.0`, рд╕рд╛рде рдореЗрдВ `dsh.manifestVersion: 1` | | peer | `@deepseek-ai/cordis` `^4.0.2`ред host рдЖрдзреЗ рдХреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ `tools` рд╕реЗрд╡рд╛ рднреА рдЪрд╛рд╣рд┐рдП; stdio рдЖрдзреЗ рдХреЛ Node рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред | ## рд╡рд┐рдХрд╛рд╕ ```sh pnpm install pnpm run typecheck # рдПрдХрдорд╛рддреНрд░ рдЯрд╛рдЗрдк рд░реВрд▓рд░: рдкреНрд░рдХрд╛рд╢рд┐рдд host рд╕рддрд╣ рдкрд░ checkJs pnpm test # JSON-RPC рд╕реНрдореЛрдХ + рдЕрд╕рд▓реА Cordis рд░рдирдЯрд╛рдЗрдо рд╕реВрдЯ pnpm pack # рдкреНрд░рдХрд╛рд╢рд┐рдд tarball ``` рд░рдирдЯрд╛рдЗрдо рд╕реВрдЯ **рдЕрд╕рд▓реА** `SystemPrompt`/`ToolRuntime` рд░рдЬрд┐рд╕реНрдЯреНрд░рд┐рдпрд╛рдБ рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреИрдХреЗрдЬ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдкрд░ рддреАрдиреЛрдВ рдкреНрд░рдорд╛рдгрди рдЯреВрд▓ `ctx.tools.schemas()` рдореЗрдВ рдЖ рдЬрд╛рддреЗ рд╣реИрдВ, fiber рдЫреЛрдбрд╝рдиреЗ рдкрд░ рд╣рдЯ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ `tools` рд╕реЗрд╡рд╛ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреНрд▓рдЧрдЗрди `PENDING` рд░рд╣рддрд╛ рд╣реИред рд╕реНрд╡реАрдХреГрддрд┐ рдХреЗ рд▓рд┐рдП `dsh --dump-config` рдЬрд╛рди-рдмреВрдЭрдХрд░ рдирд╣реАрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛: рд╡рд╣рд╛рдБ рдорд╛рдЙрдВрдЯ рд╣реБрдИ рдкрдВрдХреНрддрд┐ рдФрд░ рд▓рдВрдмрд┐рдд fiber рдПрдХ рдЬреИрд╕реЗ рджрд┐рдЦрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдЬрд╛рди-рдмреВрдЭрдХрд░ **рдХреЗрд╡рд▓ рдПрдХ** рдЯрд╛рдЗрдк рд░реВрд▓рд░ рд╣реИред `@deepseek-ai/*` рдЗрд╕ рд░реЗрдкреЛ рдХреЗ рдЕрдкрдиреЗ `node_modules` (рдкрд┐рди рдХреА рдЧрдИ devDependencies, рдпрд╛рдиреА рдкреНрд░рдХрд╛рд╢рд┐рдд рд▓рд╛рдЗрди) рд╕реЗ resolve рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкреИрдХреЗрдЬ рдХреЛрдИ DSH peer рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛, рдЗрд╕рд▓рд┐рдП рджреВрд╕рд░рд╛ `tsc` рдХреЙрдиреНрдлрд╝рд┐рдЧ рдЙрд╕реА рдЯрд╛рдЗрдк рдмреНрд░рд╣реНрдорд╛рдВрдб рдкрд░ рд╡рд╣реА рдХрдорд╛рдВрдб рд╣реЛрддрд╛ред `typecheck:ci` рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ no-op рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╣реИ (рдЙрд╕рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рддреНрд░ рдЦрд╛рд▓реА `paths: {}` рд╣реИ) рдФрд░ рдкреБрд░рд╛рдиреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рд░рдЦреА рдЧрдИ рд╣реИ, рджреВрд╕рд░реА рдЯрд╛рдЗрдк рд╕рддрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВред рд╕реНрд╡рддрдВрддреНрд░ рджреВрд╕рд░рд╛ рд╕рд╛рдХреНрд╖реНрдп рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд░рдирдЯрд╛рдЗрдо рдорд╛рдЙрдВрдЯ рдЧреЗрдЯ рд╣реИред ## PerryLink DSH Plugin Family рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ [PerryLink](https://github.com/PerryLink) рдХреЗ DeepSeek Harness рдкреНрд▓рдЧрдЗрди рдкрд░рд┐рд╡рд╛рд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдкреВрд░реА рд╕реВрдЪреА рдиреАрдЪреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░рдЦреА рдЧрдИ рд╣реИ рддрд╛рдХрд┐ рд╣рд░ README рдХреА рдкрд╣рд▓реА рд╕реНрдХреНрд░реАрди рдЫреЛрдЯреА рд░рд╣реЗ; рд╣рд░ рдкрдВрдХреНрддрд┐ рдФрд░ рдЙрд╕рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЦреЛрд▓реЗрдВред
рд╕рднреА рдкреНрд▓рдЧрдЗрди рдЦреЛрд▓реЗрдВ | рдкреНрд▓рдЧрдЗрди | рд╕реНрдерд┐рддрд┐ | |---|---| | **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | | | **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | | | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | | | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | | | **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | | | **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | | | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | | | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | | | **[dsh-click](https://github.com/PerryLink/dsh-click)** | | | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | | | **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | | | **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | | | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | | | **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | | | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | | | **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | | | **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | | | **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | | | **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | | | **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | | | **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | | | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | | | **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | | | **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | | | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | | | **[dsh-github](https://github.com/PerryLink/dsh-github)** | | | **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | | | **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | | | **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | | | **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | | | **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | | | **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | | | **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | | | **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | | | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | | | **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | | | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | | | **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | | | **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | | | **[dsh-library](https://github.com/PerryLink/dsh-library)** | | | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | | | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | | | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | | | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | | | **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | | | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | | | **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | | | **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | | | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | | | **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | | | **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | | | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | | | **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | | | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | | | **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | | | **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | | | **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | | | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | | | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | | | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | | | **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | | | **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | | | **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | | | **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | | | **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | | | **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | | | **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | | | **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | | | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | | | **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | | | **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | | | **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | | | **[dsh-score](https://github.com/PerryLink/dsh-score)** | | | **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | | | **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | | | **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | | | **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | | | **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | | | **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | | | **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | | | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | | | **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | | | **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | | | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | | | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | | | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | | | **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | | | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | ЁЯзК рдлрд╝реНрд░реЛрдЬрд╝рди тАФ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА README рджреЗрдЦреЗрдВ | | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | ЁЯзК рдлрд╝реНрд░реЛрдЬрд╝рди тАФ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА README рджреЗрдЦреЗрдВ | | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | ЁЯзК рдлрд╝реНрд░реЛрдЬрд╝рди тАФ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА README рджреЗрдЦреЗрдВ | | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | ЁЯзК рдлрд╝реНрд░реЛрдЬрд╝рди тАФ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА README рджреЗрдЦреЗрдВ | | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | ЁЯзК рдлрд╝реНрд░реЛрдЬрд╝рди тАФ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА README рджреЗрдЦреЗрдВ | | **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | ЁЯЪл рд╕реЗрд╡рд╛рдирд┐рд╡реГрддреНрдд тАФ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА README рджреЗрдЦреЗрдВ | | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | ЁЯЪл рд╕реЗрд╡рд╛рдирд┐рд╡реГрддреНрдд тАФ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА README рджреЗрдЦреЗрдВ | | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | ЁЯЪл рд╕реЗрд╡рд╛рдирд┐рд╡реГрддреНрдд тАФ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА README рджреЗрдЦреЗрдВ |
## рд▓рд╛рдЗрд╕реЗрдВрд╕ Apache-2.0. рд╕реВрдЪреА рдпрд╛ рдЧреНрд░реЗрдб рдПрдХ рд╕рд╛рдХреНрд╖реНрдп рд░рд┐рдХреЙрд░реНрдб рд╣реИ, рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ: рдкреНрд▓рдЧрдЗрди рдЖрдкрдХреЗ DSH рдкреНрд░реЛрд╕реЗрд╕ рдореЗрдВ рдЖрдкрдХреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рддреЗ рд╣реИрдВред ### рдЙрджрд╛рд╣рд░рдг рдпреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реИрдВ; рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗ рдмрд╛рдж рдПрдХ рдЪрд▓рд╛рдПрдБред #### рд╡рд┐рд╕реНрддреГрдд рдЙрджрд╛рд╣рд░рдг **рдХрдорд╛рдВрдб** ~~~sh get_certification ~~~ **рдЗрдирдкреБрдЯ** ~~~json { "owner": "PerryLink", "repo": "dsh-auto-review" } ~~~ **рдЖрдЙрдЯрдкреБрдЯ** ~~~text { "repo": "PerryLink/dsh-auto-review", "grade": "A", "snapshot": "2026-09-07", "dimensions": { "manifest": { "result": "pass" }, "buildHygiene": { "result": "pass" }, "supplyChain": { "result": "pass", "score": 5.4 }, "releaseIntegrity": { "result": "pass" }, "installSmoke": { "result": "ok" } }, "veto": null } ~~~ *рд╕реНрд░реЛрдд `plugins/dsh-cert-mcp/src/server.js:192-199; data in plugins/dsh-cert-mcp/data/attestations.json:1-30; smoke test at plugins/dsh-cert-mcp/test/smoke.mjs:29-39`* #### рд╡рд┐рдлрд▓рддрд╛ рд╢рд╛рдЦрд╛ **рдЗрдирдкреБрдЯ** ~~~text {"owner":"nobody","repo":"nothing"} ~~~ **рдЖрдЙрдЯрдкреБрдЯ** ~~~text No certification record for nobody/nothing in registry snapshot 2026-09-07. ~~~ *рд╕реНрд░реЛрдд `plugins/dsh-cert-mcp/src/server.js:191-199; plugins/dsh-cert-mcp/test/smoke.mjs:41-47; plugins/dsh-cert-mcp/data/attestations.json`* #### рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрджрд╛рд╣рд░рдг - `list_certified` - `certification_spec`