深度

Claude Code 团队协作安全实践:MCP 服务器审批机制与工作区信任详解

Claude Code v2.1.196 起引入的 MCP 服务器审批机制,确保克隆仓库无法自动获得已提交的 MCP 服务器信任。本文详解工作区信任模型如何防止供应链投毒攻击,并提供团队 Onboarding 安全检查清单。

2026/7/64分钟 阅读ClaudeEagle

当 Claude Code 从个人工具升级为团队协作平台时,安全边界的设计变得至关重要。本文聚焦 Claude Code 在团队场景下的两个关键安全机制:MCP 服务器审批流程工作区信任模型,帮助团队在享受自动化便利的同时不引入供应链风险。

问题的根源:克隆的仓库不该自动获得权限

设想这样一个场景:你的团队在 .claude/settings.json 中提交了一个 MCP 服务器配置,并设置了 enableAllProjectMcpServers: true。如果这个仓库被克隆到一台新机器上,Claude Code 不应该自动信任并连接这个 MCP 服务器——因为攻击者完全可以 fork 一个恶意仓库,在 .claude/settings.json 里塞入一个指向恶意服务器的配置,诱导受害者克隆并直接获得工具执行权限。

Claude Code 的解决方案:工作区信任 + 审批状态

v2.1.196 起,Claude Code 引入了明确的信任边界:

bash
# 查看当前项目的 MCP 服务器状态
claude mcp list

# 待审批的服务器会显示为:
⏸ Pending approval

# 已拒绝的服务器会显示为:
✗ Rejected

核心规则claude mcp listclaude mcp get 只从未提交到仓库的设置文件中读取 .mcp.json 的审批状态。也就是说:

✅ 有效的审批来源: - 本地未提交的 .claude/settings.local.json - 用户级 ~/.claude/settings.json - 你手动在交互式会话中批准的记录 ❌ 无效的审批来源(在不受信任的目录中): - 提交到仓库的 .claude/settings.json 中的 enableAllProjectMcpServers - 提交到仓库的 .claude/settings.json 中的 enabledMcpjsonServers

如何建立工作区信任

bash
# 1. 在项目目录中交互式运行 claude
cd my-project
claude

# 2. 首次运行时会弹出工作区信任对话框
# 阅读并确认该目录是可信的

# 3. 确认信任后,审查待批准的 MCP 服务器
/mcp

# 4. 逐个批准需要的服务器

重要:只有当你主动完成了工作区信任流程,仓库提交的 MCP 服务器审批配置才会生效。一个克隆下来但从未被你交互式打开过的仓库,其 MCP 服务器会一直停留在 ⏸ Pending approval不会被连接,也不会被健康检查

团队推荐实践

1. 仓库中只提交「意图」,不提交「自动批准」

json
// .claude/settings.json(提交到仓库,团队共享)
{
  "enabledMcpjsonServers": ["jira", "sentry"]
}

这只是声明「这个项目建议使用哪些 MCP 服务器」,真正的连接仍需每个开发者在自己机器上完成工作区信任 + 手动审批。

2. 新成员 Onboarding 检查清单

bash
# 新成员加入项目后应执行的步骤
git clone <repo>
cd <repo>
claude              # 触发工作区信任对话框,确认信任
/mcp                # 查看待审批的 MCP 服务器列表
# 逐个审查每个服务器的 URL/命令是否符合预期,再批准

3. 结合参数级权限控制加固

配合 Claude Code Week 25 引入的参数级权限规则,进一步限制敏感操作:

json
{
  "permissions": {
    "deny": [
      "Agent(model:opus)"
    ],
    "ask": [
      "Bash(git push*)"
    ]
  }
}

为什么这套机制值得信赖

这套「工作区信任 + 本地审批状态不可通过仓库提交绕过」的设计,本质上解决了供应链投毒的问题:即使攻击者完全控制了仓库内容,也无法让受害者的 Claude Code 在毫无察觉的情况下连接恶意 MCP 服务器——审批这一步骤永远需要人在本地机器上主动确认。

总结

Claude Code 的 MCP 审批机制体现了「Trust but Verify」的安全设计理念:团队可以在仓库中共享 MCP 配置意图,但实际的信任决策——是否连接、是否执行——始终掌握在每个使用者手中,不会因为克隆了一个仓库就被动继承风险。对团队负责人来说,在 Onboarding 流程中加入「审查待批准 MCP 服务器」这一步,是值得强调的安全实践。


来源:Connect Claude Code to tools via MCP — Anthropic 官方文档

相关文章推荐

深度Claude Code 安全最佳实践:团队项目权限管理与敏感信息防泄漏Claude Code 安全使用完整指南:权限最小化配置(allow/deny 规则)、环境变量与密钥安全管理、CLAUDE.md 安全策略、企业团队管控配置(managed-settings.json)、CI/CD 密钥保护、防止敏感信息泄漏的 10 个规则。2026/3/15深度Claude Code MCP OAuth 与自托管 Runner 连接性修复合集:从重定向 URI 到网关空闲超时汇总 Claude Code v2.1.229 中一组长连接与自托管部署相关的修复:MCP OAuth 重定向 URI 兼容性、SSE keepalive 防网关空闲超时、自托管 Runner 的 Git 凭据卡死、容器 CPU 限制误读等问题详解。2026/8/13深度Claude Code 沙箱凭据保护体系再升级:v2.1.224 拒绝规则绕过漏洞与实践检查清单Claude Code v2.1.224 修复沙箱文件系统拒绝规则(denyRead 带结尾斜杠)在 Linux/macOS 上可被静默绕过的问题,提供实用的沙箱配置自检清单。2026/8/10深度Claude Code 沙箱凭据保护完全指南:从明文拒绝到 JWT 感知脱敏的演进之路梳理 Claude Code 沙箱凭据保护体系的四种模式——结构化脱敏、JWT 感知脱敏、AWS SigV4 重签名、文件级哨兵替换,帮你选择适合的安全策略。2026/8/7深度Claude Code v2.1.207 安全深度解析:插件 headersHelper Shell 注入漏洞修复始末深度解析 Claude Code v2.1.207 修复的插件系统 Shell 注入漏洞:${user_config.*} 在 Shell 形式命令中被拒绝,Hooks 需改用 exec 形式或环境变量,Monitors 和 headersHelper 需在脚本内部读取配置。同步解析关联的 pluginConfigs 读取来源收紧措施。2026/7/11深度Claude Code 安全强化速览:Auto Mode 防误删、后台通知防伪造双重防线解析深度解析 Claude Code v2.1.205 两项容易被忽略但意义重大的安全强化:Auto Mode 对变量值不明的 rm -rf 命令先询问再执行,以及后台任务通知明确标注「无真实人工输入」防止伪造批准被误信。分析两者背后共同的「默认保守」设计哲学。2026/7/10