关键字MCP协议, 模型上下文协议, JSON-RPC, MCP服务器, Agentic SDLC, Cursor集成03_Cursor之MCP模型上下文协议集成Cursor知识体系Cursor知识体系续 | -- 集成扩展层 | -- MCP协议核心概念 | | -- 协议设计理念 | | -- 客户端-服务器架构 | | -- 标准化接口优势 | | | -- MCP服务器配置 | | -- .cursor/mcp.json | | -- 服务发现机制 | | -- 认证配置 | | | -- 常用MCP服务器 | | -- GitHub版本控制 | | -- Playwright测试 | | -- Vercel部署 | | -- Databricks数据 | | -- Jupyter科学计算 | | -- Azure云服务 | | | -- MCP三层架构 | | -- 发现层 | | -- 协议层 | | -- 上下文层 | | | -- Agentic SDLC工作流 | -- 端到端自动化 | -- 60分钟开发周期 | -- 质量门禁集成引言如果把Cursor比作一个强大的AI编程助手那么MCPModel Context Protocol就是让它能够与外部世界连接的神经系统。没有MCPAI只能处理代码编辑器内部的信息有了MCPAI能够执行测试、查询数据库、操作GitHub、部署应用——真正成为一个全能的开发伙伴。本文将深入探讨MCP协议的设计理念、Cursor的MCP配置方法、常用MCP服务器以及如何利用MCP构建端到端的Agentic开发工作流。一、MCP协议的核心概念1.1 为什么需要MCP在MCP出现之前每个AI编程工具都需要独立实现与各种外部服务的集成传统集成方式M x N 问题 AI工具1 AI工具2 AI工具3 ... AI工具N GitHub O O O O Slack O O O O AWS O O O O 数据库 O O O O ... GitHub O O O O 每个AI工具 x 每个服务 N x M 个集成这种模式的问题显而易见重复工作GitHub集成需要为每个AI工具实现一遍标准缺失每个工具的实现方式不同难以迁移维护成本服务API变更时所有工具都需要更新质量参差社区实现的集成质量参差不齐MCPModel Context Protocol提出了一种优雅的解决方案定义一个标准协议让所有AI工具和服务都遵循这个协议。MCP集成方式 MCP协议 --------------------------- GitHub ------ | ----- AI工具1 | | | ----- AI工具2 | Slack ------- | ----- AI工具3 | | | ... | AWS -------- | ----- AI工具N | --------------------------- MCP服务器现在每个服务只需要实现一次MCP服务器所有AI工具都能通过统一的方式访问这些服务。1.2 MCP协议设计理念MCP的设计理念可以概括为三个关键词简单、可扩展、安全。简单体现在协议设计上。MCP基于JSON-RPC 2.0这是一个轻量级的远程过程调用协议几乎所有编程语言都有现成的实现库。相比于复杂的GraphQL或gRPCJSON-RPC的学习曲线要平缓得多。可扩展体现在架构设计上。MCP采用插件化的服务器架构每个服务可以独立开发、测试和部署。添加新的MCP服务器不需要修改协议规范只需要遵循协议即可。安全体现在权限控制上。MCP支持细粒度的权限配置每个工具调用都需要明确的授权。这避免了AI越权操作的风险。1.3 客户端-服务器架构MCP采用经典的客户端-服务器架构MCP架构 ------------------------------------------ | Cursor | | --------------------------------------| | | MCP客户端 || | | -------------------------------- || | | | 能力协商 | 协议握手 | 认证管理 | || | | -------------------------------- || | --------------------------------------| ------------------------------------------ | JSON-RPC 2.0 v ------------------------------------------ | MCP服务器 | | --------------------------------------| | | 服务实现 || | | -------------------------------- || | | | GitHub | Playwright | ... | || | | -------------------------------- || | --------------------------------------| ------------------------------------------MCP客户端运行在Cursor进程中负责发现和连接MCP服务器管理服务器的能力和工具列表转发AI的请求到对应服务器处理认证和授权MCP服务器是独立进程负责实现特定服务的功能定义可供AI调用的工具处理实际的API调用返回结构化的结果二、Cursor MCP配置详解2.1 配置文件位置Cursor的MCP配置存储在项目根目录的.cursor/mcp.json文件中。项目根目录/ -- .cursor/ | -- mcp.json -- MCP配置文件 | -- rules/ -- 自定义规则目录 | -- ... -- src/ -- package.json -- ...如果没有.cursor/mcp.json文件你需要手动创建它。2.2 配置文件格式{mcpServers:{服务器名称:{command:启动命令,args:[参数列表],env:{环境变量:值}}}}2.3 GitHub MCP服务器配置GitHub是最常用的MCP服务器之一。配置方法{mcpServers:{github:{command:npx,args:[-y,modelcontextprotocol/server-github],env:{GITHUB_TOKEN:ghp_xxxxxxxxxxxxxxxxxxxx}}}}配置说明command启动命令通常是npxargs传递给命令的参数env环境变量这里配置GitHub Personal Access Token获取GitHub Token访问 GitHub Settings → Developer settings → Personal access tokens点击Generate new token (classic)选择需要的权限建议repo, workflow, read:user生成并复制token2.4 Playwright MCP服务器配置{mcpServers:{playwright:{command:npx,args:[-y,modelcontextprotocol/server-playwright]}}}Playwright MCP允许AI直接控制浏览器进行测试。2.5 Vercel MCP服务器配置{mcpServers:{vercel:{command:npx,args:[-y,modelcontextprotocol/server-vercel],env:{VERCEL_TOKEN:xxxxxxxxxxxxxxxxxxxxxxxxxxxx}}}}2.6 多服务器配置你可以在一个配置文件中配置多个MCP服务器{mcpServers:{github:{command:npx,args:[-y,modelcontextprotocol/server-github],env:{GITHUB_TOKEN:ghp_xxx}},playwright:{command:npx,args:[-y,modelcontextprotocol/server-playwright]},filesystem:{command:npx,args:[-y,modelcontextprotocol/server-filesystem],env:{ALLOWED_DIRECTORIES:/Users/you/projects}}}}2.7 配置验证配置完成后Cursor会自动检测并连接MCP服务器。你可以通过以下方式验证Cursor状态栏查看MCP服务器连接状态Chat命令输入/mcp查看已连接的服务器列表重启Cursor有时候需要重启才能生效三、常用MCP服务器详解3.1 GitHub MCP服务器功能范围仓库操作创建、克隆、浏览仓库文件操作读取、创建、更新文件Git操作提交、推送、拉取、分支管理PR操作创建PR、审查PR、合并PRIssue操作创建Issue、评论、关闭Actions操作触发工作流、查看运行状态典型使用场景你创建一个PR将feature/login分支合并到main Cursor通过GitHub MCP执行 1. 检查feature/login分支状态 2. 创建PR标题和描述从代码中生成 3. 展示PR预览 4. 等待你确认后提交3.2 Playwright MCP服务器功能范围浏览器控制打开页面、点击、输入元素操作查找元素、获取文本、属性截图页面截图、元素截图控制台捕获日志、错误网络监控请求、模拟响应典型使用场景你帮我测试登录功能是否正常工作 Cursor通过Playwright MCP执行 1. 打开应用的登录页面 2. 输入测试账号 3. 点击登录按钮 4. 验证是否成功跳转 5. 截图记录结果3.3 Vercel MCP服务器功能范围项目部署部署当前代码到Vercel预览访问获取预览URL环境变量查看、设置环境变量域名管理配置自定义域名分析数据查看访问统计典型使用场景你将这个修复部署到生产环境 Cursor通过Vercel MCP执行 1. 构建项目 2. 部署到生产环境 3. 返回部署URL和状态3.4 Databricks MCP服务器功能范围查询执行运行SQL查询Notebook操作创建、编辑、执行notebook作业调度触发、监控Spark作业文件管理访问DBFS文件系统典型使用场景你查询过去一周的日活跃用户数 Cursor通过Databricks MCP执行 1. 连接数据仓库 2. 执行SQL查询 3. 返回结果表格或图表3.5 Jupyter MCP服务器功能范围代码执行运行Python/R/Julia代码变量检查查看当前变量状态可视化生成图表Notebook操作创建、编辑notebook典型使用场景你分析一下这个CSV文件的数据分布 Cursor通过Jupyter MCP执行 1. 读取CSV文件 2. 执行数据分析代码 3. 生成可视化图表 4. 输出统计摘要3.6 Azure MCP服务器功能范围资源管理创建、配置Azure资源部署Web应用、容器、函数监控查看应用指标Key Vault安全存储密钥典型使用场景你帮我创建一个新的Azure函数 Cursor通过Azure MCP执行 1. 创建函数应用 2. 配置触发器和绑定 3. 部署代码 4. 返回函数URL3.7 服务器功能对比服务器核心功能适用场景配置复杂度GitHub版本控制、协作日常开发低Playwright浏览器自动化测试、爬虫低Vercel部署、预览前端部署中Databricks数据查询、分析数据科学高Jupyter代码执行科学计算中Azure云资源管理云开发高四、MCP三层架构深度解析4.1 发现层服务器注册发现层负责识别和加载MCP服务器。发现流程 1. Cursor启动 2. 读取 .cursor/mcp.json 3. 解析 mcpServers 配置 4. 验证服务器可用性 5. 建立连接 6. 获取服务器能力清单 7. 注册到工具列表**能力清单Capabilities**是服务器声明其支持功能的元数据{capabilities:{tools:[{name:github_create_pr,description:创建一个Pull Request,inputSchema:{type:object,properties:{repo:{type:string},title:{type:string},body:{type:string},head:{type:string},base:{type:string,default:main}},required:[repo,title,head]}}]}}4.2 协议层JSON-RPC通信协议层负责在客户端和服务器之间传递消息。请求格式 { jsonrpc: 2.0, id: 1, method: tools/call, params: { name: github_create_pr, arguments: { repo: myorg/myrepo, title: Add new feature, head: feature/new, base: main } } } 响应格式 { jsonrpc: 2.0, id: 1, result: { content: [ { type: text, text: PR created successfully: https://github.com/myorg/myrepo/pull/42 } ] } }支持的请求类型initialize初始化连接交换版本信息tools/list列出可用工具tools/call调用工具resources/list列出可用资源resources/read读取资源prompts/list列出可用提示模板prompts/get获取提示模板4.3 上下文层智能上下文注入上下文层是MCP真正发挥威力的地方。上下文注入流程 1. 用户在Cursor Chat中提问 2. Cursor分析问题识别可能需要的MCP工具 3. 调用相关MCP服务器获取实时信息 4. 将工具输出注入到AI的上下文中 5. AI结合代码上下文和工具输出生成回答实例询问PR状态用户在main分支上最新的PR是什么 Cursor处理 1. 识别这需要GitHub信息 2. 调用 github_list_prs 工具 3. 获取PR列表 4. 将PR信息注入上下文 5. AI生成回答main分支上最新的PR是#42...五、Agentic SDLC工作流5.1 什么是Agentic SDLCAgentic SDLCSoftware Development Life Cycle是一种由AI驱动的端到端软件开发流程。传统SDLC 需求 - 设计 - 开发 - 测试 - 部署 - 运维 | | | | | | 人 人 人 人 人 人 Agentic SDLC 需求 - 设计 - 开发 - 测试 - 部署 - 运维 | | | | | | 人 AI AI AI AI AI在Agentic SDLC中AI不仅仅是辅助工具而是能够自主执行各阶段任务的智能体。5.2 Cursor MCP实现的Agentic工作流代码生成 | v ------------ | Cursor AI | -- 使用Claude/GPT生成代码 ------------ | v 自动化测试 | v ------------ ---------------- | Playwright | --- | MCP协议通信 | | MCP服务器 | ---------------- ------------ | v 版本控制 | v ------------ ---------------- | GitHub | --- | MCP协议通信 | | MCP服务器 | ---------------- ------------ | v 部署上线 | v ------------ ---------------- | Vercel | --- | MCP协议通信 | | MCP服务器 | ---------------- ------------5.3 60分钟开发周期实例让我们通过一个实际例子展示如何用Cursor在60分钟内完成一个功能的完整开发周期。场景为博客系统添加评论功能Step 1: 需求理解5分钟你我想为博客添加评论功能包括评论列表、评论输入、评论审核 Cursor分析 1. 理解功能需求 2. 分析现有代码库结构 3. 设计数据库Schema 4. 规划API端点 5. 设计前端组件Step 2: 后端开发20分钟Cursor执行 1. 创建评论数据模型 2. 实现评论APICRUD 3. 添加评论审核逻辑 4. 编写后端测试Step 3: 前端开发15分钟Cursor执行 1. 实现评论列表组件 2. 实现评论输入组件 3. 添加评论审核管理界面 4. 编写前端测试Step 4: 测试验证10分钟Cursor执行 1. 使用Playwright MCP进行E2E测试 2. 验证评论创建、显示、审核流程 3. 截图记录测试结果 4. 修复发现的问题Step 5: 提交代码5分钟Cursor执行 1. 使用GitHub MCP创建分支 2. 提交所有更改 3. 创建Pull Request 4. 展示PR预览Step 6: 部署上线5分钟Cursor执行 1. 使用Vercel MCP部署预览 2. 验证预览环境 3. 合并PR到main 4. 生产环境自动部署5.4 质量门禁集成Agentic工作流需要配套的质量门禁质量门禁检查点 ------------------------------------------ | 阶段 | 检查项 | 自动化程度 | ------------------------------------------ | 开发 | 代码风格 | 全自动 | | 开发 | 单元测试覆盖率 | 全自动 | | 开发 | 安全扫描 | 全自动 | | 测试 | E2E测试 | 全自动 | | 测试 | 性能基准测试 | 半自动 | | 部署 | 烟雾测试 | 全自动 | | 部署 | 灰度验证 | 半自动 | ------------------------------------------六、自定义MCP服务器开发6.1 开发环境准备# 创建项目mkdirmy-mcp-servercdmy-mcp-server# 初始化npm项目npminit-y# 安装MCP SDKnpminstallmodelcontextprotocol/sdk# 安装TypeScriptnpminstall-Dtypescript types/node6.2 简单服务器实现// src/index.tsimport{MCPServer}frommodelcontextprotocol/sdk;constservernewMCPServer({name:my-custom-server,version:1.0.0,});// 定义工具server.registerTool(greet,{description:生成问候语,inputSchema:{type:object,properties:{name:{type:string,description:名字},language:{type:string,enum:[zh,en,ja],default:zh}},required:[name]}},async({name,languagezh}){constgreetings{zh:你好${name},en:Hello,${name}!,ja:こんにちは、${name}さん};return{content:[{type:text,text:greetings[language]}]};});// 启动服务器server.start();6.3 构建和运行# 编译TypeScriptnpx tsc# 在Cursor中配置# .cursor/mcp.json{mcpServers:{my-server:{command:node,args:[./dist/index.js]}}}6.4 最佳实践清晰的工具描述inputSchema要描述清楚每个参数的含义完善的错误处理工具执行失败时返回有意义的错误信息适当的超时设置长时间运行的工具要设置超时日志记录便于调试和问题排查版本管理保持SDK版本与Cursor兼容七、个人实战经验7.1 配置经验环境变量管理不要把Token直接写在配置文件中。推荐使用环境变量{mcpServers:{github:{command:npx,args:[-y,modelcontextprotocol/server-github],env:{GITHUB_TOKEN:${GITHUB_TOKEN}}}}}服务器启动顺序如果多个MCP服务器有依赖关系注意配置启动顺序。Cursor按配置文件中的顺序启动服务器。7.2 使用经验工具选择不是所有问题都需要MCP。对于简单的代码任务直接用Cursor的内置功能更高效。权限控制始终遵循最小权限原则。只给MCP服务器必要的权限不要过度授权。结果验证MCP工具的执行结果需要验证后再使用。特别是涉及生产环境的操作更要小心。7.3 调试经验查看日志MCP服务器的日志是调试的重要依据。大多数服务器支持通过环境变量配置日志级别。逐步执行复杂的操作不要一次完成。分步执行每步验证结果后再继续。备选方案MCP服务器可能不稳定或不可用。始终准备备选方案如直接使用网页端操作。总结MCP协议是Cursor生态系统的关键支柱。它将Cursor从一个强大的AI代码编辑器扩展为一个能够连接整个开发工具链的智能开发平台。通过本文你应该已经理解了MCP协议解决了什么问题如何在Cursor中配置MCP服务器常用MCP服务器的功能和使用场景MCP的三层架构设计如何利用MCP构建Agentic工作流如何开发自定义MCP服务器下一篇文章我们将探讨Cursor的Composer智能体模式这是Cursor中最具野心的功能——让AI能够像真正的开发者一样自主完成复杂任务。相关阅读02_Cursor之AI核心功能深度解析04_Cursor之Composer智能体模式