dsh-alibaba-mcp:在 DSH 中接入阿里云 Ops MCP,并按模块裁剪工具面

前言

在 DeepSeek Harness(DSH)里做运维或云资源相关对话,常见做法是单独起一个 MCP 服务,再在 Harness 里手工挂客户端、配凭据与环境变量。阿里云官方提供了 Alibaba Cloud Ops MCP server,能力多,但启动时会注册较多工具,其中一部分还要在启动阶段走 HTTPS 拉 schema,冷启动偏慢。

dsh-alibaba-mcp 是第三方 DSH 插件(MIT 许可,非 DeepSeek 或阿里云官方产品)。下面介绍它如何通过 uv 拉起 PyPI 上的 MCP 服务端,把工具注册进 DSH,并支持按模块开关裁剪对外暴露的工具名(mcp__alibaba__*)。

这是什么

维护者:NingYuanLee。仓库:NingYuanLee/dsh-alibaba-mcp;社区目录页:SkillHub 条目。分类为工作流。

插件不内置 MCP 服务端副本,也不依赖本机固定目录:通过 uv 运行 PyPI 分发包 alibaba-cloud-ops-mcp-server,再把 stdio 连接交给 @deepseek-ai/dsh-mcp-client。AccessKey 从 DSH 凭据库读取,只注入子进程环境,不写入 cordis.patch.yml;MCP 客户端会清理父进程中形似密钥的环境变量名,避免误传。

核心功能

连接与工具命名

智能体经插件调用本地阿里云 Ops MCP。对外工具名形如 mcp__<serverName>__<tool>,默认 serverName 为 alibaba。

凭据与重连

默认通过 ctx.credentials 解析以下环境变量名(可在配置里改成别的引用名):

  • ALIBABA_CLOUD_ACCESS_KEY_ID / ALIBABA_CLOUD_ACCESS_KEY_SECRET
  • 可选:ALIBABA_CLOUD_SECURITY_TOKEN、ALIBABA_CLOUD_REGION_ID

凭据库优先于进程环境。密钥对只配一侧、或仅有 STS token 而无密钥对时,插件拒绝启动子进程。四个凭据引用任一更新时,会销毁对应 MCP 子客户端并重新连接。未配置密钥时服务端仍可启动,走其自有凭据链;保存凭据后会重连。

模块与工具面

modules 默认 core,api,deploy:约 34 个工具、冷启动约 3 秒(相对服务端默认 40 工具、含需联网拉 schema 的动态 API 工具)。设为 all 可恢复完整 40 工具面。

可选模块包括:core、api、deploy、oss、oos、cms、local、ecs、vpc、rds。modules(非 all 时)、visibleTools、codeDeploy 三者互斥,不能同时用来裁剪工具面。

services 为逗号分隔列表,传给服务端 --services;空则保持服务端默认。文档说明它不会缩小工具面,只影响 common-API 类工具的注册,有时还会增加工具。

单次工具调用默认超时 600000 ms(10 分钟)。连接断开后遵循 MCP 客户端自身的重连策略。

图形化设置(0.3.0 起)

从 0.3.0 起插件提供客户端设置面板:DSH 中打开「Plugins → Alibaba Cloud Ops」,勾选模块后保存会写入 profile patch 并重连 MCP,多数情况下不必手改 YAML。若已用 codeDeploy 或 visibleTools 裁剪工具面,面板会要求先清除再选模块。

安装与启用

环境要求

  • Node >=22.19.0
  • DSH:>=0.2.1-rc.2 <0.3.0-0 或 >=0.2.2-0 <0.3.0-0(以 package.json engines.dsh 为准)
  • 本机需安装 uv,用于启动 Python 版 MCP 服务端;插件启动前会检查 uv,缺失时给出明确提示,不会自行安装

安装 uv 示例(README 原文):

# Windows
winget install --id=astral-sh.uv -e
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

Python 版本在配置里固定为 3.12(python 项)。uv 若自动选到过新的解释器(例如 CPython 3.14),pydantic-core 构建可能失败;首次使用时 uv 可下载托管的 3.12。

安装插件

在已安装 DSH 的前提下执行:

dsh plugin --profile web add dsh-alibaba-mcp

包声明了 dsh.bundle.patch,dsh plugin add 会把 bundle 写入对应 profile。若当前会话里看不到工具,重启 DeepSeek Harness。

Cordis 行 id 为 alibaba-mcp,npm 包名为 dsh-alibaba-mcp(当前资料中 package 版本为 0.4.0)。

配置 AccessKey

在阿里云控制台创建 AccessKey 后,在本插件设置中写入凭据,或在启动 DSH 的环境中导出同名变量(与默认 accessKeyIdEnv / accessKeySecretEnv 一致即可)。

配置要点

常用字段(完整表见 README):

字段 默认值 含义
serverName alibaba 工具命名空间,须符合 [A-Za-z0-9_-]{1,32},同作用域内 MCP 客户端唯一
command uv stdio 启动命令
python 3.12 传给 uv 的 --python
modules core,api,deploy 模块开关;all 为全量工具
cloudEnv domestic domestic 或 international(后者对应 --env international)
toolCallTimeoutMs 600000 单次调用超时

profile 覆盖示例(注意后续 patch 会整体替换 config,需保留仍要用的字段):

- id: alibaba-mcp
  config:
    serverName: alibaba
    python: '3.12'
    cloudEnv: domestic

典型用法

  1. 安装 uv 与插件,在 DSH 凭据或环境中配置 ALIBABA_CLOUD_ACCESS_KEY_ID、ALIBABA_CLOUD_ACCESS_KEY_SECRET。
  2. 需要快速冷启动时保持默认 modules: core,api,deploy;需要 OSS、ECS、RDS 等专项工具时,在设置面板勾选对应模块,或把 modules 改为包含 oss、ecs、rds 等的逗号列表(勿与 visibleTools、codeDeploy 同开)。
  3. 在对话中让智能体调用以 mcp__alibaba__ 为前缀的工具完成查询或变更(具体工具名与参数 schema 由 MCP 服务端发布,插件不二次实现)。

国内与国际云环境通过 cloudEnv 切换;额外非密钥配置可走 extraConfig(映射为 --extra-config),勿在其中存放 secret。

适用场景与注意

适合谁: 已在 DSH 中开发智能体、需要在同一会话里调用阿里云 Ops MCP(查询资源、部署相关能力等)的开发者;希望用模块开关控制工具数量与启动耗时的团队。

权限与安全: 插件以当前 DSH 进程权限运行子进程与工具调用;安装前应阅读仓库源码与 MIT 许可证,自行评估将 AccessKey 交给 MCP 服务端的风险。第三方插件与 SkillHub 目录站点均非 DeepSeek / 幻方官方应用商店。

启动耗时: 全量 all 时,部分动态 API 工具会在启动阶段访问 api.aliyun.com 拉 schema,是主要延迟来源;默认模块子集用于规避这部分联网注册。

结尾

dsh-alibaba-mcp 把 PyPI 上的 Alibaba Cloud Ops MCP 以 stdio 方式挂进 DSH,凭据走 DSH 凭据库,并支持按模块(及互斥的 visibleTools / codeDeploy)控制 mcp__alibaba__* 工具面。安装使用 README 中的 dsh plugin --profile web add dsh-alibaba-mcp 即可。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye