跳到主要内容

个性化设置

概述

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"
githubGitHub 集成"github"
filesystem文件系统操作"filesystem"
brave-search网页搜索"brave-search"
puppeteer浏览器自动化"puppeteer"

沙盒模式

1. 启用沙盒

{
"sandbox": {
"enabled": true,
"autoAllowBashIfSandboxed": true
}
}

2. 沙盒优势

  • 安全性:在隔离环境中运行命令
  • 自动批准:沙盒内的 bash 命令自动执行
  • 干净环境:避免影响主系统

配置文件位置

配置文件优先级(从高到低)

  1. 命令行参数
  2. 项目本地设置.claude/settings.local.json
  3. 项目共享设置.claude/settings.json
  4. 用户全局设置~/.claude/settings.json
  5. 企业设置:管理员配置

项目级配置示例

创建 .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. 权限问题

如果工具无法自动运行:

  1. 检查 settings.json 语法
  2. 确认工具名称正确
  3. 验证权限规则格式

2. MCP 服务器问题

如果 MCP 服务器无法连接:

  1. 运行 --mcp-debug 查看日志
  2. 检查服务器配置
  3. 确认网络连接

3. 配置冲突

如果配置不生效:

  1. 检查配置文件优先级
  2. 确认文件位置正确
  3. 验证 JSON 格式

总结

通过合理配置权限和 MCP 服务器,你可以:

  1. 提升效率:减少手动确认步骤
  2. 保障安全:控制工具使用范围
  3. 定制体验:打造专属工作流
  4. 团队协作:统一开发规范

记住,配置应该随着项目需求和团队习惯不断调整优化。

相关资源