拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

DeepSeekHarness(番外01):MCP与Skill配置不再手改YAML,一条命令接入15个服务器

DeepSeekHarness(番外01):MCP与Skill配置不再手改YAML,一条命令接入15个服务器 1. 手改 YAML 装 MCP 到底有多痛如果你正在用 DeepSeekHarness 折腾 MCP 和 Skill大概率经历过这个场景想加一个 GitHub 服务器打开cordis.patch.yml对着 12 个字段的 insert patch 一个一个填id、command、args、env、transport、reconnect……填完保存重启发现工具没出来再回去查是不是缩进错了。加第二个服务器重复一遍。加到第五个的时候你已经不想再加了。这不是你笨是手工路线本身就不适合批量操作。DeepSeekHarness 的 MCP 配置本质上是往注册表里写结构化数据而 YAML 手写的方式把这个过程变成了「人肉序列化」——每个字段都要精确每个缩进都不能错密钥还要手动清理成引用格式。一个服务器 5 分钟15 个就是 75 分钟还不算调试时间。dsh-install 这个插件就是来解决这个问题的。它把 MCP 服务器和 Skill 的安装、启停、改配置、诊断、迁移全部变成一条命令内置 15 个常用服务器目录支持任意 npm 包接入改配置免重启。我实测下来从零到接入第一个 MCP 服务器大概 5 分钟之后每加一个服务器就是一行命令的事。这篇文章面向的是已经在用 DeepSeekHarness、想批量管理 MCP 与 Skill 的开发者。不需要 TypeScript 基础所有操作都在 PowerShell 里敲命令完成。读完之后你能做到用一条命令装服务器、免重启换模型、用 doctor 诊断问题、把 Claude Code 的旧配置迁移过来以及遇到 5 个常见报错时知道去哪查。2. TaoToken 前置统一 Key 与 API 通道在装 MCP 服务器之前先把模型通道配好。DeepSeekHarness 本身需要模型后端而 MCP 服务器里的视觉理解、文档查询这类工具也需要 API Key。如果每个服务器都单独配一套 Key管理起来会很乱。TaoToken 在这里的角色是统一入口一个 Key 走通模型对话和 API 调用不用在多个平台之间切换。你可以先到官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 了解一下然后进控制台创建 API Key。具体操作路径打开 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 在 API Keys 页面生成一个 Key。这个 Key 后面会作为环境变量注入到 MCP 服务器的配置里注册表里只存${TAOTOKEN_API_KEY}这样的引用不落明文。如果你主要做模型对话测试可以到 https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 先验证 Key 能不能正常调通。如果是要长期跑编码任务或者 Agent 场景建议看一下 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 按套餐走比单次调用划算。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite API 基础地址是 https://taotoken.net/api 注意这个地址不加 UTM 参数直接用于代码里的 base_url 配置。配好之后在 PowerShell 里设置环境变量setx TAOTOKEN_API_KEY 你的Key新开一个终端让变量生效。后面所有 MCP 服务器的配置里涉及 Key 的地方都写${TAOTOKEN_API_KEY}挂载时从环境展开。3. 可复制配置dsh-install 安装与骨架3.1 环境检查先确认基础环境。DeepSeekHarness 版本建议 v0.1.0-rc.5 及以上Node.js 需要 ^22.19.0 或 ≥24pnpm 建议 11.7.0。dsh --version npx --version uvx --version docker --versiondsh --version应该输出0.1.0-rc.5或更高。npx随 Node 自带装 node 系 MCP 需要。uvx是 Python 系 MCP 的运行时没有的话pip install uv或pipx install uv。docker只有装 docker-* 条目才需要。3.2 安装 dsh-install 到两个 profiledsh-install 需要装到两个 profileinstall profile 承载命令行web profile 承载聚合器。dsh plugin --profile install add dsh-tools/dsh-install dsh plugin --profile web add dsh-tools/dsh-install预期输出里会出现 dsh-tools/dsh-install ^0.1.0以及Done in xxxms using pnpm v11.7.0。如果看到[WARN] Issues with peer dependencies found这是无害的——插件故意把 cordis、dsh-mcp-client 声明为 peer dependency复用 harness 自己安装的那份避免版本漂移。3.3 启用聚合器行这是全文唯一一次手改 YAML。打开DSH_HOME\profiles\web\cordis.patch.yml初始内容只有一段注释改成- id: mcp-registry disabled: false机制是这样的bundle 自带的 patch 里mcp-registry行默认disabled: true聚合器默认不打扰任何人。你的 profile patch 层优先级更高写disabled: false即覆盖启用。保存即热生效。3.4 重启一次 web装/卸插件包属于 bundle 层改动只在 boot 时读入所以必须重启一次 web。在启动 web 的窗口按 CtrlC然后重新启动dsh web此后所有 mcp/skills 命令的改动全部免重启。3.5 验证安装dsh --profile install mcp list没有报错、列表为空就是正常的。然后在 web 输入框敲/命令面板应该出现/mcp、/skills两个斜杠命令。3.6 config.toml / settings.json 骨架参考如果你习惯用配置文件的方式管理这里给一份骨架。注意 dsh-install 的主存储是DSH_HOME\mcp.json下面的 config.toml 是给需要对接其他工具链的场景参考的# config.toml 骨架参考 [model] provider taotoken base_url https://taotoken.net/api api_key ${TAOTOKEN_API_KEY} model deepseek-chat [mcp.github] command npx args [-y, modelcontextprotocol/server-github] env { GITHUB_TOKEN ${GITHUB_TOKEN} } [mcp.zai] command npx args [-y, z_ai/mcp-server] env { ZAI_API_KEY ${ZAI_API_KEY}, Z_AI_VISION_MODEL GLM-4.6V-Flash }settings.json 骨架{ mcpServers: { github: { command: npx, args: [-y, modelcontextprotocol/server-github], env: { GITHUB_TOKEN: ${GITHUB_TOKEN} } }, zai: { command: npx, args: [-y, z_ai/mcp-server], env: { ZAI_API_KEY: ${ZAI_API_KEY}, Z_AI_VISION_MODEL: GLM-4.6V-Flash } } } }4. 一条命令接入 15 个服务器4.1 内置目录一览dsh-install 内置了 15 个常用服务器mcp add 名字即可不用记 npx 命令名字运行时说明特殊要求githubnpxIssue/PR/仓库搜索-e GITHUB_TOKENfilesystemnpx读写指定目录-- 补路径参数everythingnpx集成测试服务器—memorynpx知识图谱记忆—sequential-thinkingnpx分步推理—fetchuvx网页转 Markdown需 uvxgituvxGit 仓库操作需 uvxsqliteuvxSQLite 查询-- 补库路径timeuvx时间与时区换算需 uvxsentrynpxSentry 错误监控-- 补 --auth-tokencontext7npx实时库文档查询—playwrightnpx浏览器自动化—brave-searchnpxBrave 搜索 API-e BRAVE_API_KEYdocker-gitdockerGit 操作Docker需 dockerdocker-fetchdocker网页抓取Docker需 docker4.2 批量接入示例装官方 GitHub 服务器dsh --profile install mcp add github -e GITHUB_TOKENmcp list立即出现github stdio, user cli。三列含义名字、传输方式作用域、来源标签。装智谱视觉 MCP任意包用--形式dsh --profile install mcp add zai -e ZAI_API_KEY -- npx -y z_ai/mcp-server语法红线三条--是分界线之后内容原样成为启动命令-e等选项必须在--之前-e KEYVALUE存字面值-e KEY存环境变量引用装密钥永远用第二种。验证存储内容dsh --profile install mcp get zai输出里env应该是ZAI_API_KEY: ${ZAI_API_KEY}不是明文。4.3 生命周期命令dsh --profile install mcp list [--format json] dsh --profile install mcp get zai dsh --profile install mcp on zai dsh --profile install mcp off zai dsh --profile install mcp remove zai [--all] [--dry-run]免重启换模型dsh --profile install mcp update zai -e Z_AI_VISION_MODELGLM-4.6V-Flash -e ZAI_API_KEY -- npx -y z_ai/mcp-server注意 update 会整体重写该条目原来带过的-e要重新声明一遍。4.4 Skill 安装dsh --profile install skills add .\my-skill dsh --profile install skills add github:owner/repo#subdirv1.0 dsh --profile install skills add path --link dsh --profile install skills list dsh --profile install skills remove n [--all] [--dry-run]装进DSH_HOME\skills或project\.dsh\skillsharness 的 skill 提供方自带 watcher 自动发现免重启。4.5 迁移旧配置dsh --profile install mcp import --from claude dsh --profile install mcp import --from codex dsh --profile install mcp import --from mcp-json [--path p] dsh --profile install mcp import --from auto迁移的是服务器定义密钥字段一律以${VAR}引用形式落盘。5. 验证请求与成功结果5.1 doctor 诊断dsh --profile install mcp doctor zai预期输出runtime npx found at D:\Program Files (x86)\nodejs\npx env var ZAI_API_KEY is not set两条信息直击要害运行时在不在 PATH、env 引用的环境变量在不在当前环境。 意味着注册表写的是${ZAI_API_KEY}但当前终端没有这个变量。补上setx ZAI_API_KEY 你的Key新终端生效后再跑 doctor。5.2 会话内验证重启 web 后开新会话模型工具列表应该出现mcp__server__tool格式的工具。比如装了 github 服务器会出现mcp__github__search_repositories这类工具。输入框敲/命令面板出现/mcp、/skills。用/mcp可以查看当前挂载的服务器列表。5.3 实际调用测试以 zai 视觉 MCP 为例在会话里让模型调用mcp__zai__analyze_image传入一张图片的 URL。如果返回正常的图片描述说明整条链路通了注册表 → 聚合器 → 工具挂载 → 模型调用 → TaoToken 通道 → 返回结果。如果报1113 insufficient balance说明默认视觉模型glm-4.6v是付费的换成GLM-4.6V-Flash即可dsh --profile install mcp update zai -e Z_AI_VISION_MODELGLM-4.6V-Flash -e ZAI_API_KEY -- npx -y z_ai/mcp-server再次调用错误码从 1113 变成 1305service temporarily overloaded说明请求已进入免费模型的限流逻辑换模型成功。6. 本篇常见错排查6.1 路径含 被截断报错[WARN] Installing a dependency from a non-existent directory: D:/Workspace/DSH-Install-MCP根因在 shell 里是元字符路径DSH-Install-MCPSkill在处被切断。即使路径没有目录安装是 link 安装pnpm 只建符号链接、不把依赖装进 profile。修复pack 成 tarball 再 add或直接用 npm 包名pnpm --dir packages/dsh-install pack --pack-destination .\.local\dist dsh plugin --profile install add D:\...\dsh-tools-dsh-install-0.1.0.tgz6.2 模型看不到 MCP 工具没有报错但 web 会话里就是没有mcp__*工具。三查清单第一查聚合器行DSH_HOME\profiles\web\cordis.patch.yml是否含- id: mcp-registry且disabled: false。第二查是否重启过 webbundle 层只在 boot 读入装完包直接继续用旧会话插件代码还没加载。第三查 doctormcp doctor n是否 runtime 、env 无 。6.3 密钥写进 -- 后面错误写法dsh --profile install mcp add zai -- npx -y z_ai/mcp-server -e ZAI_API_KEYsk-xxxx后果-e没被识别成 env认证失败mcp get zai里 args 躺着明文密钥还可能被模型带进聊天记录。修复删条目、轮换密钥、用正确姿势重装dsh --profile install mcp remove zai setx ZAI_API_KEY 轮换后的新Key dsh --profile install mcp add zai -e ZAI_API_KEY -- npx -y z_ai/mcp-server6.4 迁移 DSH_HOME 后启动报错根因Windows 普通复制会把 junction 解引用成真实目录链接拓扑被破坏。修复改名触发自愈或直接用 robocopy /XJRename-Item $env:DSH_HOME\profiles\node_modules node_modules.bak dsh web robocopy C:\Users\用户名\.dsh D:\Agents\.dsh /E /XJ6.5 doctor 报 env var not setsetx ZAI_API_KEY 你的Key新开终端再跑 doctor。注意 setx 只对新终端生效当前终端需要手动$env:ZAI_API_KEY...。7. 语义一致 CTA排障和接入相关的问题建议先看 API Keys 页面和接入文档API Keyshttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite想先验证模型通道是否正常到模型对话页面试一下模型对话https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite长期跑编码任务或 Agent 场景看 Coding PlanCoding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite如果你用的是 Claude Code 或 Anthropic 系工具链这里有专门的接入说明ClaudeCodeAnthropichttps://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecodeanthropicutm_campaignrewrite最后日常管理命令速查dsh --profile install mcp list dsh --profile install mcp doctor n dsh --profile install mcp on/off n dsh --profile install mcp update n -e KEY -- command dsh --profile install skills list审计日志在DSH_HOME\logs\install.jsonl出问题可以Get-Content按时间回放。注册表在DSH_HOME\mcp.json密钥只存${VAR}引用全文没有明文。
返回列表