模型上下文协议(Model Context Protocol)
什么是 MCP?
模型上下文协议(Model Context Protocol,MCP) 是一个开放协议,用于标准化应用程序如何向大语言模型(LLM)提供上下文和工具。您可以将 MCP 视为 Cursor 的插件系统——它允许您通过标准化接口将 Agent 连接到各种数据源和工具,从而扩展其能力。
深入了解 MCP
访问官方 MCP 文档以深入理解协议
核心用途
MCP 允许您将 Cursor 连接到外部系统和数据源。这意味着您可以将 Cursor 与现有工具和基础设施集成,而无需在代码之外向 Cursor 解释项目结构。
MCP 服务器可以使用任何支持标准输出(stdout)或 HTTP 端点服务的编程语言编写。这种灵活性使您能够快速使用偏好的编程语言和技术栈来实现 MCP 服务器。
传输协议
MCP 服务器是通过标准化协议暴露特定功能的轻量级程序,它们充当 Cursor 与外部工具或数据源之间的中介。
Cursor 支持三种 MCP 服务器传输协议类型:
传输协议 | 执行环境 | 部署方式 | 用户范围 | 输入形式 | 认证方式 |
---|---|---|---|---|---|
stdio | 本地环境 | 由 Cursor 管理 | 单用户 | Shell 命令 | 手动认证 |
SSE | 本地/远程环境 | 部署为服务端 | 多用户 | SSE 端点 URL | OAuth 认证 |
Streamable HTTP | 本地/远程环境 | 部署为服务端 | 多用户 | HTTP 端点 URL | OAuth 认证 |
每种传输协议类型适用于不同的使用场景:stdio
更适合本地开发场景,而 SSE
/Streamable HTTP
则为分布式团队提供了更高的灵活性。
安装 MCP 服务器
一键安装
现在您可以在 Cursor 中一键配置 MCP 服务器!我们精选了一系列热门 MCP 服务器,支持 OAuth 快速认证,实现即时安装。
浏览 MCP 工具
探索我们精选的 MCP 服务器集合并一键安装
对于 MCP 开发者,您可以通过在文档中添加「添加到 Cursor」按钮,让用户轻松访问您的服务器:
添加到Cursor
了解如何为您的 MCP 服务器创建「添加到 Cursor」按钮
手动配置
对于需要自定义 MCP 服务器或进行高级配置的场景,您可以通过配置文件方式手动设置 MCP 服务器。 MCP 配置文件采用 JSON 格式,结构如下:
- CLI 服务器 - Node.js
- CLI 服务器 - Python
- 远程服务器
// 此示例演示了使用 stdio 格式的 MCP 服务器
// Cursor 会自动为您运行此进程
// 使用 Node.js 服务器,通过 `npx` 运行
{
"mcpServers": {
"server-name": {
"command": "npx",
"args": ["-y", "mcp-server"],
"env": {
"API_KEY": "value"
}
}
}
}
// 此示例演示了使用 stdio 格式的 MCP 服务器
// Cursor 会自动为您运行此进程
// 使用 Python 服务器,通过 `python` 运行
{
"mcpServers": {
"server-name": {
"command": "python",
"args": ["mcp-server.py"],
"env": {
"API_KEY": "value"
}
}
}
}
// 此示例演示了使用 Streamable HTTP 或 SSE 格式的 MCP 服务器。
// 您无需指定具体类型,我们将回退到您的服务器支持的版本。
// 用户应手动设置并运行该服务器。
// 这可以是网络化的,以允许其他人也能访问。
{
"mcpServers": {
"server-name": {
"url": "http://localhost:3000/mcp",
"headers": {
"API_KEY": "value"
}
}
}
}
env 字段可用于指定 MCP 服务器进程的环境变量,该功能在 管理 API 密钥等敏感配置时尤为实用。
配置存放位置
根据实际使用场景选择以下两种配置存放方式:
项目级配置
若需为特定项目配置工具,请在项目根目录创建 `.cursor/mcp.json` 文件。此方式定义的 MCP 服务器仅在该项目内生效。
全局配置
若需跨项目使用工具,请在用户主目录创建 `~/.cursor/mcp.json` 文件。此方式定义的 MCP 服务器将在所有 Cursor 工作区中生效。
身份验证
可以为 MCP 服务器配置环境变量进行身份验证。通过这种方式,您无需在代码中暴露 API 密钥等认证凭证,也无需将这些敏感信息存储在 MCP 服务器内部。
对于需要 OAuth 认证的 MCP 服务器,Cursor 也提供完整的 OAuth 认证支持,无需手动管理令牌即可安全访问外部服务。
在 Chat 中使用 MCP
当 Composer Agent 判定相关工具适用时,将自动使用 MCP 设置页面 Available Tools
下列出的所有 MCP 工具。若需主动调用工具,只需明确指示 Agent 使用特定工具(通过工具名称或描述进行引用)。您也可以在设置页面中启用或禁用特定的 MCP 工具,以控制 Agent 可使用的工具范围。
工具使用确认
默认情况下,当 Agent 尝试使用 MCP 工具时,会显示确认请求。您可以通过工具名称旁的箭头展开消息详情,查看 Agent 调用该工具时使用的具体参数。
自动运行
你可以启用自动运行功能,允许 Agent 自动执行 MCP 工具而无需手动批准,类似于终端命令的执行方式。详细了解 Yolo 模式及其启用方式,请访问此处。
工具响应
当使用工具时,Cursor 会在聊天界面中显示响应结果。下图展示了示例工具的响应内容,以及工具调用参数和工具调用响应的展开视图。
图像注入
在使用某些 MCP 服务器时,Cursor 可能会运行返回图像的工具(例如网站截图或图表)。为确保chat 功能能够正确显示并在回复中使用这些图像,您需要配置服务器以正确的格式返回图像。
为此,您只需在工具响应中返回图像的 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",
}
],
};
});
可在此处查看返回图像的 MCP 服务器完整示例。
通过以这种格式返回图像,Cursor 会将图像附加到聊天中。如果当前模型支持图像处理,该图像将被模型解析并用于辅助后续操作。
已知限制
MCP 协议作为一项全新标准,目前仍处于积极开发阶段。以下是需要注意的已知限制事项:
工具数量限制
部分 MCP 服务器或同时运行多个 MCP 服务器的用户,可能会为 Cursor 提供大量可用工具。当前版本中,Cursor 仅会向前端 Agent 发送前 40 个可用工具。
远程开发支持
Cursor 通过本地机器直接与 MCP 服务器通信,采用 stdio
标准输入输出或基于网络的 sse
协议进行交互。因此,当通过 SSH 或其他远程开发环境使用 Cursor 时,MCP 服务器可能无法正常工作。我们计划在后续版本中改进这一限制。
MCP 资源支持
MCP 服务器主要提供两大核心能力:工具(Tools)和资源(Resources)。当前 Cursor 已支持工具功能,允许执行 MCP 服务器提供的工具并在后续流程中使用其输出结果。但资源功能目前尚未获得支持,我们计划在未来的版本中增加对资源的完整支持。
常见问题解答
MCP 服务器的用途是什么?
MCP 服务器充当将外部上下文引入 Cursor 的桥梁。它支持连接到 Google Drive 和 Notion 等服务,帮助你将来自这些来源的文档和需求整合到工作流程中。