快一點,也安心一點

你說目標,Agent 完成。
資料安全交給 dbcli。

從分析到互動式報表,Agent 有效率地把資料任務做完;dbcli 全程確認結構、保護敏感資料並守住操作界線。

對話示意 · 你與 Agent

找出本月流失最多的方案,整理成圖表。
完成。企業方案流失率上升 8.4%,並已產生可分享報表。

dbcli 在背後

  • 確認實際資料結構
  • 隱藏敏感欄位
  • 限制查詢範圍
  • 驗證結果並留下紀錄

真實工作流

一句需求,走完五道可靠步驟

Agent 不靠猜測直接碰資料。dbcli 把結構確認、防護、執行與驗證串成可重複的流程。

描述成果

用自然語言說明你想回答的問題與交付形式。

你的需求

確認結構

先讀實際 schema,避免猜錯欄位或資料型別。

schema

套用防護

套用黑名單、權限層級與查詢筆數限制。

blacklist · permission

執行與驗證

執行查詢、檢查結果;錯誤時取得引導式修復方案。

query · recover

交付結果

把結論整理成可分享、可互動的報表。

query --ui
看看 Agent 背後執行了什麼
dbcli blacklist list
dbcli schema subscriptions --format json
dbcli query "WITH months AS (SELECT date_trunc('month', CURRENT_DATE) AS month_start UNION ALL SELECT date_trunc('month', CURRENT_DATE) - INTERVAL '1 month'), rates AS (SELECT m.month_start, s.plan, COUNT(*) FILTER (WHERE s.cancelled_at >= m.month_start AND s.cancelled_at < m.month_start + INTERVAL '1 month')::numeric / NULLIF(COUNT(*) FILTER (WHERE s.created_at < m.month_start AND (s.cancelled_at IS NULL OR s.cancelled_at >= m.month_start)), 0) * 100 AS churn_rate FROM months m CROSS JOIN subscriptions s GROUP BY m.month_start, s.plan), compared AS (SELECT plan, churn_rate, LAG(churn_rate) OVER (PARTITION BY plan ORDER BY month_start) AS previous_rate, month_start FROM rates) SELECT plan, ROUND(churn_rate, 1) AS churn_rate_pct, ROUND((churn_rate - previous_rate) / NULLIF(previous_rate, 0) * 100, 1) AS increase_pct FROM compared WHERE month_start = date_trunc('month', CURRENT_DATE) ORDER BY increase_pct DESC" --recovery --ui
dbcli recover

效率,不省略必要步驟

把來回操作,收斂成一次交付

01

一個請求走完整條流程

從查詢、分析到報表交付,不必逐條指揮 Agent。

task workflow
02

重用結構與查詢知識

先確認 schema,再發現並重用團隊保存的查詢片段。

schema · queries
03

診斷後直接交付

錯誤有復原指引,成功結果可轉成互動式報表。

recover · query --ui

分層防護

安全不是一句保證,而是每一步的界線

憑證隔離

Agent 使用固定連線設定,不必讀取或輸出資料庫密碼。

profile

敏感資料黑名單

欄位與資料表在查詢前就受保護,避免敏感內容外洩。

blacklist

操作權限與預覽

權限層級限制可做的事;寫入前可先用 dry-run 檢查。

permission · --dry-run

驗證、復原與稽核

驗證結果、提供安全修復方案,並保留操作紀錄。

verify · recover · audit
實錄:一個 Claude Code agent 透過 dbcli 處理同時要讀與寫的請求。查詢結果自動略去黑名單欄位,寫入因連線是 query-only 被拒,agent 沒有替自己提高權限。等待段落已加速,安全提示處短暫停格。

你的工具,照常使用

一套工作流,接上常用資料庫與 Agent

資料庫

PostgreSQLMySQLMariaDB MongoDBRedisElasticsearch

AI Agent

Claude CodeCodexCursor Gemini CLIGitHub CopilotOpenCode Antigravity

Quickstart

把 dbcli 放進 Agent 的工具箱

Plugin/Skill 是最直接的 Agent 整合方式;若想先使用 CLI,也可以單獨初始化。

建議路線 · Plugin/Skill

直接安裝完整操作指引

Claude Code 可從 marketplace 安裝 plugin;Codex 可在 CLI 初始化後安裝 skill。

/plugin marketplace add CarlLee1983/dbcli
/plugin install dbcli@carllee1983-dbcli
dbcli skill --install codex

Skill 也支援 Claude Code、Cursor、GitHub Copilot、Gemini CLI、Antigravity 與 Windsurf。OpenCode 可搭配使用,但目前沒有專用 selector;請勿套用其他平台的安裝命令。

次要路線 · CLI

先建立連線設定

使用 bunx 執行初始化精靈;之後 Agent 可透過 skill 使用相同的安全工作流。

bunx @carllee1983/dbcli init

完成初始化後,再依使用的 Agent 安裝對應整合;完整平台說明請見使用者文件。

FAQ

常見問題

我不會寫 SQL,這工具跟我有關嗎?

正是為你設計的。你用自然語言請 Agent 處理資料,dbcli 讓 Agent 先用 schema 確認真實結構,再重用 saved queries 與 task packs 的專家查詢;你不必讀懂中間的 SQL,只需要檢查結果。

Agent 會不會不小心刪掉我的資料?

預設權限是 query-only,連 INSERT 都做不了。就算你開到 data-admin,DELETE 仍強制要求 WHERE 條件、建議先 dry-run,且等值限制讓「一句掃全表」在語法層就被擋下。DDL 更要 admin + --execute + DROP 加 --force 三重確認。

支援哪些資料庫?

支援 MySQL、PostgreSQL、MariaDB、MongoDB、Redis 與 Elasticsearch。同一專案可設定多條具名連線(例如 staging、production 或不同租戶),各自使用獨立憑證、權限與 schema 快取。

跟直接使用 MCP database server 有什麼不同?

dbcli 把權限與資料防護內建在資料庫操作層:憑證隔離、blacklist 遮罩、權限分級、dry-run、audit 與 recovery 都可直接使用。它不綁定單一 Agent 協定或編輯器,人類也能在終端機使用同一套工作流。當 MCP server 的對話式介面與政策模型已滿足需求時,可直接使用 MCP;完整取捨請見圖解工具選擇指南。

團隊要怎麼協作?

Saved queries 可放進 .dbcli-shared/ 並透過 git 與團隊共享;憑證可使用 --use-env-refs,讓每位成員與每條 CI pipeline 使用自己的環境變數,repository 不必保存明文密碼。

dbcli 會把我的資料庫密碼交給 Agent 嗎?

不會。dbcli 透過連線設定隔離憑證,Agent 使用固定的 dbcli 命令,不需要讀取或回傳密碼。

它只能讀取資料嗎?

不是。可用操作取決於設定的權限層級;寫入工作流可先 dry-run 預覽,再由明確授權執行。

Plugin 和 skill --install 該選哪個?

支援 plugin marketplace 的 Agent 可優先選 Plugin,安裝與更新更集中;已全域安裝 dbcli,或偏好 repo/使用者層級指引時,使用 dbcli skill --install <platform>。

查詢出錯時,Agent 會自己亂試嗎?

工作流會先確認 schema。若帶有 recovery 的命令失敗,dbcli 會產生修復計畫,讓 Agent 查看並只套用安全的修復步驟。