为什么选择 MCP?
在传统的 AI 辅助编程中,大语言模型(LLM)往往局限于编辑器当前打开的文件或有限的上下文窗口。当我们需要模型去查询公司私有 API、检查数据库 Schema、检索本地 Git 历史,或者与第三方云服务(如 GitHub、Slack、Jira)交互时,传统的 Prompt 工程显得力不从心。
Model Context Protocol (MCP) 应运而生。它由 Anthropic 开源,旨在为大模型与外部数据源、工具之间提供标准、安全且可复用的双向协议。
---
Cursor 中的 MCP 配置解析
Cursor 对 MCP 提供了深度原生支持。通过在项目根目录或全局配置中注入 MCP Server,Cursor 可以在执行 Composer 或 Chat 任务时,自主决定何时调用外部工具。
1. 全局配置路径
- macOS:
~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json或 Cursor Settings -> Features -> MCP - Windows:
%APPDATA%\Cursor\User\globalStorage\...
2. 标准配置文件结构
以接入 SQLite 与 GitHub MCP 为例,标准 JSON 配置如下:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": [
"mcp-server-sqlite",
"--db-path",
"/Users/username/data/analytics.db"
]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
}
}
安全提示:敏感 Token(如 GitHub PAT)切勿直接提交至公共代码仓库中,建议结合环境变量或本地专用配置文件存储。
---
通信协议选型:stdio vs SSE
MCP 协议目前主要支持两种传输层实现:
| 特性 | stdio (标准输入输出) | SSE (Server-Sent Events) / HTTP |
| :--- | :--- | :--- |
| 运行位置 | 本地 CLI 进程子进程 | 远程独立服务器 / 容器集群 |
| 部署复杂度 | 极简(无需开端口) | 需提供网络域名与身份鉴权 |
| 典型场景 | 本地文件系统、Git、本地数据库 | 团队共享知识库、公共微服务 |
| 性能损耗 | 极低(进程间管道通信) | 受网络延迟与 TLS 握手影响 |
对于个人开发者或单项目研发,优先推荐使用 stdio 方式;对于企业内部集中部署的工具服务,SSE / Stream 架构更加稳健。
---
常用调试与排障指南
- 查看 MCP 日志输出:
在 Cursor 底部 Output 面板中选择「MCP」,可实时查看子进程启动的 stdout 与 stderr,排查 Node/Python 环境是否缺少依赖。
- 工具调用权限提示:
生产环境建议保持工具调用确认机制,避免 AI 误操作触发破坏性的写命令(如高危 SQL DROP TABLE 或文件强制覆写)。
- 版本锁定:
使用 npx 或 uvx 时,推荐指定具体版本号,例如 @modelcontextprotocol/server-filesystem@0.6.2,防止依赖自动升级引入不兼容变更。
---
总结
MCP 彻底打破了传统代码补全工具的数据孤岛,让 AI 真正具备了“感知上下文”与“执行工具”的能力。通过合理规划 MCP 服务集群,你可以在 Cursor 中构建出前所未有的全自动化研发管线。