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 即可。

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

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

小夜