Claude Code 与 Cursor 的 MCP 对照:配置位置、作用域与企业侧接管
给一个团队铺 MCP,最先卡住的往往不是「接哪个服务器」,而是三个更琐碎的问题:配置写在谁的机器上、同名条目以谁为准、安全团队想拦时从哪个入口拦。这三件事 Claude Code 和 Cursor 的官方文档都写得挺具体,但落点不同——一边把企业策略压在本机系统路径上,一边放在云端控制台里。只看「两边都支持 MCP」,这层差异要等推广到第二十个人时才暴露。
下面只对照两边文档都白纸黑字写明的部分。有一方查不到的维度,我会直接说不比。
先把配置位置摆平
Claude Code 官方文档《Connect Claude Code to tools via MCP》给出三个安装作用域,存放在两个文件里:
| 作用域 | 加载范围 | 是否随团队共享 | 存放位置 |
|---|---|---|---|
local(默认) | 仅当前项目 | 否 | ~/.claude.json |
project | 仅当前项目 | 是,随版本控制 | 项目根目录的 .mcp.json |
user | 你的所有项目 | 否 | ~/.claude.json |
文档特别提醒,MCP 的「local scope」和一般意义上的本地设置不是一回事:MCP 的 local 作用域落在 ~/.claude.json,而通常说的本地设置在项目目录的 .claude/settings.local.json。这个命名重叠很容易读错,值得多看一眼。
Cursor 官方文档《Model Context Protocol (MCP)》给的是两个位置:项目内的 .cursor/mcp.json,以及主目录下的 ~/.cursor/mcp.json。帮助中心的《MCP integrations》页把用途说得更直白:项目级那份「commit 到 git,队友就拿到同一套工具」,全局那份是个人跨项目用的。
也就是说,「随仓库走」和「跟着人走」这两类需求两边都覆盖到了。差别在于 Claude Code 把「只在这个项目里、但不进版本库」单独列成了一个作用域(local),而 Cursor 文档里我们没有找到与之对应的第三个位置。
同名冲突:一个说合并,一个说不合并
这是两边措辞差最明显的一处,也是最容易在排查阶段浪费时间的地方。
Cursor 帮助中心写明:两个文件是合并的,同一个服务器名在两处都出现时,项目级配置优先。
Claude Code 文档写的是另一种口径:同一个服务器在多处定义时,只按最高优先级的那个来源连接一次,该来源的整条服务器条目被采用,字段不跨作用域合并。优先级顺序文档也列了出来,从高到低是 local 作用域、project 作用域、user 作用域、plugin 提供的服务器、claude.ai 连接器,共五级。前三级按名字匹配重复项,后两级则按端点匹配——指向同一个 URL 或同一条命令的,会被当成重复。
这个差别在什么时候咬人:你在全局配置里给某个服务器加了一个 env 变量,又在项目配置里写了同名条目但没带这个变量。按 Claude Code 文档的说法,整条被替换,那个变量不会被继承下来。Cursor 侧文档只说了文件合并与同名时项目级优先,没有细到字段层面,所以字段级行为这一点我们在 Cursor 的文档里没有找到对应说明,不比。
项目级配置进来时,谁来把门
.mcp.json 这类随仓库走的配置有个天然风险:克隆下来的仓库会带着别人写的服务器定义。
Claude Code 文档对此写得比较细:出于安全原因,交互式会话在使用 .mcp.json 里的项目级服务器之前会提示审批,重置这些审批选择的命令是 claude mcp reset-project-choices。文档还写明,从 v2.1.196 起,claude mcp list 与 claude mcp get 只从未被检入仓库的设置文件里读取 .mcp.json 的审批结果,除非你在这个目录里跑过 claude 并接受了工作区信任对话框;一个克隆下来的仓库不能自己批准自己的服务器,提交在项目 .claude/settings.json 里的 enableAllProjectMcpServers 或 enabledMcpjsonServers 在未信任的目录里会被忽略,服务器停在 ⏸ Pending approval。
同时文档也明确了几种拿不到这个提示的场景:claude -p 运行、Agent SDK 会话和云端会话都显示不了审批提示,项目级服务器在那里会直接加载。要挡住就得靠 disabledMcpjsonServers,它在所有模式下都生效。
Cursor 侧,官方文档把 .cursor/mcp.json 的用法写成「提交到 git,队友获得同一套工具」,我们在其 MCP 文档与帮助中心页里没有找到对应的项目级服务器审批机制的说明,所以这一维度只能陈述 Claude Code 单侧的事实,不做对照。
企业侧接管:一个压在本机,一个放在控制台
这是本篇最实的一处差异。
Claude Code 的企业接管入口是一个叫 managed-mcp.json 的独立文件。官方文档《Control MCP server access for your organization》写明,部署了这个文件之后,Claude Code 只加载这个文件里定义的服务器,外加 VS Code 扩展在自己启动的会话里的那个进程内服务器;用户不能添加、修改或使用其它任何 MCP 服务器,包括 plugin 提供的服务器和用 --mcp-config 传入的服务器。要把 MCP 关到只剩上述那个例外,就部署一个空的服务器映射:
{
"mcpServers": {}
}
关键在于它的投递方式。文档明说这是一个独立文件,不能通过服务端托管设置下发,任何有管理员权限、能写系统路径的进程都可以部署它,规模化时通常靠设备管理工具,例如 macOS 上的 Jamf 或配置描述文件、Windows 上的组策略或 Intune。三个平台的读取路径分别是:
| 平台 | 路径 |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/managed-mcp.json |
| Linux 与 WSL | /etc/claude-code/managed-mcp.json |
| Windows | C:\Program Files\ClaudeCode\managed-mcp.json |
Windows 侧还有两处细节值得单独记下。其一,Claude Code 文档写明 ~/.claude.json 在 Windows 上解析到 %USERPROFILE%\.claude.json。其二,允许/拒绝名单里的条目会做 ${VAR} 展开,文档提示在 Windows 上要引用那里确实存在的环境变量,例如用 ${USERPROFILE} 而不是 ${HOME};文档同时建议,真正用于强制的条目最好写字面量 URL 与命令。Cursor 的配置插值文档列的是 ${env:NAME}、${userHome}、${workspaceFolder} 这类与平台无关的写法,其文档里我们没有找到 Windows 具体路径形式的说明。
除此之外还有一套过滤设置:allowedMcpServers 与 deniedMcpServers 可以按 serverUrl、serverCommand、serverName 三种键匹配。文档给了一条很值得抄下来的警告:serverName 不是安全控制,因为那只是用户自己起的标签,用户可以把任何服务器叫做 github;要真正约束跑起来的是什么,得用 serverCommand 或 serverUrl。评估顺序文档也写死了三步:先合并各来源的名单,再查拒绝名单(拒绝命中不可被覆盖),最后查允许名单。
Cursor 的入口在控制台。官方文档《Model Context Protocol (MCP)》的 Enterprise admin controls 一节写明,MCP 的分发与 MCP 策略是分开配置的:团队管理员在 Dashboard > Integrations & MCP 下配置共享的 Team MCP 服务器,企业管理员则在 Team Settings > MCP Configuration 里配置团队可以运行哪些服务器和工具。文档同时强调,允许名单只是批准一个 MCP 配置,它不负责分发或安装服务器——这一点和 Claude Code 文档里「允许/拒绝名单不是注册表,服务器仍然要先被用户、plugin 或 managed-mcp.json 添加进来」的说法是一致的。
Cursor 的允许名单分成三类条目:命令条目按命令模式批准本地 stdio 服务器,URL 条目按 URL 模式批准远程 HTTP/SSE 服务器,工具允许名单则限制某个已批准服务器里哪些工具可以自动运行,留空表示该服务器的所有工具都允许。
差异落在哪里:Claude Code 的强制力依附于你能不能往每台机器的系统路径写文件——没有 MDM、组策略这类下发通道,这条路基本铺不开;而 Cursor 把这层放在了云端控制台,代价是它绑定在团队/企业账号体系上。两条路的落地前提不同:一条要求你能往终端写文件,一条要求你的人都在同一个团队/企业账号下。选型时值得先问自己:我的组织是终端管控强,还是账号管控强。
用户还能不能自己加服务器
两边都留了口子,但语义不同。
Claude Code 文档写明,如果不设 allowManagedMcpServersOnly,各个设置来源的允许名单会合并,包括用户自己的 ~/.claude/settings.json,也就是说用户能把你的允许名单放宽;拒绝名单则无论如何都从所有来源合并。要让托管的允许名单成为唯一权威,需要在托管设置里这样写:
{
"allowManagedMcpServersOnly": true,
"allowedMcpServers": [
{ "serverUrl": "https://api.githubcopilot.com/*" },
{ "serverUrl": "https://*.internal.example.com/*" }
]
}
以上为按官方文档中的参数语义组合的示例,未经实测,以官方文档与 --help 的实际输出为准。
Cursor 侧对应的是 User MCP extensions:文档写明管理员可以允许用户配置管理员定义的命令或 URL 模式之外的服务器,对于不匹配管理员模式的用户 MCP,可以用 User MCP Network Denylist 拦截匹配的网络目的地。
顺带一提出站网络:Cursor 文档给本地命令类 MCP 服务器列了四档 per-server network mode——Allow all、Allowlist、Deny all、No sandbox(最后一档明确写着不做命令与网络的 sandbox)。Claude Code 的 MCP 与托管 MCP 两页里我们没有找到 per-server 出站网络模式的对应说明,这一维度不比。
传输方式上的一处口径差
Claude Code 文档在 SSE 一节挂了警告:SSE(Server-Sent Events)传输已废弃(deprecated),能用 HTTP 的地方应改用 HTTP 服务器;同时它的 JSON 配置里 type 字段接受 streamable-http 作为 http 的别名。Cursor 文档的传输表则把 stdio、SSE、Streamable HTTP 三种并列列出,没有标注废弃。
这不是谁对谁错,而是同一个协议特性在两家的生命周期位置不同。如果你要写一份能同时给两边用的服务器部署说明,别把 SSE 端点当成长期方案。
一条按处境走的决策路径
- 只有你自己用:先想清楚这台机器上的配置要不要跟着项目走。Claude Code 有
local这一档专门解决「只在这个项目、但不进版本库」;Cursor 的两个位置里,这类需求落在项目内的.cursor/mcp.json,是否提交由你决定。 - 要给团队共享:两边都能走「配置进仓库」的路,Claude Code 是
.mcp.json,Cursor 是.cursor/mcp.json。区别是 Claude Code 文档写明了克隆仓库后的审批与工作区信任流程,Cursor 文档里我们没有找到对应说明。 - 安全团队要求只跑批准过的服务器:先确认你的组织有没有能往每台机器系统路径下发文件的通道。有,Claude Code 的
managed-mcp.json能做到排他控制;没有,那这条路先别承诺。Cursor 这一层在控制台里,前提是团队/企业管理入口可用。 - 要按工具粒度收口:Cursor 的允许名单里直接有工具允许名单这一层。Claude Code 侧,文档写明的是组织可以对 claude.ai 连接器设置按工具的控制(
ask每次都提示、blocked直接从工具列表里过滤掉),适用范围与前者不同,别当成同一个东西用。 - 要管出站网络:Cursor 有 per-server 的网络模式,Claude Code 这边我们没有依据,不比。
最后提醒一句:两边文档里的命令、配置项与默认值都随版本变动,本文只复述文档写明的机制,实际部署前请以官方文档最新内容为准,尤其是企业策略这类一旦写错就会静默生效的部分。Claude Code 文档就明确写过一种情况——一个此前配置好的服务器被策略挡掉之后,会从 /mcp 和 claude mcp list 里悄无声息地消失,用户拿不到任何提示,所以推行新限制时要主动告知受影响的人。
本文依据 Claude Code 官方文档(code.claude.com/docs)于 2026-08-17 的公开内容整理。
该产品闭源,本文只复述官方文档写明的机制,不推断其内部实现;
我们没有对文中涉及的功能做过实测,因此不涉及界面外观、操作手感与运行速度的任何描述。
该产品迭代频繁,文中涉及的命令、配置项与默认值随版本变动,请以官方文档最新内容为准。
本文不涉及价格、额度与限流的具体数值,相关信息请以官方定价与用量说明页为准。
本文涉及的另一方内容依据其官方文档整理(Cursor:cursor.com/docs 与 cursor.com/help)。
双方均为闭源商业产品,本文只对照各方公开写明的机制,不推断实现,也不对产品做优劣排名。
安全与合规相关做法请结合自身环境评估,本文不构成安全方案建议。 合规与许可条款请以官方原文与你所在组织的要求为准,本文不构成法律意见。