什么是 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
中配置以下字段:
Field | Required | Description | Examples |
---|---|---|---|
type | Yes | 服务器连接类型 | "stdio" |
command | Yes | 启动服务器可执行文件的命令。必须在系统 PATH 中可用,或包含其绝对路径。 | "npx" , "node" , "python" , "docker" |
args | No | 传给该命令的参数数组 | ["server.py", "--port", "3000"] |
env | No | 服务器的环境变量 | {"API_KEY": "${input:api-key}"} |
envFile | No | 用于加载更多变量的环境文件路径 | ".env" , "${workspaceFolder}/.env" |
使用扩展 API
mcp.json
文件的前提下进行动态配置。这对企业环境和自动化部署流程尤其有用。
MCP 扩展 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 权限限制到最低必要 - 在连接敏感系统前先审查服务器代码 - 考虑在隔离环境中运行服务器