dsh-nezha:在 DSH 中接入哪吒監控 MCP

前言

在 DSH 裏做運維或巡檢時,Agent 往往需要讀主機狀態、拉日誌或在受控範圍內執行一次性命令。若監控面板與智能體環境彼此隔離,通常要單獨寫腳本、維護 API 憑據,再把能力手工掛到工具列表上。哪吒監控(Nezha Monitoring)V2 內置 MCP 服務,可通過 POST /mcp 暴露服務器清單、遠程執行與文件操作等工具;dsh-nezha 由維護者 kaecho 提供,負責把該端點接到 DeepSeek Harness,並在插件詳情頁用可視化表單管理地址與 PAT。下面按安裝、配置與工具命名說明用法。

插件定位

dsh-nezha(GitHub:kaecho/dsh-nezha)是 DSH 客戶端類插件:連接 Nezha Dashboard 的 MCP 端點,使用 Authorization: Bearer nzp_... 認證。當前版本爲 0.1.0,許可證 MIT。運行要求爲 DSH >=0.2.1-rc.2、Node.js >=22(開發與打包;DSH 運行時自帶 Node),以及已開啓 MCP 的 Nezha V2。

插件無運行時外部依賴,無需額外構建。保存配置後會自動執行 MCP initialize、notifications/initialized 和 tools/list,並將 Nezha 工具動態註冊到 DSH,統一命名爲 mcp__nezha__<tool>。

環境準備

在接入插件之前,需要同時滿足 DSH、Nezha 與網絡三側條件。

項目 要求
DeepSeek Harness >=0.2.1-rc.2
Nezha V2,且 enable_mcp: true
認證 Nezha API Token(PAT),以 nzp_ 開頭;不能使用瀏覽器登錄 JWT
網絡 DSH 所在主機能通過 HTTP(S) 訪問 Dashboard 的 /mcp
反向代理 允許 POST /mcp,轉發 Authorization,請求體上限至少 8 MiB

Nezha 的 MCP 默認關閉。在 Dashboard 配置中開啓後需重啓或重新加載,使 /mcp 生效:

enable_mcp: true

核心能力

  • 連接與註冊:對接 POST /mcp;啓動或保存配置後拉取 tools/list 並註冊到 DSH。
  • Web UI 設置:在插件詳情頁(plugins.bundle.config)配置 Dashboard 地址、PAT、啓用/停用、超時;支持測試連接、保存、刷新工具、清除已保存令牌。
  • 錯誤可讀化:連接失敗、認證失敗、權限不足、404、限流和超時會轉換爲可讀提示。
  • 憑據分離:PAT 寫入 DSH 憑據記錄 dsh-nezha/token;普通設置文件僅含 url、enabled、timeoutMs。
  • 傳輸形態:兼容 JSON 與 SSE 形式的 MCP 響應;Nezha 當前爲 POST 請求/響應模式,不依賴長連接 SSE。

安裝與啓用

當前版本以 GitHub Release 的 .tgz 和本地目錄安裝爲主,尚未發佈到 npm。資料中未給出 dsh plugin add github:... 一類命令,應在 DSH Web UI 的 Plugins / 插件 頁面添加。

從本地目錄安裝(開發/自用推薦)

  1. 將本倉庫放到 DSH 所在主機,例如 /path/to/dsh-nezha。
  2. 在插件頁選擇添加插件,在「包名或地址」中填寫該目錄的絕對路徑。
  3. 安裝並保持啓用;若提示 restart-required,重啓 DSH 後再打開插件詳情頁。

從本地 .tgz 安裝

在倉庫根目錄執行:

npm pack

會生成 dsh-nezha-0.1.0.tgz。在 DSH 插件頁選擇從本地安裝,指向該文件即可;插件無外部依賴,安裝時不需要執行依賴構建腳本。

從 npm 安裝(發佈後)

發佈到 npm 後,可在「包名或地址」中填寫 dsh-nezha 按包名安裝。

安裝完成後,插件列表中應出現標題爲 Nezha MCP / 哪吒 MCP 的條目。

首次配置

  1. 打開 Plugins / 插件,進入 dsh-nezha 詳情頁。
  2. 在配置區填寫:
