前言¶
在 DeepSeek Harness(DSH)裏做運維或觀測類智能體時,經常需要查時序庫:看 bucket、摸清 measurement 與 tag,再寫 Flux 拉一段時間序列。若每次手寫 curl 或把 token 塞進臨時腳本,會話上下文容易爆,也不利於在面板裏反覆試查詢。
@super-ding/dsh-influxdb 是面向 InfluxDB 2.x(Flux + token)的 DSH bundle:安裝後 Agent 可直接調用原生工具執行查詢、讀 schema、管理連接;側邊欄提供 Flux 編輯器與連接管理。維護者爲 super-ding,在 SkillHub 插件目錄 歸類爲「聯網工具」。InfluxDB 1.8 與 3.x 的接口與鑑權不同,不在本插件範圍內。
這是什麼¶
一句話:DeepSeek Harness 的 InfluxDB 2.x 插件——6 個智能體工具加一個側邊面板,可執行 Flux 查詢、查看 schema 與 bucket、管理連接、在開啓寫權限後寫入 line protocol。
默認形態是 DSH 原生插件工具,不是 MCP 服務器。裝上 bundle 後,會話裏可直接使用 influx_query、influx_schema 等工具名,無需配置 MCP。包內另有可選的 stdio MCP 服務器,供其他 MCP 客戶端複用同一套能力。
核心能力¶
Agent 工具¶
| 工具 | 作用 |
|---|---|
influx_connections |
列出連接(url / org / bucket / token 來源),ping: true 時可測 /health |
influx_query |
執行 Flux,返回 JSON 表格(列名 + 行數組),帶行數上限與 truncated 標記 |
influx_schema |
讀 schema:buckets / measurements / fields / tags / tagValues |
influx_buckets |
列 bucket 及保留策略 |
influx_write |
寫 line protocol(默認關閉,需 allowWrite: true) |
influx_flux |
Flux 編寫輔助:validate 服務端校驗、explain 管線解釋、template 模板、params 模板清單 |
側邊面板¶
側欄 InfluxDB 圖標打開主面板:
- 查詢:連接選擇、Flux 編輯器(Tab 縮進、Ctrl/Cmd+Enter 運行)、模板插入、服務端校驗、結果表格。
- 連接:新增 / 編輯 / 刪除 / 設默認;
tokenEnv優先於明文 token;allowWrite開關;保存後立即生效。
面板不做圖表可視化,只展示表格;圖表需求可將結果交給其他工具處理。
安裝與配置¶
安裝¶
從 npm 安裝(推薦):
dsh plugin --profile desktop add @super-ding/dsh-influxdb
從 GitHub 安裝(未發 npm 時的等價方式):
dsh plugin --profile desktop add github:super-ding/dsh-influxdb
安裝 bundle 時會在 profile 的 cordis.patch.yml 自動插入默認插件行;也可按下面結構手改。
配置示例¶
插件行寫在 profile 的 cordis.patch.yml:
- id: dsh-influxdb
name: "@super-ding/dsh-influxdb"
config:
allowWrite: false # 是否允許 influx_write 與面板寫入
timeoutMs: 30000 # 單次請求超時
maxRows: 200 # 默認返回行數上限(1-2000)
connections:
- id: prod # 連接 id,工具裏用 connection 參數指定
label: 生產 InfluxDB
url: http://127.0.0.1:8086
org: my-org
bucket: metrics # 默認 bucket,查詢/schema/寫入的缺省值
tokenEnv: INFLUX_TOKEN # 推薦:token 只放環境變量
# token: "xxxx" # 也可直接寫,但不推薦
default: true # 工具的默認連接
- id: staging
url: http://10.0.0.12:8086
org: my-org
bucket: metrics_dev
token: "staging-token"
token 也支持 env:INFLUX_TOKEN 或 ${INFLUX_TOKEN};tokenEnv 與 token 同時存在時,環境變量優先。面板裏保存連接會通過 configEditor 寫回同一行 config,與手改 YAML 等價。
建議爲 token 配置最小權限,只讀場景不要授予 write:
influx auth create --org my-org --read-bucket <id> [--write-bucket <id>]
即使插件裏打開了 allowWrite,InfluxDB 仍會拒絕無寫權限的 token。
典型用法¶
- 在
connections裏配好url、org、bucket,token 優先走tokenEnv。 - 在會話中讓 Agent 調用
influx_connections(可選ping: true)確認連通性。 - 用
influx_schema摸清 measurement、field、tag,再用influx_query執行 Flux;結果受maxRows限制,超出部分會帶truncated。 - 需要起草或校驗 Flux 時,使用
influx_flux的validate、explain、template等能力。 - 必須在配置裏設
allowWrite: true後,纔可通過influx_write或面板寫入 line protocol。
側邊欄適合人工迭代:選連接、在編輯器裏寫 Flux、Ctrl/Cmd+Enter 運行,與服務端校驗配合使用。
可選:以 MCP 服務器方式使用¶
若其他 MCP 客戶端也需要同一套 InfluxDB 操作,可使用包內零依賴的 mcp-server.mjs(stdio)。步驟概要:
- 準備配置文件(可參考
mcp-config.example.json),結構與插件行config相同。 - 在 profile 的
cordis.patch.yml增加 MCP 客戶端,例如:
- id: influxdb-mcp
name: "@deepseek-ai/dsh-mcp-client"
config:
serverName: influxdb
transport: stdio
command: node
args:
- "D:/path/to/dsh-influxdb/mcp-server.mjs"
- "--config"
- "D:/path/to/dsh-influxdb/mcp-config.json"
env:
INFLUX_TOKEN: !!js process.env.INFLUX_TOKEN
- 重載後工具名形如
mcp__influxdb__influx_query。
注意:stdio MCP 是獨立進程,讀 --config 指向的文件,不會自動繼承面板裏保存的連接,兩處需分別配置。
安全邊界與已知限制¶
- 寫能力默認關閉;關閉時
influx_write返回WRITE_DISABLED,不會發請求。 - 面板 RPC
POST /influxdb/rpc只接受 loopback Origin,非本機來源返回 403。 - 查詢按
maxRows截斷並標註truncated;單單元格最長 4000 字符。插件不在日誌或工具結果中暴露完整 token;influx_connections僅返回尾號與來源。 - 僅支持 2.x 的
/api/v2/*;不支持 InfluxDB Cloud 目錄級多 org 切換——一個連接對應一個 org,跨 org 用多個連接。
插件在 當前 DSH 進程權限 下訪問你配置的 URL 與 token。安裝前建議查看 GitHub 倉庫 源碼與 MIT 許可證,確認符合你的環境策略。DSH 生態理念是「一切皆插件」;SkillHub 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
@super-ding/dsh-influxdb 把 InfluxDB 2.x 的 Flux 查詢、schema 探查、連接管理與可選寫入收進 DSH 原生工具與側邊面板,減少在會話裏拼 HTTP 的重複勞動。目錄頁:https://www.skillhub.cn/plugins/super-ding/dsh-influxdb;源碼與文檔:https://github.com/super-ding/dsh-influxdb。