本文根據 Claude Code 官方《Connect Claude Code to tools via MCP》《Configure permissions》和 DBHub 官方說明整理,資料核對於 2026-11-05。配圖為本站整理的示意圖,不是介面截圖。本站(bigolab.com)不是 Anthropic 官方網站。
適用於誰
- 有業務數據庫,想用中文提問就拿到統計數字的運營、產品、創業者;
- 懂一點 SQL,想讓 Claude 幫忙寫查詢、解釋執行結果的人;
- 擔心 AI 查數據時改了數據、或者數字不對沒發現的人。
這篇只講查數據、出報表。如果你要的是寫後端接口、連庫、寫遷移,看 /guides/claude-code-backend-api-database-mcp,兩篇的連接方式相同,那篇更偏開發保護,這篇更偏分析。
結論先說
- 官方的數據庫示例是 DBHub(
@bytebase/dbhub),一個讓 Claude 通過連接串(--dsn)連關係型數據庫的 MCP 伺服器。官方要求連接串裏用只讀用戶,這樣 Claude 跑的查詢改不了數據。 - DBHub 自己說支持 PostgreSQL、MySQL、MariaDB、SQL Server、Oracle 和 SQLite,預設只提供兩個工具:執行 SQL(
execute_sql)和搜尋庫表結構(search_objects)。 - 官方給的提問示例就是日常問題:「這個月總收入多少」「給我看訂單表的結構」「找出 90 天沒有下單的客戶」。
- 輸出太大會被截。 Claude Code 官方說,MCP 工具輸出超過 10,000 個 token 時會出警告,預設最多隻收 25,000 個 token。所以讓它做彙總,別讓它把整張表拉出來。
- 數字要自己核對:讓它先講口徑,再給 SQL 和結果,並用另一種寫法交叉驗證。

圖:本站根據 Claude Code 官方文檔:MCP 整理的示意圖
第一步:連接,只讀帳號
官方示例(PostgreSQL):
bash
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
--dsn "postgresql://readonly:密碼@主機:5432/庫名"
連好後輸入 /mcp,db 這一行有勾就是伺服器啟動成功。其他數據庫只是連接串不同。DBHub 命令行文檔給出的格式是:mysql://用戶:密碼@主機:3306/庫名;SQLite 是 sqlite:///文件路徑,Windows 示例寫作 sqlite:///C:/Users/你的名字/data/database.db。把對應連接串放進上面的 --dsn 即可。這個組合是本站拼的,沒有逐個數據庫實測,連不上時看 /mcp 裏的失敗詳情。
連接串裏有密碼,所以:只讀帳號,只給報表需要的表(或視圖)的 SELECT 權限;不要把帶密碼的配置提交進倉庫,密鑰處理原則見 /guides/ai-coding-security-secrets-permissions;用本機副本或脫敏的數據做分析是最穩的。官方沒有規定不能連線上庫,但提示注入的風險官方提醒過:連接任何伺服器前確認你信任它。
DBHub 的 README 提到它自帶只讀模式、行數限制、查詢超時這類防護,具體參數名本文沒有核實,請看 dbhub.ai 的配置文檔。
第二步:先摸清數據結構
提示詞 1:用中文問表結構
text
請通過 db 伺服器,只讀地了解和訂單、用戶、支付相關的表:
1)列出每張表的字段、類型、主鍵和外鍵;
2)說明每個狀態字段有哪些取值(用查詢去重得到,不要猜);
3)指出日期字段的類型和是否帶時區;
4)說明哪些字段可能有空值。
只做查詢,不要執行任何修改數據或表結構的語句。把結果整理成一頁「數據字典」給我。
數據字典這一步容易被跳過,但它決定後面的數字對不對:狀態字段裏「已取消」「已退款」要不要算進收入,日期按哪個時區切天,這些都得先弄清。
第三步:問業務問題,先要口徑
提示詞 2:帶口徑的統計查詢
text
請統計【2026 年 10 月】每天的訂單數和成交金額,並按周彙總。
口徑:只計【已支付】訂單,不含已取消和已退款;金額單位是【元】;日期按【北京時間】切天。
請先用一句話複述你理解的口徑,再給出你要執行的 SQL,等我說「執行」以後再運行。
結果請彙總後給我,不要一次返回超過 100 行的明細。
要求「先複述口徑、先給 SQL」,等於讓 Claude 把隱含假設攤在桌面上。你可以在執行前就發現問題,比如它把退款訂單也算了進去。
限制工具範圍。 Claude Code 的權限規則支持按 MCP 工具寫規則,格式是 mcp__伺服器名__工具名,也可以用 mcp__db__* 匹配該伺服器的所有工具。想讓每次執行查詢都先問你,可以把 mcp__db__execute_sql 放進 ask 規則。這是本站按官方格式拼的,用 /permissions 確認實際效果。規則完整說明見 /guides/claude-code-permission-modes。
第四步:出報表
查詢結果出來,可以讓 Claude 直接寫成文件。
提示詞 3:生成報表文件
text
請把上面的統計結果整理成 reports/2026-10-sales.md:
1)開頭三句話總結;2)一張按周彙總的表格;3)最大的兩個異常波動日,並說明你從數據裏能看到什麼(只描述,不要編造原因);4)「口徑與限制」一節,寫明過濾條件、時區、數據截至時間。
然後換一種寫法(例如按訂單表直接彙總 vs 按明細表求和)再查一次總額,對比兩邊是否一致,不一致就在報告末尾列出差異。
「換一種寫法再查一次」是最便宜的核對辦法:兩條獨立路徑得到同一個總數,可信度高很多。Claude Code 官方最佳實踐也說,要給它一個能判斷對錯的檢查,它才能自己閉環。

