个性化设置
概述
Claude Code 提供了丰富的自定义选项,允许你配置工具权限、MCP 服务器和自动化规则,打造最适合你工作流程的 AI 编程助手。
权限配置
1. 配置允许的工具
在 settings.json 文件中设置 permissions.allow,让特定工具无需确认即可运行:
{
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test:*)",
"Bash(git status)",
"Bash(git add .)",
"Read(~/.zshrc)",
"Read(./config/*.json)",
"WebFetch",
"WebSearch"
]
}
}
2. 权限规则格式
Bash(command)- 允许特定命令Bash(prefix:*)- 允许前缀匹配的所有命令Read(path)- 允许读取特定文件Read(pattern)- 允许读取匹配模式的文件mcp__server__tool- 允许特定的 MCP 工具
3. 常用权限配置示例
开发者常用配置
{
"permissions": {
"allow": [
"Bash(npm:*)",
"Bash(yarn:*)",
"Bash(git:*)",
"Bash(python -m pytest)",
"Bash(flake8)",
"Read(**/*.py)",
"Read(**/*.js)",
"Read(**/*.ts)"
]
}
}
数据科学家配置
{
"permissions": {
"allow": [
"Bash(jupyter:*)",
"Bash(python:*)",
"Bash(pip:*)",
"Bash(conda:*)",
"Read(**/*.ipynb)",
"Read(**/*.csv)",
"Read(**/*.json)"
]
}
}
MCP 服务器配置
1. 启用项目 MCP 服务器
方法一:启用所有项目 MCP 服务器
{
"enableAllProjectMcpServers": true
}
方法二:启用特定 MCP 服务器
{
"enabledMcpServers": ["memory", "github", "filesystem", "brave-search"]
}
2. MCP 服务器自动批准
配置自动批准特定 MCP 服务器的所有工具:
{
"mcpAutoApprove": {
"memory": true,
"github": true,
"filesystem": false
}
}
3. 常用 MCP 服务器
| 服务器 | 功能 | 配置示例 |
|---|---|---|
| memory | 会话记忆存储 | "memory" |
| github | GitHub 集成 | "github" |
| filesystem | 文件系统操作 | "filesystem" |
| brave-search | 网页搜索 | "brave-search" |
| puppeteer | 浏览器自动化 | "puppeteer" |
沙盒模式
1. 启用沙盒
{
"sandbox": {
"enabled": true,
"autoAllowBashIfSandboxed": true
}
}
2. 沙盒优势
- 安全性:在隔离环境中运行命令
- 自动批准:沙盒内的 bash 命令自动执行
- 干净环境:避免影响主系统
配置文件位置
配置文件优先级(从高到低)
- 命令行参数
- 项目本地设置:
.claude/settings.local.json - 项目共享设置:
.claude/settings.json - 用户全局设置:
~/.claude/settings.json - 企业设置:管理员配置
项目级配置示例
创建 .claude/settings.json:
{
"permissions": {
"allow": [
"Bash(npm run dev)",
"Bash(npm run build)",
"Bash(npm run test)"
]
},
"enabledMcpServers": ["memory"],
"sandbox": {
"enabled": true,
"autoAllowBashIfSandboxed": true
}
}
使用 /allowed-tools 命令
在 Claude Code 中运行交互式工具管理:
/allowed-tools
功能包括:
- 浏览所有可用工具
- 安装/卸载 MCP 服务器
- 启用/禁用特定工具
- 查看工具详细信息
企业级配置
管理员配置
{
"allowedMcpServers": [
{ "serverName": "github" },
{ "serverName": "memory" }
],
"deniedMcpServers": [
{ "serverName": "filesystem" }
],
"permissions": {
"allow": [
"Bash(git status)",
"Bash(git diff)"
],
"deny": [
"Bash(rm -rf)",
"Bash(sudo)"
]
}
}
高级配置
1. Hooks 配置
在 settings.json 中配置 Hooks:
{
"hooks": {
"preToolUse": {
"Bash": "echo '即将执行: {command}'"
},
"postToolUse": {
"Bash": "echo '命令执行完成'"
}
}
}
2. 自动格式化
配置自动运行格式化工具:
{
"hooks": {
"postToolUse": {
"Edit": "npm run format"
}
}
}
3. 通知配置
{
"hooks": {
"notification": {
"onError": "send-notification {error}"
}
}
}
最佳实践
1. 渐进式权限配置
从最小权限开始:
{
"permissions": {
"allow": ["Bash(git status)", "Read(*.md)"]
}
}
根据需要逐步增加:
{
"permissions": {
"allow": [
"Bash(git:*)",
"Bash(npm run test)",
"Read(**/*.{js,ts,json,md})"
]
}
}
2. 环境分离
- 开发环境:较宽松的权限
- 生产环境:严格的权限控制
- 测试环境:自动化测试权限
3. 定期审查
- 每月审查权限配置
- 移除不再需要的权限
- 更新 MCP 服务器列表
故障排除
1. 权限问题
如果工具无法自动运行:
- 检查
settings.json语法 - 确认工具名称正确
- 验证权限规则格式
2. MCP 服务器问题
如果 MCP 服务器无法连接:
- 运行
--mcp-debug查看日志 - 检查服务器配置
- 确认网络连接
3. 配置冲突
如果配置不生效:
- 检查配置文件优先级
- 确认文件位置正确
- 验证 JSON 格式
总结
通过合理配置权限和 MCP 服务器,你可以:
- 提升效率:减少手动确认步骤
- 保障安全:控制工具使用范围
- 定制体验:打造专属工作流
- 团队协作:统一开发规范
记住,配置应该随着项目需求和团队习惯不断调整优化。