[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"consumer-news-detail-868":3,"consumer-news-interaction-868":41,"consumer-news-related-868":44},{"detail":4,"item":36},{"card":5,"schemaVersion":23,"fields":24,"content":30},{"id":6,"kind":7,"targetType":8,"targetId":9,"subtype":7,"typeLabel":10,"title":11,"subtitle":12,"summary":13,"coverUrl":14,"badgeText":15,"href":16,"sourceName":12,"meta":17,"metrics":20,"tags":21,"resolved":22},"NEWS_ARTICLE:868","news","NEWS_ARTICLE",868,"资讯","DeepSeekHarness-MCP-Manager 一款DSH超好用的MCP管理跟Skills管理插件","博客园","链接：https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager 设置 → MCP 管理&#160;管理项目级与全局&#160;cordis.patch.yml&#160;中的&#160;@deepseek-ai\u002Fdsh-mcp-client&#160;","https:\u002F\u002Fcamo.githubusercontent.com\u002F5d48b15e4e45c30746d4410bd5dd51552b20ed0294e6703d220931a8377c3ff8\u002F68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f40787878797a2f6473682d6d63702d6d616e616765723f6c6f676f3d6e706d26636f6c6f723d636233383337","","\u002Fnews\u002F868",[18,19],"2026","人工智能",{},[19],true,"consumer-content-detail-v1",{"sourceName":12,"authorName":25,"categoryName":19,"summary":13,"description":13,"publishTime":26,"updateTime":27,"sourceUrl":28,"language":29},"xxxyz","2026-09-01T15:05","2026-09-02T20:37:52","https:\u002F\u002Fwww.cnblogs.com\u002Fxxxyz\u002Fp\u002F22790973","中文",{"format":31,"policy":32,"normalized":22,"html":33,"text":34,"wordCount":35,"hasBody":22},"HTML","NEWS_CONTENT_V1","\u003Cdiv>\n 链接：\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003Cdiv>\n 设置 → MCP 管理&#xa0;管理项目级与全局&#xa0;\u003Ccode>cordis.patch.yml\u003C\u002Fcode>&#xa0;中的&#xa0;\u003Ccode>@deepseek-ai\u002Fdsh-mcp-client\u003C\u002Fcode>&#xa0;行，\u003Cbr>\n 设置 → Skills 管理&#xa0;浏览并停用各来源的技能——无需再手改配置文件，所有修改即改即生效（HMR 热应用），重启、升级后依然存在。\n\u003C\u002Fdiv>\n\u003Cdiv>\n \u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@xxxyz\u002Fdsh-mcp-manager\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cimg src=\"https:\u002F\u002Fi1.wp.com\u002Fcamo.githubusercontent.com\u002F5d48b15e4e45c30746d4410bd5dd51552b20ed0294e6703d220931a8377c3ff8\u002F68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f40787878797a2f6473682d6d63702d6d616e616765723f6c6f676f3d6e706d26636f6c6f723d636233383337?w=720&amp;quality=65&amp;strip=all\" alt=\"npm version\">\u003C\u002Fa>&#xa0;\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager\u002Fblob\u002Fmain\u002FLICENSE\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cimg src=\"https:\u002F\u002Fi1.wp.com\u002Fcamo.githubusercontent.com\u002F42916ed478750934505fa8d4f8c2721363d07ae20d717353604205367e6662d9\u002F68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f787878797a2f446565705365656b4861726e6573732d4d43502d4d616e616765723f636f6c6f723d626c7565?w=720&amp;quality=65&amp;strip=all\" alt=\"License\">\u003C\u002Fa>&#xa0;\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager\u002Fblob\u002Fmain\u002Fpackage.json\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cimg src=\"https:\u002F\u002Fi1.wp.com\u002Fcamo.githubusercontent.com\u002Ff3d181f98a3afc73752f9588d1f830b0af189ae7a88753e11c3844cfbfaf5806\u002F68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6e6f64652d25334525334431382d3333393933333f6c6f676f3d6e6f64652e6a73?w=720&amp;quality=65&amp;strip=all\" alt=\"Node\">\u003C\u002Fa>&#xa0;\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cimg src=\"https:\u002F\u002Fi1.wp.com\u002Fcamo.githubusercontent.com\u002F542831dc55b852951440b63b6c1e5490d9d2e5354c0ae2a94421aa9ea37e7a6c\u002F68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4769744875622d787878797a253246446565705365656b4861726e6573732d2d4d43502d2d4d616e616765722d3138313731373f6c6f676f3d676974687562?w=720&amp;quality=65&amp;strip=all\" alt=\"GitHub\">\u003C\u002Fa>&#xa0;\u003Ca href=\"https:\u002F\u002Fdsh.market\u002F\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cimg src=\"https:\u002F\u002Fi1.wp.com\u002Fcamo.githubusercontent.com\u002Fcc6ce1022b2cdc3d0b35cfd20b33bf98d7e9e1f45a6bff959170d24fe8c9ec69\u002F68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6473682e6d61726b65742d2545322539432539332d336662393530?w=720&amp;quality=65&amp;strip=all\" alt=\"dsh.market\">\u003C\u002Fa>&#xa0;\u003Ca href=\"https:\u002F\u002Fawesome-dsh-plugin.com\u002F\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cimg src=\"https:\u002F\u002Fi1.wp.com\u002Fcamo.githubusercontent.com\u002F9ffea5b687743aa9ff9ec6d9c6168a0bb8959bccd21c569d34f5e58e3d812056\u002F68747470733a2f2f696d672e736869656c64732e696f2f62616467652f617765736f6d652d2d6473682d2d706c7567696e2d2545352542372542322545362539342542362545352542442539352d336662393530?w=720&amp;quality=65&amp;strip=all\" alt=\"awesome-dsh-plugin\">\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv>\n 🛒 已收录于&#xa0;\u003Ca href=\"https:\u002F\u002Fdsh.market\u002F\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">dsh.market\u003C\u002Fa>&#xa0;与&#xa0;\u003Ca href=\"https:\u002F\u002Fawesome-dsh-plugin.com\u002F\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">awesome-dsh-plugin.com\u003C\u002Fa>&#xa0;官方插件列表（\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fawesome-dsh-plugin\u002Fawesome-dsh-plugin\u002Fpull\u002F2078\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">PR #2078\u003C\u002Fa>&#xa0;已合并）\n\u003C\u002Fdiv>\n\u003Cdiv>\n 🌏&#xa0;\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager\u002Fblob\u002Fmain\u002FREADME.md\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">中文\u003C\u002Fa>&#xa0;·&#xa0;\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager\u002Fblob\u002Fmain\u002FREADME_EN.md\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">英文\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager\u002Fblob\u002Fmain\u002Fshow.png\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cimg src=\"https:\u002F\u002Fi1.wp.com\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager\u002Fraw\u002Fmain\u002Fshow.png?w=720&amp;quality=65&amp;strip=all\" alt=\"dsh-mcp-manager 设置 → MCP 管理 页面图例\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Cdiv>\n \u003Ch2>✨ 功能一览\u003C\u002Fh2>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager#-%E5%8A%9F%E8%83%BD%E4%B8%80%E8%A7%88\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cul>\n \u003Cli>📋 服务器列表：列出所有已配置的 MCP 服务器（\u003Ccode>@deepseek-ai\u002Fdsh-mcp-client\u003C\u002Fcode>&#xa0;实例）——\u003Ccode>serverName\u003C\u002Fcode>、传输方式（\u003Ccode>stdio\u003C\u002Fcode>&#xa0;\u002F&#xa0;\u003Ccode>streamable-http\u003C\u002Fcode>）、URL \u002F 命令、启用状态、loader 实时加载阶段、已注册工具数\u003C\u002Fli>\n \u003Cli>➕ 新增 \u002F ➖ 删除：表单添加 MCP 服务器（支持 env \u002F headers \u002F args），带格式与重名校验；一键删除\u003C\u002Fli>\n \u003Cli>🔌 启用 \u002F 停用：随时切换，工具随之热连接 \u002F 热断开\u003C\u002Fli>\n \u003Cli>🔄 重启：disable + re-enable，自动重连并重新同步工具\u003C\u002Fli>\n \u003Cli>💾 持久化：写入项目级（\u003Ccode>profiles\u002F&lt;profile&gt;\u002Fcordis.patch.yml\u003C\u002Fcode>）或全局（\u003Ccode>~\u002F.dsh\u002Fcordis.patch.yml\u003C\u002Fcode>），重启后保留；页面底部显示文件路径\u003C\u002Fli>\n \u003Cli>🩺 健康检查：每台服务器实时工具数与 loader 阶段，异常一目了然\u003C\u002Fli>\n \u003Cli>📦 备份 \u002F 恢复：JSON 导出 \u002F 导入，合并新增、已存在自动跳过\u003C\u002Fli>\n \u003Cli>🤖 模型工具：宿主注册 4 个&#xa0;\u003Ccode>mcp_manager_*\u003C\u002Fcode>&#xa0;工具，模型可直接查询与操作 MCP 服务\u003C\u002Fli>\n \u003Cli>🧠 技能管理：设置 → Skills 管理&#xa0;页列出 DSH 全部技能，按来源分组（项目级 \u002F 运行时 \u002F 自定义 \u002F 用户级 \u002F 内置 \u002F 插件自带）并支持搜索与按 provider 折叠；一键停用 \u002F 启用任意技能（rank-0 override provider，任何来源层级都可禁），状态持久化到&#xa0;\u003Ccode>dsh-skill-manager.json\u003C\u002Fcode>，HMR 即时生效\u003C\u002Fli>\n \u003Cli>🌐 HTTP API：\u003Ccode>POST \u002Fdsh-mcp-manager\u002Fapi\u003C\u002Fcode>（JSON&#xa0;\u003Ccode>{op, args}\u003C\u002Fcode>&#xa0;→&#xa0;\u003Ccode>{ok, ...}\u003C\u002Fcode>），供客户端与脚本调用。带跨站（CSRF）防护：仅接受 POST、必须携带&#xa0;\u003Ccode>x-dsh-plugin: dsh-mcp-manager\u003C\u002Fcode>&#xa0;请求头、校验同源 Origin（curl 等本地脚本无需 Origin）\u003C\u002Fli>\n \u003Cli>📦 一键安装：\u003Ccode>dsh plugin --profile web add\u003C\u002Fcode>&#xa0;一条命令装包 + 自动挂载（Windows \u002F macOS \u002F Linux）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cdiv>\n \u003Ch2>🚀 安装\u003C\u002Fh2>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager#-%E5%AE%89%E8%A3%85\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cp>前置：已装好 DSH（\u003Ccode>dsh web\u003C\u002Fcode>&#xa0;能正常运行），Node.js ≥ 18、pnpm ≥ 9。\u003C\u002Fp>\n\u003Cdiv>\n \u003Ch3>方式一 · dsh 命令安装（推荐）\u003C\u002Fh3>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager#%E6%96%B9%E5%BC%8F%E4%B8%80--dsh-%E5%91%BD%E4%BB%A4%E5%AE%89%E8%A3%85%E6%8E%A8%E8%8D%90\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cp>一条命令装包 +&#xa0;自动挂载（\u003Ccode>dsh.bundle.patch\u003C\u002Fcode>&#xa0;机制，无需手动改任何配置文件）：\u003C\u002Fp>\n\u003Cdiv>\n \u003Cpre>\u003Ccode>dsh plugin --profile web add @xxxyz\u002Fdsh-mcp-manager@latest\u003C\u002Fcode>\u003C\u002Fpre>\n \n\u003C\u002Fdiv>\n\u003Cp>装完硬刷新浏览器（Cmd\u002FCtrl+Shift+R）即可看到&#xa0;设置 → MCP 管理（DSH 对 client 改动热加载，无需重启；仅 host 半更新时需要重启）。\u003C\u002Fp>\n\u003Cdiv>\n \u003Ch3>方式二 · 让 DSH 自己装\u003C\u002Fh3>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager#%E6%96%B9%E5%BC%8F%E4%BA%8C--%E8%AE%A9-dsh-%E8%87%AA%E5%B7%B1%E8%A3%85\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cp>把下面这段提示词发给任意一个 DSH 会话：\u003C\u002Fp>\n\u003Cdiv>\n \u003Cpre>\u003Ccode>帮我安装 dsh-mcp-manager 插件（DSH MCP 服务管理器），步骤：\n1. 执行 dsh plugin --profile web add @xxxyz\u002Fdsh-mcp-manager@latest\n2. 完成后提醒我硬刷新浏览器（Cmd\u002FCtrl+Shift+R）\n遇到报错先查 https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager README 的常见问题表。\u003C\u002Fcode>\u003C\u002Fpre>\n \n\u003C\u002Fdiv>\n\u003Cp>更新\u003C\u002Fp>\n\u003Cdiv>\n \u003Cpre>\u003Ccode>dsh plugin --profile web add @xxxyz\u002Fdsh-mcp-manager@latest\u003C\u002Fcode>\u003C\u002Fpre>\n \n\u003C\u002Fdiv>\n\u003Cp>也可把&#xa0;\u003Ccode>~\u002F.dsh\u002Fprofiles\u002Fweb\u002Fpackage.json\u003C\u002Fcode>&#xa0;里的版本号改高后&#xa0;\u003Ccode>pnpm install\u003C\u002Fcode>。改完硬刷新浏览器（Cmd\u002FCtrl+Shift+R）即可（client 改动无需重启 DSH）。\u003C\u002Fp>\n\u003Cp>常见问题\u003C\u002Fp>\n\u003Ctable>\n \u003Cthead>\n  \u003Ctr>\n   \u003Cth>现象\u003C\u002Fth>\n   \u003Cth>原因与解决\u003C\u002Fth>\n  \u003C\u002Ftr>\n \u003C\u002Fthead>\n \u003Ctbody>\n  \u003Ctr>\n   \u003Ctd>装完设置里没有「MCP 管理」\u003C\u002Ftd>\n   \u003Ctd>硬刷新（Cmd\u002FCtrl+Shift+R）；仍没有就重启 DSH 一次。\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>页面出现两个 MCP 页签 \u002F 工具重复\u003C\u002Ftd>\n   \u003Ctd>双挂载：同时存在旧的 loader 行与新的 bundle 条目。删掉&#xa0;\u003Ccode>cordis.patch.yml\u003C\u002Fcode>&#xa0;里的旧 loader 行，或&#xa0;\u003Ccode>dsh.profile.bundles\u003C\u002Fcode>&#xa0;里的条目，重启 DSH。\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>之前用旧方式装过，现在想升级\u003C\u002Ftd>\n   \u003Ctd>新版 bundle 自带防双挂载 guard，直接&#xa0;\u003Ccode>dsh plugin --profile web add @xxxyz\u002Fdsh-mcp-manager@latest\u003C\u002Fcode>&#xa0;不会重复挂载。要切到新代码：删掉&#xa0;\u003Ccode>~\u002F.dsh\u002Fprofiles\u002Fweb\u002Fcordis.patch.yml\u003C\u002Fcode>&#xa0;里的&#xa0;\u003Ccode>- id: mcp-manager\u003C\u002Fcode>&#xa0;行，再删&#xa0;\u003Ccode>local-packages\u002Fdsh-mcp-manager\u003C\u002Fcode>&#xa0;与&#xa0;\u003Ccode>profiles\u002Fnode_modules\u002Fdsh-mcp-manager\u003C\u002Fcode>&#xa0;两个副本，重启 DSH。\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>提示&#xa0;\u003Ccode>dsh: command not found\u003C\u002Fcode>\u003C\u002Ftd>\n   \u003Ctd>先安装 DSH；或直接用&#xa0;\u003Ccode>npx -y --package @deepseek-ai\u002Fdsh dsh plugin --profile web add @xxxyz\u002Fdsh-mcp-manager@latest\u003C\u002Fcode>。\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>\u003Ccode>npm view\u003C\u002Fcode>&#xa0;报 404\u003C\u002Ftd>\n   \u003Ctd>国内镜像（npmmirror）同步有延迟：加&#xa0;\u003Ccode>--registry=https:\u002F\u002Fregistry.npmjs.org\u003C\u002Fcode>&#xa0;或稍等再试。\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>修改配置后未生效\u003C\u002Ftd>\n   \u003Ctd>所有修改走 HMR 热应用，等 1–2 秒自动刷新；页面会自动轮询。\u003C\u002Ftd>\n  \u003C\u002Ftr>\n \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>卸载\u003C\u002Fp>\n\u003Cdiv>\n \u003Cpre>\u003Ccode>dsh plugin --profile web remove @xxxyz\u002Fdsh-mcp-manager\u003C\u002Fcode>\u003C\u002Fpre>\n \n\u003C\u002Fdiv>\n\u003Cp>然后重启 DSH。\u003C\u002Fp>\n\u003Cdiv>\n \u003Ch2>📖 使用说明\u003C\u002Fh2>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager#-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cp>打开&#xa0;设置 → MCP 管理：\u003C\u002Fp>\n\u003Cul>\n \u003Cli>添加服务器：填写&#xa0;\u003Ccode>serverName\u003C\u002Fcode>（唯一，1–32 位&#xa0;\u003Ccode>[A-Za-z0-9_-]\u003C\u002Fcode>）、传输方式及对应字段（\u003Ccode>streamable-http\u003C\u002Fcode>&#xa0;填 URL \u002F headers；\u003Ccode>stdio\u003C\u002Fcode>&#xa0;填 command \u002F args \u002F env），选择级别（项目级 \u002F 全局）。面板做格式与重名校验。\u003C\u002Fli>\n \u003Cli>每张卡片显示实时状态、连接目标与工具数；可&#xa0;启用 \u002F 停用、重启、编辑、删除。\u003C\u002Fli>\n \u003Cli>备份 \u002F 恢复：一键导出 JSON，或粘贴 JSON 导入（合并新增，已存在自动跳过）。\u003C\u002Fli>\n \u003Cli>页面底部显示正在编辑的补丁文件路径。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>打开&#xa0;设置 → Skills 管理：\u003C\u002Fp>\n\u003Cul>\n \u003Cli>浏览 \u002F 搜索：列出 DSH 全部技能，按来源分组（项目级 \u002F 运行时 \u002F 自定义 \u002F 用户级 \u002F 内置 \u002F 插件自带），组内按 provider 折叠；搜索框实时过滤。\u003Ccode>~\u002F.dsh\u002Fskills\u002F\u003C\u002Fcode>&#xa0;下的用户级技能（2.2.0+）同样可见——即使官方 scoped 层不向无 scope 查询暴露它们。\u003C\u002Fli>\n \u003Cli>启用 \u002F 停用：一键切换任意技能的启用状态——通过 rank-0 override provider（\u003Ccode>dsh-mcp-manager-override\u003C\u002Fcode>）实现，任何来源层级（含项目级与用户级文件系统技能）都能禁用。\u003C\u002Fli>\n \u003Cli>持久化：停用状态写入&#xa0;\u003Ccode>&lt;profileDir&gt;\u002Fdsh-skill-manager.json\u003C\u002Fcode>，重启后保留；改动经 HMR 即时生效。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cdiv>\n \u003Ch2>⚙️ 配置\u003C\u002Fh2>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager#%EF%B8%8F-%E9%85%8D%E7%BD%AE\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cp>插件自身在 loader 行中的配置：\u003C\u002Fp>\n\u003Ctable>\n \u003Cthead>\n  \u003Ctr>\n   \u003Cth>字段\u003C\u002Fth>\n   \u003Cth>说明\u003C\u002Fth>\n  \u003C\u002Ftr>\n \u003C\u002Fthead>\n \u003Ctbody>\n  \u003Ctr>\n   \u003Ctd>\u003Ccode>version\u003C\u002Fcode>\u003C\u002Ftd>\n   \u003Ctd>loader 行&#xa0;\u003Ccode>config.version\u003C\u002Fcode>，仅用于触发 HMR 重应用；官方通道安装下由 bundle 自动管理，无需手动修改。\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n   \u003Ctd>\u003Ccode>token\u003C\u002Fcode>\u003C\u002Ftd>\n   \u003Ctd>可选访问令牌（写操作鉴权，纵深防御）。设置后写操作（增删改\u002F启停\u002F重启\u002F导入导出\u002F技能停用）须带&#xa0;\u003Ccode>x-dsh-token: &lt;token&gt;\u003C\u002Fcode>&#xa0;头；设置页提供令牌输入框（保存在浏览器 localStorage）。也可用环境变量&#xa0;\u003Ccode>DSH_MCP_MANAGER_TOKEN\u003C\u002Fcode>&#xa0;配置。默认关闭。\u003C\u002Ftd>\n  \u003C\u002Ftr>\n \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cblockquote>\n \u003Cp>为什么需要 token？&#xa0;插件的 CSRF 防护只拦\"跨站浏览器请求\"——它假设 DSH web 只监听本机（\u003Ccode>127.0.0.1\u003C\u002Fcode>）。一旦你通过端口转发、\u003Ccode>dsh-web-lan-access\u003C\u002Fcode>&#xa0;类插件或反向代理把 3080 端口暴露到局域网\u002F公网，任何能访问该端口的人都直接获得完整写权限：可以新增\u002F修改 MCP 服务器，而&#xa0;\u003Ccode>stdio\u003C\u002Fcode>&#xa0;服务的&#xa0;\u003Ccode>command\u003C\u002Fcode>&#xa0;字段可填任意可执行文件——等同于远程任意代码执行。token 就是为这种暴露场景加的最后一道闸：没有密钥就无法做任何写操作，即使端口被暴露也不能注入命令。本地单机使用不需要配置。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>loader 行必须为&#xa0;\u003Ccode>insert\u003C\u002Fcode>&#xa0;块形式（DSH patch 方言中普通&#xa0;\u003Ccode>- id:\u003C\u002Fcode>&#xa0;行只是对已存在条目的覆盖，无法新增插件）：\u003C\u002Fp>\n\u003Cdiv>\n \u003Cpre>\u003Ccode>- insert:\n    - id: dsh-mcp-manager\n      name: '@xxxyz\u002Fdsh-mcp-manager'\n      config:\n        token: 你的访问令牌   # 可选：开启写操作鉴权\u003C\u002Fcode>\u003C\u002Fpre>\n \n\u003C\u002Fdiv>\n\u003Cblockquote>\n \u003Cp>无需手动写这行——\u003Ccode>dsh plugin add\u003C\u002Fcode>&#xa0;的 bundle patch 会自动插入（见&#xa0;\u003Ccode>cordis.patch.yml\u003C\u002Fcode>）。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cdiv>\n \u003Ch2>🏗️ 架构\u003C\u002Fh2>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager#%EF%B8%8F-%E6%9E%B6%E6%9E%84\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cul>\n \u003Cli>宿主端（\u003Ccode>src\u002Findex.ts\u003C\u002Fcode>&#xa0;→&#xa0;\u003Ccode>lib\u002Findex.js\u003C\u002Fcode>，对象形态 Cordis 插件&#xa0;\u003Ccode>{name, inject, apply}\u003C\u002Fcode>）：\u003Ccode>inject\u003C\u002Fcode>&#xa0;声明&#xa0;\u003Ccode>timer\u002Ffs\u002Fsettings\u002FsandboxPolicy\u002FwebServer\u002Ftools\u003C\u002Fcode>，框架保证就绪并在依赖消失时自动重载——这是插件跨 DSH 升级存活的机制。注册 4 个模型工具（\u003Ccode>ctx.tools.register(defineTool(...))\u003C\u002Fcode>）与精确路由&#xa0;\u003Ccode>POST \u002Fdsh-mcp-manager\u002Fapi\u003C\u002Fcode>（\u003Ccode>ctx.effect\u003C\u002Fcode>&#xa0;作用域化清理）；对&#xa0;\u003Ccode>cordis.patch.yml\u003C\u002Fcode>&#xa0;做行级 CRUD（迷你 YAML 解析 + 按文件写锁）。\u003C\u002Fli>\n \u003Cli>浏览器端（\u003Ccode>lib\u002Fclient.js\u003C\u002Fcode>，ModuleLoader CJS bundle）：注册 设置 → MCP 管理 页（\u003Ccode>settings.section\u003C\u002Fcode>&#xa0;槽位，order 16），经同源&#xa0;\u003Ccode>fetch('\u002Fdsh-mcp-manager\u002Fapi')\u003C\u002Fcode>&#xa0;与宿主通信，不直接访问文件系统。\u003C\u002Fli>\n \u003Cli>loader 行：由&#xa0;\u003Ccode>dsh plugin add\u003C\u002Fcode>&#xa0;的 bundle patch 自动插入，client-modules 服务扫描启用的条目并下发客户端 bundle。\u003C\u002Fli>\n\u003C\u002Ful>","链接：https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager 设置 → MCP 管理 管理项目级与全局 cordis.patch.yml 中的 @deepseek-ai\u002Fdsh-mcp-client 行， 设置 → Skills 管理 浏览并停用各来源的技能——无需再手改配置文件，所有修改即改即生效（HMR 热应用），重启、升级后依然存在。 🛒 已收录于 dsh.market 与 awesome-dsh-plugin.com 官方插件列表（PR #2078 已合并） 🌏 中文 · 英文 ✨ 功能一览 📋 服务器列表：列出所有已配置的 MCP 服务器（@deepseek-ai\u002Fdsh-mcp-client 实例）——serverName、传输方式（stdio \u002F streamable-http）、URL \u002F 命令、启用状态、loader 实时加载阶段、已注册工具数 ➕ 新增 \u002F ➖ 删除：表单添加 MCP 服务器（支持 env \u002F headers \u002F args），带格式与重名校验；一键删除 🔌 启用 \u002F 停用：随时切换，工具随之热连接 \u002F 热断开 🔄 重启：disable + re-enable，自动重连并重新同步工具 💾 持久化：写入项目级（profiles\u002F\u003Cprofile>\u002Fcordis.patch.yml）或全局（~\u002F.dsh\u002Fcordis.patch.yml），重启后保留；页面底部显示文件路径 🩺 健康检查：每台服务器实时工具数与 loader 阶段，异常一目了然 📦 备份 \u002F 恢复：JSON 导出 \u002F 导入，合并新增、已存在自动跳过 🤖 模型工具：宿主注册 4 个 mcp_manager_* 工具，模型可直接查询与操作 MCP 服务 🧠 技能管理：设置 → Skills 管理 页列出 DSH 全部技能，按来源分组（项目级 \u002F 运行时 \u002F 自定义 \u002F 用户级 \u002F 内置 \u002F 插件自带）并支持搜索与按 provider 折叠；一键停用 \u002F 启用任意技能（rank-0 override provider，任何来源层级都可禁），状态持久化到 dsh-skill-manager.json，HMR 即时生效 🌐 HTTP API：POST \u002Fdsh-mcp-manager\u002Fapi（JSON {op, args} → {ok, ...}），供客户端与脚本调用。带跨站（CSRF）防护：仅接受 POST、必须携带 x-dsh-plugin: dsh-mcp-manager 请求头、校验同源 Origin（curl 等本地脚本无需 Origin） 📦 一键安装：dsh plugin --profile web add 一条命令装包 + 自动挂载（Windows \u002F macOS \u002F Linux） 🚀 安装 前置：已装好 DSH（dsh web 能正常运行），Node.js ≥ 18、pnpm ≥ 9。 方式一 · dsh 命令安装（推荐） 一条命令装包 + 自动挂载（dsh.bundle.patch 机制，无需手动改任何配置文件）： dsh plugin --profile web add @xxxyz\u002Fdsh-mcp-manager@latest 装完硬刷新浏览器（Cmd\u002FCtrl+Shift+R）即可看到 设置 → MCP 管理（DSH 对 client 改动热加载，无需重启；仅 host 半更新时需要重启）。 方式二 · 让 DSH 自己装 把下面这段提示词发给任意一个 DSH 会话： 帮我安装 dsh-mcp-manager 插件（DSH MCP 服务管理器），步骤： 1. 执行 dsh plugin --profile web add @xxxyz\u002Fdsh-mcp-manager@latest 2. 完成后提醒我硬刷新浏览器（Cmd\u002FCtrl+Shift+R） 遇到报错先查 https:\u002F\u002Fgithub.com\u002Fxxxyz\u002FDeepSeekHarness-MCP-Manager README 的常见问题表。 更新 dsh plugin --profile web add @xxxyz\u002Fdsh-mcp-manager@latest 也可把 ~\u002F.dsh\u002Fprofiles\u002Fweb\u002Fpackage.json 里的版本号改高后 pnpm install。改完硬刷新浏览器（Cmd\u002FCtrl+Shift+R）即可（client 改动无需重启 DSH）。 常见问题 现象 原因与解决 装完设置里没有「MCP 管理」 硬刷新（Cmd\u002FCtrl+Shift+R）；仍没有就重启 DSH 一次。 页面出现两个 MCP 页签 \u002F 工具重复 双挂载：同时存在旧的 loader 行与新的 bundle 条目。删掉 cordis.patch.yml 里的旧 loader 行，或 dsh.profile.bundles 里的条目，重启 DSH。 之前用旧方式装过，现在想升级 新版 bundle 自带防双挂载 guard，直接 dsh plugin --profile web add @xxxyz\u002Fdsh-mcp-manager@latest 不会重复挂载。要切到新代码：删掉 ~\u002F.dsh\u002Fprofiles\u002Fweb\u002Fcordis.patch.yml 里的 - id: mcp-manager 行，再删 local-packages\u002Fdsh-mcp-manager 与 profiles\u002Fnode_modules\u002Fdsh-mcp-manager 两个副本，重启 DSH。 提示 dsh: command not found 先安装 DSH；或直接用 npx -y --package @deepseek-ai\u002Fdsh dsh plugin --profile web add @xxxyz\u002Fdsh-mcp-manager@latest。 npm view 报 404 国内镜像（npmmirror）同步有延迟：加 --registry=https:\u002F\u002Fregistry.npmjs.org 或稍等再试。 修改配置后未生效 所有修改走 HMR 热应用，等 1–2 秒自动刷新；页面会自动轮询。 卸载 dsh plugin --profile web remove @xxxyz\u002Fdsh-mcp-manager 然后重启 DSH。 📖 使用说明 打开 设置 → MCP 管理： 添加服务器：填写 serverName（唯一，1–32 位 [A-Za-z0-9_-]）、传输方式及对应字段（streamable-http 填 URL \u002F headers；stdio 填 command \u002F args \u002F env），选择级别（项目级 \u002F 全局）。面板做格式与重名校验。 每张卡片显示实时状态、连接目标与工具数；可 启用 \u002F 停用、重启、编辑、删除。 备份 \u002F 恢复：一键导出 JSON，或粘贴 JSON 导入（合并新增，已存在自动跳过）。 页面底部显示正在编辑的补丁文件路径。 打开 设置 → Skills 管理： 浏览 \u002F 搜索：列出 DSH 全部技能，按来源分组（项目级 \u002F 运行时 \u002F 自定义 \u002F 用户级 \u002F 内置 \u002F 插件自带），组内按 provider 折叠；搜索框实时过滤。~\u002F.dsh\u002Fskills\u002F 下的用户级技能（2.2.0+）同样可见——即使官方 scoped 层不向无 scope 查询暴露它们。 启用 \u002F 停用：一键切换任意技能的启用状态——通过 rank-0 override provider（dsh-mcp-manager-override）实现，任何来源层级（含项目级与用户级文件系统技能）都能禁用。 持久化：停用状态写入 \u003CprofileDir>\u002Fdsh-skill-manager.json，重启后保留；改动经 HMR 即时生效。 ⚙️ 配置 插件自身在 loader 行中的配置： 字段 说明 version loader 行 config.version，仅用于触发 HMR 重应用；官方通道安装下由 bundle 自动管理，无需手动修改。 token 可选访问令牌（写操作鉴权，纵深防御）。设置后写操作（增删改\u002F启停\u002F重启\u002F导入导出\u002F技能停用）须带 x-dsh-token: \u003Ctoken> 头；设置页提供令牌输入框（保存在浏览器 localStorage）。也可用环境变量 DSH_MCP_MANAGER_TOKEN 配置。默认关闭。 为什么需要 token？ 插件的 CSRF 防护只拦\"跨站浏览器请求\"——它假设 DSH web 只监听本机（127.0.0.1）。一旦你通过端口转发、dsh-web-lan-access 类插件或反向代理把 3080 端口暴露到局域网\u002F公网，任何能访问该端口的人都直接获得完整写权限：可以新增\u002F修改 MCP 服务器，而 stdio 服务的 command 字段可填任意可执行文件——等同于远程任意代码执行。token 就是为这种暴露场景加的最后一道闸：没有密钥就无法做任何写操作，即使端口被暴露也不能注入命令。本地单机使用不需要配置。 loader 行必须为 insert 块形式（DSH patch 方言中普通 - id: 行只是对已存在条目的覆盖，无法新增插件）： - insert: - id: dsh-mcp-manager name: '@xxxyz\u002Fdsh-mcp-manager' config: token: 你的访问令牌 # 可选：开启写操作鉴权 无需手动写这行——dsh plugin add 的 bundle patch 会自动插入（见 cordis.patch.yml）。 🏗️ 架构 宿主端（src\u002Findex.ts → lib\u002Findex.js，对象形态 Cordis 插件 {name, inject, apply}）：inject 声明 timer\u002Ffs\u002Fsettings\u002FsandboxPolicy\u002FwebServer\u002Ftools，框架保证就绪并在依赖消失时自动重载——这是插件跨 DSH 升级存活的机制。注册 4 个模型工具（ctx.tools.register(defineTool(...))）与精确路由 POST \u002Fdsh-mcp-manager\u002Fapi（ctx.effect 作用域化清理）；对 cordis.patch.yml 做行级 CRUD（迷你 YAML 解析 + 按文件写锁）。 浏览器端（lib\u002Fclient.js，ModuleLoader CJS bundle）：注册 设置 → MCP 管理 页（settings.section 槽位，order 16），经同源 fetch('\u002Fdsh-mcp-manager\u002Fapi') 与宿主通信，不直接访问文件系统。 loader 行：由 dsh plugin add 的 bundle patch 自动插入，client-modules 服务扫描启用的条目并下发客户端 bundle。",4101,{"id":6,"kind":7,"title":11,"summary":13,"image":14,"href":16,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":40},"2026 · 人工智能","#2563eb","16 \u002F 10",[19],{"targetType":8,"targetId":9,"likedByMe":42,"likeCount":43,"commentCount":43,"contentLikeCount":43,"contentCommentCount":43,"sourceLikeCount":43,"sourceCommentCount":43},false,0,[45,52,59,66,72,78,85,92],{"id":46,"kind":7,"title":47,"summary":48,"image":49,"href":50,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":51},"NEWS_ARTICLE:827","MHS 三部曲（下）：谁允许 AI 行动？——权力、合规与中国厂商的答卷","我们总在等待一个像 ChatGPT 那样的机器人时刻。但具身智能真正的拐点，也许先发生在更不起眼的地方：一台陌生设备，第一次能把自己的能力、状态和边界完整告诉 AI；一个 Agent，第一次能把试出来的经验固化成可验证、可复用的机器技能。","https:\u002F\u002Fimg2024.cnblogs.com\u002Fblog\u002F510\u002F202608\u002F510-20260830153745229-1536981088.jpg","\u002Fnews\u002F827",[19],{"id":53,"kind":7,"title":54,"summary":55,"image":56,"href":57,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":58},"NEWS_ARTICLE:835","体验向量数据库 qdrant","作者:张富春(ahfuzhang)，转载时请注明作者和引用链接，谢谢！ cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 背景 为了早点搞懂公司的百万行 C# 的祖传代码，我想在缺乏文档、缺乏帮手的情况下，先建立一个 企业知识库 来快速帮我理清头绪。 一开始，我是打算以 weav","https:\u002F\u002Fimg2022.cnblogs.com\u002Fblog\u002F1457949\u002F202202\u002F1457949-20220216153819145-1193738712.png","\u002Fnews\u002F835",[19],{"id":60,"kind":7,"title":61,"summary":62,"image":63,"href":64,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":65},"NEWS_ARTICLE:853","为什么团队用了 AI 之后，测试质量反而下降了！","一、AI 提效之后，往往先崩的是质量 前两天刷到一篇同行的复盘。 「AI 提效半年后，我们的测试团队规模反而更大了」 用AI 提效半年，人数不降，反而变更多了？ 这位老哥是认真做过团队实践的，观察写得很扎实。提测质量肉眼可见地下滑，需求做漏了，单位时间里测试捞出来的 bug 反而变多，最后测试团队加","https:\u002F\u002Fimage.kjdaohang.com\u002Fimg\u002F20260831223910845.png","\u002Fnews\u002F853",[19],{"id":67,"kind":7,"title":68,"summary":69,"image":15,"href":70,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":71},"NEWS_ARTICLE:856","AI生产力：从效率到工作流重构","当初学专业的笔记还在吗？相信大部分人都没保留，而能力在不断积累和更新，关注和思考的角度在变化，在AI蒸馏我们的同时。也可以用AI的能力，去蒸馏一下魔幻的职场。","\u002Fnews\u002F856",[19],{"id":73,"kind":7,"title":74,"summary":75,"image":15,"href":76,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":77},"NEWS_ARTICLE:861","个体看衰AI，企业加速转型","信息化数字化智能化，十年前的说法在逐步兑现。最后回到一个灵魂拷问：当业务运营更加高效。组织间的协作更加流畅，企业究竟想去拓宽市场，还是手起刀落降低成本？","\u002Fnews\u002F861",[19],{"id":79,"kind":7,"title":80,"summary":81,"image":82,"href":83,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":84},"NEWS_ARTICLE:864","阿里开源：skill-up，一款Agent Skill 评测工具！","2026 年走到现在，Agent Skill 已经成了 AI 领域的标配。 把个人经验沉淀成 SKILL.md，把团队最佳实践封装成可复用的技能包，这些都已经是很常规的操作了。最近在社区上看到有篇文章问了一个特别扎心的问题。 「一个 Skill 的『好坏』，到底由谁定义？评判它的标准又是什么？」 这","https:\u002F\u002Fimage.kjdaohang.com\u002Fimg\u002F20260831105634380.png","\u002Fnews\u002F864",[19],{"id":86,"kind":7,"title":87,"summary":88,"image":89,"href":90,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":91},"NEWS_ARTICLE:871","\"AgentOPSD: Recursive Self-Distillation for Agentic Reinforcement Learning\" 论文笔记","清华、浙大与美团 LongCat 团队合作的 AgentOPSD，目前挂在 Arxiv 26.08 上，做的是长程多轮 Agentic RL 里的回合级信用分配。可验证奖励的 RL 只在整条轨迹结束时给一个稀疏的 0\u002F1 信号，GRPO 这类方法把轨迹级优势均匀广播到每个 token，无法把成败真正","https:\u002F\u002Fimg2024.cnblogs.com\u002Fblog\u002F3614753\u002F202609\u002F3614753-20260901141154042-339903878.png","\u002Fnews\u002F871",[19],{"id":93,"kind":7,"title":94,"summary":95,"image":49,"href":96,"meta":37,"badge":10,"author":12,"stats":-1,"accent":38,"coverRatio":39,"tags":97},"NEWS_ARTICLE:880","MHS 三部曲（中）：8 小时集成、六种被拦截的故障，和一次教科书级的翻车","四个案例合起来说明三件事：接入与编排成本可以数量级下降（CMU\u002FJanelia），闭环试错和跨设备补救是真的（CMU\u002FTetsuwan），但物理直觉仍是硬伤（Genentech），安全必须长在模型之外。","\u002Fnews\u002F880",[19]]