一、为什么需要了解作用域合并
用 claude mcp add 添加 MCP Server 时,命令的 --scope 参数有 local、project、user 三个值。在添加 MCP Server 中操作过这个参数后,一个疑问很快出现:如果同一个 MCP Server 名称同时存在于多个作用域,最终生效的是哪份配置?
这个问题在单项目场景下不明显。一旦进入多项目环境——GitHub MCP 每个项目都要用、Sentry 只有后端项目需要、同事用 Linear 而你用 Jira——不理解合并规则会导致两类问题:
- 配置了 Server 却不生效——因为更高优先级的作用域中存在同名配置将其覆盖
- 以为修改了配置,实际修改的是被覆盖的低优先级版本
二、作用域合并的工作方式
三个作用域的存储位置
MCP Server 配置存储在三个独立位置,每个位置对应不同的生效范围:
Local 和 User 都写入 ~/.claude.json,但 Claude Code 内部按项目路径将它们隔离为独立的配置段。Project 写入项目根目录的 .mcp.json,可提交到版本控制供团队共享。
三个作用域的命名在历史版本中发生过变更。旧文档中的 project 对应当前的 local,旧文档中的 global 对应当前的 user。当前版本新增了 project 作用域(通过 .mcp.json 共享)。