字段 說明
Dashboard 地址 可填 https://nezha.example.com 或含路徑/完整 /mcp 的 URL;插件會規範化爲 /mcp。勿帶用戶名、密碼、查詢參數或片段。
API Token / PAT 以 nzp_ 開頭;留空表示保留已保存令牌。
啓用 關閉則不連接、不註冊工具。
超時 單次 MCP 請求 5–300 秒,默認 60 秒;長耗時 server.exec 需調大並同步反向代理超時。
  1. 點擊 測試連接:對當前表單地址與 PAT(PAT 留空則用已保存值)執行 initialize 與 tools/list,不保存配置、不執行命令或文件操作。
  2. 點擊 保存並連接:寫入 profile 設置與憑據,自動重連並刷新工具。
  3. Nezha 側 PAT scope、白名單或版本變更後,使用 刷新工具 重新讀取 tools/list。
  4. 撤銷本地 PAT:勾選 清除已保存的 PAT(保存時生效) 後保存。

非機密配置落在當前 profile 目錄下 <profile>/dsh-nezha/settings.json(由環境變量 DSH_PROFILE_DIR 指向的 profile 目錄決定)。

Agent 側工具命名與權限

DSH 註冊名格式爲 mcp__nezha__<tool>。Nezha 原始名中的點號會替換爲下劃線,例如:

Nezha 原始工具 DSH 工具名
server.list mcp__nezha__server_list
server.exec mcp__nezha__server_exec
fs.read mcp__nezha__fs_read

在 Nezha Dashboard 的 API / API Token(PAT) 頁面創建 Token,按需選擇 scope 與服務器 ID 白名單。Scope 與工具對應關係(節選):

Scope 可用的工具
任意有效 PAT meta.whoami
nezha:inventory:read server.list
nezha:server:read server.get、fs.list、fs.read、fs.download_url
nezha:server:exec server.exec
nezha:server:write fs.write、fs.upload_url
nezha:server:delete fs.delete

建議最小權限:僅巡檢用 nezha:inventory:read 與 nezha:server:read;需要遠程執行再開 nezha:server:exec;寫刪文件再開 write/delete,並對高風險 scope 限制服務器白名單與有效期。官方說明見 Nezha MCP 指南 與 API Token(PAT)。

典型用法思路

配置完成且狀態爲已連接後,Agent 即可調用 mcp__nezha__* 工具。具體參數以 Nezha 返回的 inputSchema 爲準。常見組合包括:

  • 用 mcp__nezha__meta_whoami 確認當前 Token 的 scope 與白名單。
  • 用 mcp__nezha__server_list、mcp__nezha__server_get 做資產與狀態快照。
  • 用 mcp__nezha__fs_list、mcp__nezha__fs_read 讀目錄與小段日誌。
  • 在明確授權下使用 mcp__nezha__server_exec 執行非交互式一次性命令(Nezha 側默認超時 30 秒,最大 300 秒)。
  • 大文件可用 mcp__nezha__fs_download_url / mcp__nezha__fs_upload_url 生成一次性 URL(默認有效期約 300 秒,單文件上限 100 MiB);需正確配置 Nezha 的 dashboard_host。

工具列表隨 Nezha 實例的 tools/list 變化,不同版本可能略有差異。

適用場景與注意

適合:已在用 Nezha V2 做監控,希望在 DSH Agent 中直接調用官方 MCP 能力、並希望通過 Web UI 管理端點與 PAT 的團隊。

安全與運行方式:

  • 生產環境使用 HTTPS;server.exec 與 fs.write / fs.delete 等屬於高風險操作,應結合 DSH 工具權限與確認機制,並遵循最小 PAT scope。
  • 插件在 DSH 進程權限下運行;安裝前應查看倉庫源碼與 MIT 許可證,並保護好 profile 目錄、備份與憑據存儲。
  • 不再使用時在 Nezha 撤銷 PAT,並在插件設置頁清除已保存令牌。

常見故障(細節見倉庫 README):401 多爲 PAT 無效或誤用 JWT;403 檢查 scope 與白名單後 刷新工具;404 檢查 enable_mcp、反向代理是否轉發 POST /mcp;超時需同時調整插件超時與反向代理讀超時;429 需注意 Nezha 對 Token 的限流(約每秒 10 次、每分鐘 120 次)。

結尾

dsh-nezha 把哪吒 V2 內置 MCP 接到 DSH,用可視化配置完成端點與 PAT 管理,並把 Nezha 工具以 mcp__nezha__* 形式暴露給 Agent。社區目錄頁:https://www.skillhub.cn/plugins/kaecho/dsh-nezha;源碼與完整故障排查:https://github.com/kaecho/dsh-nezha。

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

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

小夜