Choosing the right file
Different customizations live in different files. The official decision table:
| You want to… | Edit | Scope |
|---|---|---|
| Give Claude project context and conventions | CLAUDE.md | project or global |
| Allow or block specific tool calls | settings.json → permissions | project or global |
| Run a script before/after tool calls | settings.json → hooks | project or global |
| Keep personal overrides out of git | settings.local.json | project only |
| Add a capability invoked with /name | skills/<name>/SKILL.md | project or global |
| Define a specialized subagent | agents/*.md | project or global |
| Orchestrate many subagents from a script | workflows/*.js | project or global |
| Connect external tools over MCP | .mcp.json | project only |
| Change how Claude formats responses | output-styles/*.md | project or global |
Check your understanding
Section titled “Check your understanding”Question 1Where do team-shared MCP servers go?
.mcp.json is project-scoped and committed; personal servers go in ~/.claude.json.
Question 2You want a personal permission that never lands in git. Where?
settings.local.json is auto-gitignored and overrides project defaults.