本文根據 Claude Code 官方文檔《Connect Claude Code to tools via MCP》《Best practices for Claude Code》《Choose a permission mode》《Common workflows》整理,資料核對於 2026-11-05。配圖為本站整理的示意圖,不是介面截圖。本站(bigolab.com)不是 Anthropic 官方網站。
適用於誰
- 想讓 Claude Code 幫忙寫 REST 接口、數據模型、遷移腳本的後端新手或全棧開發者;
- 想讓它直接看錶結構、查數據來調試的人;
- 擔心它讀到
.env、誤改遷移文件或誤動數據庫的人。
結論先說
- 查數據庫用 MCP 伺服器,官方給的示例是 PostgreSQL 的 DBHub,並明確要求連接串裏用只讀用戶,這樣 Claude 跑的查詢改不了數據。
- 本機開發庫和脫敏數據優先。官方沒有禁止連生產庫,但本站建議別連:提示注入風險官方也提醒過,連接任何伺服器前要確認你信任它。
.env用拒絕規則(deny)擋住,官方說拒絕規則在每種權限模式下都生效,包括自動模式和bypassPermissions。- 「絕不能動」的目錄用鉤子:官方的例子就是用
PreToolUse鉤子阻止對migrations/的編輯。 - 測試需要的環境變量寫進 CLAUDE.md,這是官方點名的「Claude 讀代碼看不出來」的資訊之一。

圖:本站根據 Claude Code 官方文檔:Best practices 整理的示意圖
第一步:先把規矩寫進 CLAUDE.md
官方說,CLAUDE.md 只寫 Claude 讀代碼得不到的東西,比如集成測試需要哪個環境變量、哪個目錄看似沒用其實在用、哪些改動需要遷移評審。官方的示例風格是三段:命令、約定、坑。
提示詞 1:整理後端項目的 CLAUDE.md
text
請閱讀項目,更新 CLAUDE.md,只保留 Claude 讀代碼不容易發現的資訊:
1)安裝、啟動、跑全部測試、跑單個測試文件、運行遷移的確切命令;
2)接口的約定:路由放哪裏、請求體校驗放哪裏、統一的錯誤返回寫法;
3)數據庫相關的坑:測試需要的環境變量名(只寫變量名,不要寫值)、哪些表不能直接改、遷移怎麼評審;
4)不允許修改的目錄。
總長度不超過 80 行,先把修改後的全文給我看。
第二步:擋住密鑰
在 .claude/settings.json 裏寫權限規則。官方的示例是:
json
{
"permissions": {
"allow": ["Bash(pnpm tsc --noEmit)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)", "Read(./.env.local)", "Read(./secrets/**)"]
}
}
官方解釋了邊界:Read 拒絕規則能攔住 cat .env 這樣的常見讀文件命令,但攔不住一個自己打開該文件的腳本。如果要在操作系統層面限制文件和網絡,可以在會話裏輸入 /sandbox 打開沙箱,它會讀取你的 Read 拒絕規則。涉及密鑰的整體原則見 /guides/ai-coding-security-secrets-permissions,沙箱見 /guides/claude-code-sandbox-security。
遷移目錄屬於「零例外」的規則,官方的做法是鉤子:它甚至給了提示詞 write a hook that blocks edits to the migrations folder,生成後用 /hooks 查看結果。鉤子的寫法見 /guides/claude-code-hooks。注意官方的提醒:鉤子只用於確實沒有例外的規則,偏好類的放 CLAUDE.md 就好。
第三步:連數據庫看錶結構
官方 MCP 頁面給出的 PostgreSQL 示例如下,其中用戶名密碼要換成只讀用戶的:
bash
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
--dsn "postgresql://readonly:密碼@主機:5432/庫名"
添加後在會話裏輸入 /mcp,看 db 這一行有沒有勾。官方的提問示例包括「Show me the schema for the orders table」。MCP 的基本用法見 /guides/claude-code-mcp-setup。
有幾點要自己把關(這些是建議,不是官方逐條規定):連接串裏有密碼,別把帶密碼的配置提交進 Git;用本機或測試庫;官方提醒已連接的 MCP 伺服器會把工具名和說明放進上下文,不用的可以在 /mcp 裏關掉。
提示詞 2:用只讀帳號了解數據模型
text
通過 db 這個 MCP 伺服器,只做查詢,不要執行任何會修改數據或表結構的語句。
請列出與「訂單」相關的表,說明每張表的字段、主鍵、外鍵和索引,並畫出表之間的關係。
指出你覺得設計上有風險的地方(例如缺索引、缺約束),但先只討論,不要改任何文件。
第四步:寫接口,每次帶檢查
官方在通用工作流裏強調:描述要具體,比如用 @ 引用現有文件讓它照着風格寫,並寫明「不要引入新庫」。後端接口建議先讓它按現有一個接口的模式來寫。
提示詞 3:照現有接口寫新接口
text
請參考 @src/api/orders.ts 的寫法,新增「按用戶查詢訂單列表」的接口:支持分頁、按狀態過濾;請求參數用項目已有的校驗方式校驗;不要引入新依賴。
先在計劃模式下給我方案,包括:路由、參數、返回結構、需要的索引或遷移。我批准後再動手。
實現後補測試:覆蓋正常、參數錯誤、沒有數據、越權訪問這四種情況,並運行【測試命令】直到通過。
如果規則只對某一部分代碼有效,官方建議放進 .claude/rules/ 並用 paths: 限定,例如只對 src/api/**/*.ts 生效。官方的示例規則是請求體必須用現有 schema 校驗、每個新接口都要在 openapi.yaml 裏登記。
第五步:遷移和數據修改要有人把關
提示詞 4:寫遷移,但先不執行
text
我要給 orders 表加一個 status_updated_at 字段。
請只生成遷移文件,不要執行遷移。同時說明:1)這個遷移是否可回滾,回滾怎麼寫;2)對已有數據有什麼影響;3)上線前我需要做的檢查。
不要修改已有的遷移文件。
提示詞 5:對照規格審查
text
請用子智能體審查當前改動:1)新增的接口是否都做了登入和權限檢查;2)是否存在拼接 SQL 的寫法;3)日誌和錯誤訊息有沒有泄露敏感資料;4)遷移是否可以回滾。
只報告影響正確性或安全的問題,跳過風格問題,沒有就寫「未發現」。
關於 /code-review,見 /guides/claude-code-code-review-security-review-commands。

