什么是 MCP?

Model Context Protocol(MCP) 使 Cursor 能连接到外部工具和数据源。

为什么使用 MCP?

MCP 将 Cursor 连接到外部系统和数据。与其一遍遍讲解你的项目结构,不如直接和你的工具打通。 用任何能向 stdout 输出或提供 HTTP 端点的语言来编写 MCP 服务器——比如 Python、JavaScript、Go 等。

工作原理

MCP 服务器通过协议暴露功能,将 Cursor 连接到外部工具或数据源。 Cursor 支持三种传输方式:
传输方式执行环境部署用户输入认证
stdio本地由 Cursor 管理单用户Shell 命令手动
SSE本地/远程部署为服务器多用户指向 SSE 端点的 URLOAuth
Streamable HTTP本地/远程部署为服务器多用户指向 HTTP 端点的 URLOAuth

协议支持

Cursor 支持以下 MCP 协议功能:
功能支持情况描述
Tools已支持供 AI 模型执行的函数
Prompts已支持面向用户的模板化消息与工作流
Resources已支持可读取与引用的结构化数据源
Roots已支持服务器发起的对 URI 或文件系统边界的查询以供操作
Elicitation已支持服务器发起的向用户征求补充信息的请求

安装 MCP 服务器

一键安装

从我们的目录中安装 MCP 服务器,并通过 OAuth 完成认证。

使用 mcp.json

通过 JSON 文件配置自定义 MCP 服务器:
{
  "mcpServers": {
    "server-name": {
      "command": "npx",
      "args": ["-y", "mcp-server"],
      "env": {
        "API_KEY": "value"
      }
    }
  }
}

STDIO 服务器配置

对于 STDIO 服务器(本地命令行服务器),在你的 mcp.json 中配置以下字段:
字段必需描述示例
type服务器连接类型"stdio"
command启动服务器可执行文件的命令。必须在系统 PATH 中可用,或包含其完整路径。"npx", "node", "python", "docker"
args传递给该命令的参数数组["server.py", "--port", "3000"]
env服务器的环境变量{"API_KEY": "${input:api-key}"}
envFile用于加载更多变量的环境文件路径".env", "${workspaceFolder}/.env"

使用 Extension API

为了以编程方式注册 MCP 服务器,Cursor 提供了一个 Extension API,可在不修改 mcp.json 文件的情况下进行动态配置。这对企业环境和自动化设置流程尤其有用。

MCP Extension API 参考

了解如何使用 vscode.cursor.mcp.registerServer() 以编程方式注册 MCP 服务器

配置位置

项目配置

在你的项目里创建 .cursor/mcp.json,用于项目级工具。

全局配置

在你的主目录创建 ~/.cursor/mcp.json,用于全局可用的工具。

配置插值

可以在 mcp.json 的各项值中使用变量。Cursor 会在这些字段中解析变量:commandargsenvurlheaders 支持的语法:
  • ${env:NAME} 环境变量
  • ${userHome} 你的用户主目录路径
  • ${workspaceFolder} 项目根目录(包含 .cursor/mcp.json 的文件夹)
  • ${workspaceFolderBasename} 项目根目录名称
  • ${pathSeparator}${/} 操作系统路径分隔符
示例
{
  "mcpServers": {
    "local-server": {
      "command": "python",
      "args": ["${workspaceFolder}/tools/mcp_server.py"],
      "env": {
        "API_KEY": "${env:API_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "remote-server": {
      "url": "https://api.example.com/mcp",
      "headers": {
        "Authorization": "Bearer ${env:MY_SERVICE_TOKEN}"
      }
    }
  }
}

身份验证

MCP 服务器通过环境变量进行身份验证。把 API key 和 token 配到配置里传递即可。 对于需要 OAuth 的服务器,Cursor 也支持。

在聊天中使用 MCP

在合适的情况下,Composer Agent 会自动使用列在 Available Tools 下的 MCP 工具。你可以按名称请求某个工具,或者直接描述你的需求。也可以在设置里启用或禁用工具。

切换工具

你可以直接在聊天界面启用或禁用 MCP 工具。点击工具列表中的工具名称即可切换。被禁用的工具不会加载到上下文中,Agent 也无法使用它们。

工具授权

默认情况下,Agent 在使用 MCP 工具前会请求你的授权。点开工具名称旁边的箭头即可查看传入参数。

自动运行

启用自动运行后,Agent 可在无需确认的情况下使用 MCP 工具。行为类似于终端命令。详见自动运行设置

工具响应

Cursor 会在聊天中显示响应,并提供可展开的参数和返回结果视图:

将图像用作上下文

MCP 服务器可以返回图像(截图、示意图等)。请以 base64 编码字符串的形式返回:
const RED_CIRCLE_BASE64 = "/9j/4AAQSkZJRgABAgEASABIAAD/2w...";
// ^ 为便于阅读已截断完整的 base64

server.tool("generate_image", async (params) => {
  return {
    content: [
      {
        type: "image",
        data: RED_CIRCLE_BASE64,
        mimeType: "image/jpeg",
      },
    ],
  };
});
实现细节见此示例服务器。Cursor 会把返回的图像附加到对话中;如果模型支持图像,它会对这些图像进行分析。

安全注意事项

安装 MCP 服务器时,请参考这些安全实践:
  • 验证来源:只从可信的开发者和仓库安装 MCP 服务器
  • 审查权限:检查服务器将访问哪些数据和 API
  • 限制 API 密钥:使用受限的 API 密钥,并仅授予最低必要的权限
  • 审计代码:对关键集成,审查服务器的源代码
请记住,MCP 服务器可以访问外部服务并代表你执行代码。安装前一定要弄清楚服务器的具体行为。

真实案例

想看 MCP 的实际用法?去看看我们的Web Development 指南,里面演示了如何把 Linear、Figma 和浏览器工具集成到你的开发工作流中。

常见问题