什么是 MCP?
为什么使用 MCP?
stdout
输出或提供 HTTP 端点的语言来编写 MCP 服务器——比如 Python、JavaScript、Go 等。
工作原理
传输方式 | 执行环境 | 部署 | 用户 | 输入 | 认证 |
---|---|---|---|---|---|
stdio | 本地 | 由 Cursor 管理 | 单用户 | Shell 命令 | 手动 |
SSE | 本地/远程 | 部署为服务器 | 多用户 | 指向 SSE 端点的 URL | OAuth |
Streamable HTTP | 本地/远程 | 部署为服务器 | 多用户 | 指向 HTTP 端点的 URL | OAuth |
协议支持
功能 | 支持情况 | 描述 |
---|---|---|
Tools | 已支持 | 供 AI 模型执行的函数 |
Prompts | 已支持 | 面向用户的模板化消息与工作流 |
Resources | 已支持 | 可读取与引用的结构化数据源 |
Roots | 已支持 | 服务器发起的对 URI 或文件系统边界的查询以供操作 |
Elicitation | 已支持 | 服务器发起的向用户征求补充信息的请求 |
安装 MCP 服务器
一键安装
使用 mcp.json
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.json
文件的情况下进行动态配置。这对企业环境和自动化设置流程尤其有用。
MCP Extension API 参考
了解如何使用
vscode.cursor.mcp.registerServer()
以编程方式注册 MCP 服务器配置位置
项目配置
在你的项目里创建
.cursor/mcp.json
,用于项目级工具。全局配置
在你的主目录创建
~/.cursor/mcp.json
,用于全局可用的工具。配置插值
mcp.json
的各项值中使用变量。Cursor 会在这些字段中解析变量:command
、args
、env
、url
和 headers
。
支持的语法:
${env:NAME}
环境变量${userHome}
你的用户主目录路径${workspaceFolder}
项目根目录(包含.cursor/mcp.json
的文件夹)${workspaceFolderBasename}
项目根目录名称${pathSeparator}
和${/}
操作系统路径分隔符
身份验证
在聊天中使用 MCP
Available Tools
下的 MCP 工具。你可以按名称请求某个工具,或者直接描述你的需求。也可以在设置里启用或禁用工具。
切换工具
工具授权

自动运行
工具响应

将图像用作上下文
安全注意事项
- 验证来源:只从可信的开发者和仓库安装 MCP 服务器
- 审查权限:检查服务器将访问哪些数据和 API
- 限制 API 密钥:使用受限的 API 密钥,并仅授予最低必要的权限
- 审计代码:对关键集成,审查服务器的源代码
真实案例
常见问题
MCP 服务器有什么用?
MCP 服务器有什么用?
MCP 服务器把 Cursor 连接到 Google Drive、Notion 等外部工具和服务,把文档和需求引入你的编码工作流。
我该如何调试 MCP 服务器问题?
我该如何调试 MCP 服务器问题?
通过以下方式查看 MCP 日志:1. 在 Cursor 中打开 Output 面板(Ctrl+Shift+U)
2. 从下拉菜单中选择 “MCP Logs” 3. 检查连接错误、身份验证问题或服务器崩溃 日志会显示服务器初始化、工具调用和错误信息。
我可以临时禁用某个 MCP 服务器吗?
我可以临时禁用某个 MCP 服务器吗?
可以!无需移除即可切换服务器开/关:1. 打开 Settings(
Ctrl+Shift+J)2. 前往 Features → Model Context Protocol 3. 点击任意服务器旁的开关以启用/禁用 被禁用的服务器不会加载或出现在聊天中。这有助于排障或减少工具干扰。
如果 MCP 服务器崩溃或超时会发生什么?
如果 MCP 服务器崩溃或超时会发生什么?
如果某个 MCP 服务器出错:- Cursor 会在聊天中显示错误信息 - 该工具调用会被标记为失败 - 你可以重试操作或查看日志获取详情 - 其他 MCP 服务器会继续正常工作 Cursor 会隔离服务器故障,防止单个服务器影响其他服务器。
我该如何更新 MCP 服务器?
我该如何更新 MCP 服务器?
针对基于 npm 的服务器:1. 在设置中移除该服务器 2. 清理 npm 缓存:
npm cache clean --force
3. 重新添加该服务器以获取最新版本 对于自定义服务器,更新本地文件并重启 Cursor。我可以在涉及敏感数据的场景中使用 MCP 服务器吗?
我可以在涉及敏感数据的场景中使用 MCP 服务器吗?
可以,但请遵循安全最佳实践:- 使用环境变量存放机密,切勿硬编码 - 使用
stdio
传输在本地运行敏感服务器 - 将 API key 权限限制到最低必要 - 在连接到敏感系统前审查服务器代码 - 考虑在隔离环境中运行服务器