圖:本站根據官方文檔整理的示意圖
排查接口問題時怎麼交代資訊
官方在修復缺陷的寫法裏建議:告訴 Claude 復現問題的命令、報錯的堆棧,以及問題是偶發還是必現。後端排錯同樣適用。你可以這樣描述:請求的方法和地址、請求體示例(去掉真實用戶數據)、期望的返回、實際的返回和狀態碼、日誌裏的報錯原文。有了這些,Claude 往往能直接定位到處理函數,再通過只讀查詢對照數據庫裏的數據。如果涉及多個服務,先讓它畫出請求經過的步驟,再逐段驗證,而不是一上來就改代碼。線上日誌裏常含有用戶資訊,貼給任何外部服務之前先脫敏。
常見問題
Q:能直接讓它改線上數據庫嗎?
不建議。官方示例強調只讀用戶,改數據應由你自己評審後執行。
Q:每次運行命令都要確認,太慢?
官方有 acceptEdits 等權限模式,詳見 /guides/claude-code-permission-modes,但對數據庫、推送這類動作建議保持詢問。
訂閱和額度
後端開發的會話通常較長,建議按功能分會話。訂閱選擇見 /chongzhi/claude-code,價格和額度以官方頁面當前顯示為準。
相關教學
- /guides/claude-code-mcp-setup:MCP 怎麼配
- /guides/claude-code-hooks:鉤子
- /guides/ai-coding-security-secrets-permissions:AI 編碼的密鑰與權限
參考資料
- Claude Code 文檔:Connect Claude Code to tools via MCP — https://code.claude.com/docs/en/mcp
- Claude Code 文檔:Best practices for Claude Code — https://code.claude.com/docs/en/best-practices
- Claude Code 文檔:Choose a permission mode — https://code.claude.com/docs/en/permission-modes
- Claude Code 文檔:Common workflows — https://code.claude.com/docs/en/common-workflows
0 條評論
還沒有評論,來搶沙發~