圖:本站根據官方文檔整理的示意圖
彙總,不要拉明細
Claude Code 官方對 MCP 輸出的說明是:單次輸出超過 10,000 個 token 會有警告,預設上限是 25,000 個 token,可以用環境變量 MAX_MCP_OUTPUT_TOKENS 調整。輸出越大,越佔用對話上下文,也越貴。所以提問時盡量讓數據庫做彙總(GROUP BY、COUNT、SUM),明細只看前幾行樣例。如果真的要導出大批數據,更合適的辦法是用數據庫自己的導出工具,而不是讓 Claude 逐行讀。
常見問題
Q:它給的數字和我在後台看到的不一樣?
先對口徑:狀態過濾、時區、是否含稅、是否含退款。大多數差異出在這裏,而不是 Claude 算錯。
Q:能讓它順手修數據嗎?
不建議。只讀帳號本來就改不了。需要修數據時,讓它只寫出語句和影響行數的預估,由你自己評審後在數據庫工具裏執行。
Q:想畫圖表怎麼辦?
可以讓 Claude 把彙總結果存成 CSV,再按 /guides/claude-code-python-automation-script-beginner 的辦法寫腳本出圖。
訂閱和額度
數據分析會話裏表結構和結果都占上下文,按報表分會話更省。訂閱選擇見 /chongzhi/claude-code,價格和額度以官方頁面當前顯示為準。
相關教學
- /guides/claude-code-backend-api-database-mcp:寫後端接口、連數據庫
- /guides/claude-code-mcp-setup:MCP 怎麼配
- /guides/claude-code-organize-files-rename-spreadsheets:處理表格
參考資料
- Claude Code 文檔:Connect Claude Code to tools via MCP — https://code.claude.com/docs/en/mcp
- Claude Code 文檔:Configure permissions — https://code.claude.com/docs/en/permissions
- DBHub 倉庫 — https://github.com/bytebase/dbhub
- DBHub 文檔:Command-Line Options — https://dbhub.ai/config/command-line
0 條評論
還沒有評論,來搶沙發~