Cursor MCP 配置教程:在 Cursor 中添加和配置 MCP 服务器
Cursor MCP 配置指南:编写 ~/.cursor/mcp.json 或 .cursor/mcp.json,添加 stdio 与远程服务器,安全传递密钥,使用一键安装链接,并排查常见 MCP 错误。
如何在 Cursor 中添加 MCP 服务器
在 Cursor 中添加 MCP 服务器,只需把它写进 mcp.json:~/.cursor/mcp.json 对所有项目生效,仓库里的 .cursor/mcp.json 只对当前项目生效。本地服务器用 command 和 args(stdio),远程服务器用 url(Streamable HTTP 或 SSE)。你也可以从 Cursor Marketplace 或安装链接一键安装,然后在侧边栏的 Customize 中开启或关闭。
下文所有内容都对照官方 Cursor MCP 文档核实过。如果你还没选好要接入的服务器,可以先逛逛 MCP 服务器目录。
速查表
| 任务 | 位置 |
|---|---|
| 全局服务器(所有项目) | ~/.cursor/mcp.json |
| 项目服务器(可提交到 git) | 仓库中的 .cursor/mcp.json |
| 本地服务器 | command + args(+ env、envFile) |
| 远程服务器 | url(+ headers、auth) |
| 启用或禁用服务器 | 侧边栏 Customize,切换服务器开关 |
| 通过链接安装 | cursor://anysphere.cursor-deeplink/mcp/install?... |
| 查看 MCP 日志 | Output 面板,选择 MCP Logs |
| 在终端使用同一套服务器 | agent mcp list(Cursor CLI) |
第 1 步:选择全局还是项目作用域
Cursor 从两个位置读取 MCP 服务器:
- 主目录下的
~/.cursor/mcp.json:放你在任何地方都想用的工具(文档服务器、浏览器、记忆服务器)。 - 项目中的
.cursor/mcp.json:放属于这个代码库的工具(它的数据库、它的 issue 跟踪系统)。把这个文件提交到仓库,队友就能拿到同一套服务器——但绝不要把密钥写在里面(见第 3 步)。
两个文件格式相同:顶层是一个 mcpServers 对象,每个键就是你在 Cursor 中看到的服务器名称。
第 2 步:添加服务器
Cursor 支持三种传输方式。根据文档,stdio 服务器由 Cursor 自己启动和管理;SSE 和 Streamable HTTP 服务器通过 URL 访问,并可以用 OAuth 认证。
本地 stdio 服务器
stdio 服务器是 Cursor 在你电脑上启动的一个程序。下面是 Playwright MCP 服务器,它让 Agent 拥有一个真实的浏览器:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
}
}
}
Python 服务器也是同样的结构:把 command 设为 python(或 uvx),脚本或包名放进 args。stdio 可用字段有 type("stdio")、command(必填)、args、env 和 envFile。
远程服务器(Streamable HTTP 或 SSE)
远程服务器只需要一个 URL。Cursor 同时支持 Streamable HTTP 和较老的 SSE 传输:
{
"mcpServers": {
"context7": {
"url": "https://mcp.context7.com/mcp",
"headers": {
"Authorization": "Bearer ${env:CONTEXT7_API_KEY}"
}
}
}
}
这是 Context7 MCP 服务器,它为 Agent 提供最新的库文档。很多托管服务器(例如 Notion、Linear 或 Sentry)用 OAuth 而不是请求头:只写 url 即可,服务器第一次连接时 Cursor 会打开浏览器让你登录。两种传输方式的区别见 SSE 与 Streamable HTTP。
同时配置多个服务器
每个服务器只是 mcpServers 里的一个键,所以一个文件里可以同时放本地和远程条目。通常不需要重启;如果某个服务器没出现,在 Customize 中把它关掉再打开即可。
第 3 步:不要把密钥写进 mcp.json
在已提交的 .cursor/mcp.json 里硬编码 API Key 是最常见的错误。Cursor 内置了两种规避方式。
变量插值。 Cursor 会解析 command、args、env、url 和 headers 中的变量:
| 变量 | 解析为 |
|---|---|
${env:NAME} | Shell 中的环境变量 |
${userHome} | 你的主目录 |
${workspaceFolder} | 项目根目录(包含 .cursor/mcp.json 的文件夹) |
${workspaceFolderBasename} | 项目根目录的文件夹名 |
${pathSeparator} 或 ${/} | 操作系统的路径分隔符 |
例如,把 GitHub Token 作为 Bearer 请求头传给 GitHub MCP 服务器:
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${env:GITHUB_PAT}"
}
}
}
}
envFile(仅 stdio)。 让本地服务器读取一个 dotenv 文件,而不是逐个列出变量:
{
"mcpServers": {
"my-tools": {
"command": "python",
"args": ["${workspaceFolder}/tools/mcp_server.py"],
"envFile": "${workspaceFolder}/.env"
}
}
}
记得把这个 .env 加进 .gitignore。注意 envFile 只支持 stdio 服务器;远程服务器应在 headers 中使用 ${env:...}。
静态 OAuth 客户端
如果某个远程服务器需要预先注册的 OAuth 应用(而不是动态注册),添加一个 auth 对象,包含 CLIENT_ID(必填)、CLIENT_SECRET(可选)和 scopes(可选;省略时 Cursor 会从服务器的 OAuth 元数据中自动发现)。为桌面应用注册 http://localhost:8787/callback 作为回调地址。认证流程的原理详见我们的 MCP 认证指南。
第 4 步:一键安装链接
一键安装有两条路径:
- Cursor Marketplace。 打开 Customize 浏览市场,或在市场条目上点击 Add to Cursor。它会安装服务器并完成 OAuth 登录。
- 安装链接。 任何人都可以按以下格式发布深度链接(文档):
cursor://anysphere.cursor-deeplink/mcp/install?name=$NAME&config=$BASE64_ENCODED_CONFIG
config 是单个服务器对象的 base64 编码(例如 {"command":"npx","args":["-y","@playwright/mcp@latest"]}),不包括外层的 mcpServers;名称放在 name 参数里。你可以在终端里生成:
echo -n '{"command":"npx","args":["-y","@playwright/mcp@latest"]}' | base64
点击链接后 Cursor 会弹出安装提示。像对待任何要运行的代码一样对待安装链接:接受之前先解码 config,看清楚要执行的命令。
第 5 步:使用、审批和限制工具
服务器启用后,Agent 就能看到它的工具并自行决定何时调用。默认情况下,Cursor 在每次调用 MCP 工具前都会请求批准;点击工具名旁边的箭头可以查看具体参数。在 auto-review 运行模式下,白名单中的工具会立即执行,其他调用则交给 Cursor 的分类器判断。
Cursor 支持的不只是工具:prompts、resources、roots、elicitation 以及 MCP Apps 扩展(工具返回交互式 UI)都在支持列表中。
40 个工具的上限还在吗? 旧版 Cursor 只会把前 40 个 MCP 工具发给模型,超出时会显示警告。自 2026 年 1 月起,Cursor 采用了动态上下文发现:工具描述被同步到文件中,Agent 一开始只看到工具名,需要时才加载完整 schema。Cursor 报告称,在调用了 MCP 工具的运行中,Agent 总 token 减少了约 46.9%。即便如此,服务器越少,选错工具的概率越低,所以请在 Customize 中关闭暂时不用的服务器。如果工具选择出了问题,可以参考我们的 MCP 工具发现指南。
第 6 步:在 Cursor CLI 中使用同一套服务器
Cursor CLI(agent)与编辑器使用同一份 mcp.json 配置(CLI MCP 文档):
agent mcp list # configured servers and their status
agent mcp list-tools playwright # a server's tools and parameters
agent mcp login notion # authenticate a server from mcp.json
agent mcp disable playwright # stop loading a server
Cursor MCP 故障排查
先看日志:打开 Output 面板(macOS 上是 Cmd+Shift+U,Windows 和 Linux 上是 Ctrl+Shift+U),在下拉菜单中选择 MCP Logs。出错的服务器会在聊天中显示错误并把该工具调用标记为失败,但其他服务器会继续运行。
| 现象 | 可能原因与解决办法 |
|---|---|
| 服务器一直不出现 | JSON 无效(多余逗号、缺少括号),或在 Customize 中被关闭。校验文件并检查开关。 |
spawn npx ENOENT 或找不到命令 | Cursor 的 PATH 里找不到 Node/Python。使用 npx/python 的绝对路径,或从带有它们的 shell 启动 Cursor。 |
| 使用静态客户端时 OAuth 登录失败 | 在服务商的 OAuth 应用里注册 http://localhost:8787/callback 作为回调地址(桌面应用使用该地址)。 |
| 远程服务器返回 401 或 403 | 请求头缺失或已过期。检查 ${env:NAME} 在启动 Cursor 的环境中确实已设置。 |
| npm 服务器卡在旧版本 | 在 Customize 中移除它,运行 npm cache clean --force,然后重新添加。 |
| Agent 不用某个工具 | 相似工具太多。关闭不用的服务器,或在提示词中直接点名该工具。 |
如果服务器行为异常而日志信息不够,可以用 MCP Inspector 在 Cursor 之外单独测试。如果在那里也失败,问题就出在服务器本身,而不是 Cursor。
安全提示
本地 MCP 服务器以你的用户权限运行,而且每个工具结果都会进入模型的上下文。只安装可信来源的服务器,优先选择官方服务器(在目录中留意带 "Official" 的条目),对任何会写入数据的工具保持审批提示开启,接入生产系统前请先阅读我们的 MCP 安全最佳实践。
下一步
- 在 MCP 服务器目录或我们的最佳 MCP 服务器清单中挑选值得添加的服务器。
- 还要配置其他客户端?参见 Claude Code MCP、VS Code MCP 配置和 Claude Desktop MCP。
- 刚接触这个协议?先从什么是 MCP 服务器开始。
常见问题
Cursor 的 MCP 配置文件在哪里?
- Cursor 从主目录下的 ~/.cursor/mcp.json 读取全局 MCP 服务器,从项目根目录的 .cursor/mcp.json 读取项目级服务器。两者都使用相同的 mcpServers JSON 格式。
如何在 Cursor 中添加远程 MCP 服务器?
- 在 mcp.json 的 mcpServers 下添加一个带 url 字段(可选 headers)的条目。Cursor 同时支持 Streamable HTTP 和 SSE 服务器,对使用 OAuth 的服务器会打开浏览器让你登录。
Cursor 的 MCP 还有 40 个工具的上限吗?
- 旧版本只会把前 40 个 MCP 工具发给模型。自 2026 年 1 月起,Cursor 使用动态上下文发现,仅在需要时加载完整的工具描述,但关闭不用的服务器仍能提升工具选择的准确性。
为什么我的 MCP 服务器在 Cursor 中不工作?
- 打开 Output 面板并选择「MCP Logs」查看错误。常见原因是 JSON 格式错误、npx 等命令不在 Cursor 的 PATH 中、缺少环境变量或 API Key 已过期。