Claude Code project 設定點先穩陣:權限、model 同 MCP 要逐個收窄
3C 產品

Claude Code project 設定點先穩陣:權限、model 同 MCP 要逐個收窄

圖片:via XDA Developers — https://www.xda-developers.com/claude-code-settings-always-change-depending-on-the-project/
TechLab 編輯部(譯)·

權限、model、MCP trust 三樣先定好,project 先唔會越用越亂

預設值夠開工,但唔夠長期用

XDA Developers 呢篇文表面係作者每開新 project 會改四樣 Claude Code setting:permission mode、deny rules、model 同 effort。拎返開發現場睇,重點落喺另一度:Claude Code 已經由聊天框變成會讀 repo、改 file、跑 command、接 MCP 工具嘅 agent;用預設值開始可以,長期拎嚟做真 project,就要先講清楚邊啲嘢可以自動做,邊啲一定要停低畀人睇。

先分清 settings 放邊度

官方 docs 而家話設定有 Managed、User、Project、Local 四層,優先次序係 Managed 最高,跟住 command line、Local、Project、User。呢個排序好實際:公司 IT 可以用 Managed 鎖死政策;團隊可以喺 .claude/settings.json 放共用 permission、hook、MCP;自己部機或自己習慣就放 .claude/settings.local.json,呢份 file 由 Claude Code 建立時會自動 gitignore。最易出事係拎個人方便當團隊規則,例如你想自動批 npm run test OK,但同事可能用另一套 script,呢啲就應該留喺 local,等 project settings 淨係放大家都承受得到嘅限制。

權限唔好靠 prompt 管

Claude Code 官方 permission docs 講得幾白:prompt 或 CLAUDE.md 只會影響 Claude 想點做,唔會改 Claude Code 實際批唔批工具。讀 file、grep 呢類 read-only 通常唔問你;會改 file、跑 Bash command,就視乎 permission rules 同 mode。allowaskdeny 入面,判斷次序係 deny、ask、allow,第一個 match 就算數。即係你喺任何一層 deny 咗 Bash(git push *),其他地方再 allow 都救唔返,呢點令 team setting 值得落 repo。

實務上,我會分三種情況睇 mode。新 repo 或大改動先用 plan,畀佢讀 code 同跑 read-only command,改 file 前先講方案;日常細改可以用 acceptEdits,但只畀 working directory 入面嘅改動同常見 filesystem command 自動過;auto 雖然官方話會做背景安全檢查,但仍係 research preview,唔好一開就畀晒 CI secret、deploy script、cloud CLI。至於 bypassPermissions,官方警告都寫到明,應該留畀 container 或 VM 呢類隔離環境。

Deny rules 先寫敏感嘢

一個 repo 起手,先寫 deny rules 會乾淨過先狂 allow。.env.env.*secrets/** 呢類唔應該入 context 嘅 file,直接用 Read(./.env)Read(./.env.*)Read(./secrets/**) 擋住;唔想 Claude 自己推 branch,就 deny Bash(git push *);唔想佢自己上網拉 script 或撞到 prompt injection,Bash(curl *)Bash(wget *) 都值得諗。官方 docs 亦提醒,Read/Edit deny 主要管 Claude Code built-in 工具同佢識得辨認嘅 shell 讀寫,隨便一段 Python 或 Node script 入面自己開 file,最好再用 sandbox 或 container 隔多層。

Model 同 effort 係成本設定

大 model 未必每次抵用。官方 model config 而家有 fableopussonnethaikuopusplan 呢啲 alias:Fable 5 走長時間自主工作,Opus 俾複雜推理,Sonnet 做日常 coding,Haiku 做簡單快改,opusplan 就喺 plan mode 用 Opus、落手寫 code 時轉 Sonnet。/model 可以即場轉,亦可以寫入 settings;但 alias 會跟 provider 推薦版本變,team 如果怕一夜之間成本或行為變咗,應該 pin full model ID 或用 Managed settings 限住可揀 model。

/effort 其實係另一個控制成本同速度嘅設定。官方 docs 寫明 effort level 控制 adaptive reasoning,lowmediumhighxhighmax 會喺速度、token 同推理深度之間取捨;多數 coding 預設係 highmax 可能有幫助,但亦容易過度思考同燒 token。好用嘅做法係:大型 refactor 或追 intermittent bug 先拉高,普通 rename、format、補 test 留返低 effort。單次難題可以喺 prompt 入面放 ultrathink,官方話其他「think harder」類字眼只係普通文字,唔會觸發呢個捷徑。

MCP 係工具入口,裝之前要當權限處理

MCP 最容易俾人低估,因為睇落似 plugin,實際係額外工具同外部 data source 入口。官方 MCP docs 提醒,連 server 前要確認信任,特別係會 fetch 外部內容嘅 server,有 prompt injection 風險。scope 亦要分清:local MCP 預設只喺而家 project,存喺 ~/.claude.json;project MCP 先放 .mcp.json 同 team 分享;user MCP 先跨 project。project-scoped server 第一次會 pending approval,cloned repo 亦唔可以靠自己 committed setting 幫自己 approve,呢個設計就係防 repo 一打開就接咗唔知咩工具。

真係要共用 MCP,就將 server config 同 credential 分開諗。.mcp.json 可以畀 team 有同一個 GitHub、Jira 或 database tool 名,但 token、OAuth 同 headersHelper 唔應該直接入 repo;要批嘅 tool 用 ask,未審過嘅 server 甚至可以先用 deny 鎖住 mcp__*,逐個 server開。MCP server 作者亦可以用 anthropic/requiresUserInteraction 標記高風險 tool;就算用緊 acceptEditsautobypassPermissions,都要先問人。呢類設定可以睇到個 server 有冇認真處理安全。

我會點樣擺一套乾淨設定

如果要畀一個乾淨架構,我會咁擺:~/.claude/settings.json 放個人 global 偏好,例如 theme、常用 model 或自己信得過嘅 user MCP;repo 入面 .claude/settings.json 放團隊限制,例如 permissions.deny.envgit push、deploy command,同埋 project 共用 hook;.claude/settings.local.json 放自己先用嘅 allow rules、臨時 model、實驗 MCP。公司環境就再用 Managed settings 鎖住 availableModelsdisableBypassPermissionsMode、MCP allowlist。咁分之後,Claude Code 會變成一個可控開發工具,唔會變成每個人各有一套神秘習慣,亦少咗機會漏入 repo。

XDA 呢篇最有用嘅提醒,其實係每個 project 都應該重新睇設定。AI coding assistant 嘅風險唔止寫錯 code,仲包括自動批錯 command、讀到 secret、接錯 MCP tool、用錯 model 燒 quota。開始新 repo 前,花 10 分鐘開 /permissions/model/mcp/config 睇一次,平過事後執爛攤子好多。


參考來源

本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。

分享:WhatsAppThreadsTelegramFacebook