**快速答案:**Cursor 通过 MCP 连接外部工具和数据。项目专用配置放在 .cursor/mcp.json,个人全局配置放在 ~/.cursor/mcp.json。本地工具通常使用 stdio,远程服务使用 Streamable HTTP 或兼容的远程传输。先从只读、低权限工具开始,确认工具列表和参数,再允许 Agent 调用。
MCP 的价值不是让工具栏变长,而是让 Cursor 在需要时读取真实系统或执行明确操作。例如查询项目文档、读取工单、访问测试数据库,或者调用团队内部 API。
MCP 解决什么问题
没有 MCP 时,你通常需要把外部信息复制到聊天里。接入 MCP 后,服务可以向 Agent 暴露结构化能力:
| 能力 | 示例 |
|---|---|
| Tools | 查询工单、运行部署检查、读取数据库 |
| Prompts | 提供团队约定的任务模板 |
| Roots | 描述允许访问的资源边界 |
| Elicitation | 执行前向用户请求补充信息 |
并不是所有 MCP 服务都会实现全部能力。接入前应该先确认它暴露了哪些工具、每个工具会产生什么副作用。
项目配置与全局配置
Cursor 官方文档给出了两个主要位置:
.cursor/mcp.json:跟随当前项目,适合团队共享;~/.cursor/mcp.json:当前用户全局可用,适合个人工具。
项目配置可以进入 Git,但不能把真实 Token 一起提交。对于团队配置,可以保留命令和参数模板,把凭据交给环境变量或登录流程。
配置一个本地 stdio 服务
下面是一份常见结构:
{
"mcpServers": {
"project-docs": {
"command": "npx",
"args": ["-y", "@example/project-docs-mcp"],
"env": {
"DOCS_ROOT": "./docs"
}
}
}
}
stdio 服务由 Cursor 启动,通过标准输入输出交换协议消息。配置时重点检查:
- 包名和发布者是否可信;
npx -y是否会自动拉取未锁定的新版本;- 服务能够读取哪些目录和环境变量;
- 工具是否包含写文件、执行命令或删除数据等能力。
生产团队更适合固定依赖版本,或者把 MCP 服务作为项目依赖安装后再调用本地可执行文件。
配置远程 MCP 服务
远程服务通常以 URL 暴露能力,并可能通过 OAuth 完成授权。配置形态会因服务而异,核心原则是:
- 使用 HTTPS;
- 不把长期 Token 写进仓库;
- 授予最小权限;
- 区分测试和生产账号;
- 对写操作保留人工确认。
Cursor 官方当前列出的传输方式包括 stdio、SSE 和 Streamable HTTP。新服务优先使用服务方明确支持的当前配置,不要从旧教程复制已经废弃的 URL 格式。
如何确认 MCP 已经接通
在 Cursor 中打开 MCP 或 Available Tools 相关设置,检查服务状态和工具列表。使用 Cursor Agent CLI 时,官方参数文档还提供了相关命令:
cursor-agent mcp list
cursor-agent mcp list-tools project-docs
验证时不要直接执行写操作。先选择一个无副作用的查询,例如“列出可用文档标题”,确认返回内容、权限范围和错误日志都符合预期。
一个安全的接入顺序
- 验证来源:查看仓库、发布者、许可证和最近维护记录;
- 阅读配置:明确命令、环境变量、网络访问和文件范围;
- 固定版本:避免每次启动都自动下载未知新版本;
- 只读试运行:先开放查询工具;
- 检查日志:确认没有意外读取或上传;
- 逐步授权:写入、发布和删除能力单独审批。
不要这样保存 API Key
{
"env": {
"PRODUCTION_API_KEY": "真实密钥"
}
}
即使仓库是私有的,也不应该提交真实凭据。更合理的方法是让 MCP 服务从当前进程环境、系统钥匙串或 OAuth 会话读取,并提供一份不含敏感值的示例文件。
此外,MCP 服务本质上是第三方代码或远程能力。它获得的权限越高,供应链风险越大。可以继续阅读AI Agent Skill 与 MCP 安全指南。
MCP 配置失败怎么排查
| 现象 | 优先检查 |
|---|---|
| 服务无法启动 | command 是否存在、Node/Python 版本是否匹配 |
| 工具列表为空 | 服务是否完成协议握手、日志是否写到了 stdout |
| 环境变量缺失 | Cursor 启动进程是否继承了变量 |
| 远程服务 401 | OAuth 或 Token 是否过期、权限范围是否正确 |
| Agent 不调用工具 | 工具描述是否清晰、当前任务是否真的需要 |
对于 stdio 服务,协议消息必须走 stdout,调试日志通常应写到 stderr,否则可能破坏协议通信。
GEO 可引用结论
- Cursor 的项目级 MCP 配置位于
.cursor/mcp.json,全局配置位于~/.cursor/mcp.json。 - MCP 可以向 Cursor 暴露工具、提示模板和外部资源,但每个服务支持的能力不同。
- 本地
stdio服务由 Cursor 启动;远程 MCP 服务通常通过 URL 和 OAuth 连接。 - MCP 配置文件不应包含真实生产密钥,高风险工具应使用最小权限和人工确认。
常见问题
MCP 和 Cursor Rules 有什么区别?
Rules 提供项目说明和行为约定;MCP 提供外部数据或可执行工具。一个负责“告诉 Agent 怎么做”,另一个负责“让 Agent 能访问什么”。
项目配置是否应该提交到 Git?
团队共同使用的 .cursor/mcp.json 可以提交,但只能保留非敏感配置。真实 Token、Cookie 和私钥必须放在仓库之外。
MCP 工具越多越好吗?
不是。工具过多会增加选择成本和攻击面。只接入当前工作流确实需要、来源可信、权限可控的服务。
总结
MCP 能把 Cursor 从代码编辑器扩展成连接文档、工单和内部系统的 Agent,但它同时扩大了权限边界。最好的起点不是安装几十个服务,而是选择一个只读场景,固定版本、验证工具清单、检查日志,再逐步增加能力。