1)写在前面
本文更注重实战应用,主要探讨如何让开发流程更为丝滑。文中使用的编程 IDE 是 Cursor v0.47,如果你还是低版本建议升级,建议进行如下配置可以更早的获取新版本:
2)Cursor 设置
Auto Model:自动选择更高效模型
Cursor v0.47 版本支持自动选择模型,在一定程度上提升了沟通效率。例如,遇到简单问题时可能不会使用推理模型。就目前的使用体验而言,相比直接选择 claude-3.7-sonnet-thinking
,确实减少了一些‘想太多’的情况。
Cursor Rules :保证代码生成质量
Cursor Rules 分为两个级别。
User Rule(全局规则)
在最新版本中被放在了 Cursor Setting -> Rules
中,如果想指定包含在每个项目中的规则(如输出语言、响应长度、统一规范等),这非常有用。
Project Rule(项目规则)
点击 Add new rule
按钮后,我们会进入到如下页面:
Rule Type:规则生效的模式:
- Always:表示每次对话都自动携带;
- Auto Attached:文件类型自动匹配,根据后方的
File pattern matches
规则匹配对应文件生效;
- Agent Request:交给 Agent 判断是否生效规则, 需要添加对应的 Description 信息;
- Manual:需要手动 @。
应用实践
这里我也举个实际的例子,比如在一个前端项目,我们可以把 UI设计原则
写到其中:
若您不知道如何编写优质的 Rules,可参考:https://Cursor.directory/rules。
还有一点需要注意的,检查一下你的项目中有没有使用.Cursorrules
,建议替换为 project rules,官方后续会逐步移除掉 .Cursorrules
的用法,官方文档如下**:**
For backward compatibility, you can still use a
.Cursorrules
file in the root of your project. We will eventually remove .Cursorrules in the future, so we recommend migrating to the new Project Rules system for better flexibility and control.
Auto-Run:减少不必要的确认
开启 Auto-Run 模式后,Agent 可以自行执行终端命令,在一些需要连续工具调用的场景很有用;
场景:
- git 提交时,它会执行
git status
->git add .
->git commit
->git push
等多个命令,每个都需要我确认,但这不是我需要的; - 在它排查问题时,偶尔会通过
ls
、cat
等命令查询一些文件、代码,这类查询无需向我确认。
配置:
Auto-run prompt: 我填写的是 Just query commands, git commands and other security commands
,大家可以参考。
Command denylist:可以根据实际情况添加,或者出现了一些不符合预期的自动调用后再补充上。
MCP tools protection: 如果你的 MCP 提供的都是一些查询类的、安全的工具那么可以开启。
Large context:缓解 Cursor “变笨”
大部分情况下,如果我们觉得 Cursor “变笨”了甚至出现,原因可能是 上下文达到上限忽略了一些信息。官方也考虑到了这个问题,提供了 large context 选项。
就目前对该功能的测试而言,我尚未发现效果上有明显差异。不过官方论坛称其能够容纳更大的上下文,感兴趣的小伙伴不妨一试。
3)聊天技巧
上面介绍了一些全局的配置,这里在补充一下对话级别的技巧。可以看到下面对话框中 @ 出来的选项,接下来讲解我们最常用的。
Docs:记录常用文档
我们可以把项目常用知识,工具的使用文档保存到 Docs(公网可访问)。比如一个微信小程序的开发项目就可以把 微信官方的一些开发文档 添加进来,在使用时通过 @Docs 快速注入上下文。
Notepads:记录常用提示词
Notepads 像是一个便签,记录我们可以复用的 prompt,比如:代码模版、回答要求…
我自己常用的 Notepads 也分享一下:
场景 | Notepads | 提示词 | 解决的问题 |
提示词给的任务量较大的情况 | 请拆分任务,执行完上一个任务再开始下一个任务,每一个任务完成需要跟我确认是否继续 | {当前任务逻辑} | - 生成质量更好 - 可控性更高:可以选择性的只执行部分任务 |
接入外部接口时 | 先写一个初版,编写测试代码测试接口联通性 | {接口文档链接} | - 快速得到可用版本:Agent会不断运行测试,根据日志调整代码。 |
简单问题解决 | 这是一个简单的问题,不要想太多,如果你其他想法或建议需要向我确认是否执行 | {问题描述} | - 解决大模型想太多的问题 |
Past chats:缓解上下文长度
因为上下文长度的硬性限制,聊天最终会变得卡顿或者达不到预期,这时候我们可以通过 新建对话+ @Past chats 引入以前的对话历史总结信息(v0.47 版本前叫 summary composer)
Web:快速联网搜索
自动:
手动:
联网搜索,如果需要一些实时的资料可以手动加上 @web。
不知道你有没有遇到过私有仓库无法访问的问题,如下:
Cursor 无法访问 Codeup 中的Apple SDK,整个自动编码流程卡住了,我这里提供一种快速的解决方案,利用 cursor 的 workspace,具体步骤如下:
- 通过 File -> Save Workspace As… 创建 workspace
- 通过 File -> Add Folder to Workspace… 添加其他包到 workspace
- 在 Cursor -> Cursor Setting -> Feature -> Codebase indexing 处重建索引
4)MCP :构建信息桥梁
在开发阶段,我们的时间主要集中在 IDE 中,但也需要查询 飞书项目、飞书文档 里的需求或技术方案,过程中还可能会用到 google、代码生成命令行工具 等,最终通过 git 命令行工具 进行代码提交。
可以看到我们使用到的平台和工具较多, 如果将更多的时间聚焦到 IDE 上,那么研发效率上也会有相应的提升。
暂时无法在飞书文档外展示此内容
如何使用MCP
-
找到合适的MCP工具
这里推荐几个不错的 MCP 网站
地址 | 特点 |
https://smithery.ai/ | 可以通过自然语言查找想要的mcp,复杂命令便捷 |
https://glama.ai/mcp/servers | 分类清晰 |
https://mcp.so/ | 官方内容 |
-
如何在 cursor 中使用MCP
我以 smithery.ai 网站中的MCP为例,我们找到合适的 MCP 后 Copy 它的 Cursor 配置。
然后进入 Cursor Settings 页面,点击 `Add new global MCP server` 进入配置页面, 将👆 Copy 的配置粘贴即可。
如何理解MCP
这里简单介绍一下 开发MCP一定需要掌握的相关知识点。
MCP 简介
为了方便后续内容阅读顺畅,简单介绍一下 MCP:
MCP 协议遵循客户端-主机-服务器架构,其中每个主机可以运行多个客户端实例。该架构使用户能够跨应用程序集成 AI 能力,同时保持清晰的安全边界并隔离问题。MCP 基于
JSON-RPC
构建,提供了一个有状态会话协议,专注于客户端和服务器之间的上下文交换和采样协调。
其架构如下:
传输机制
而主机与客户端间的传输机制有 Command 和 SSE 两种。
- Command
客户端将 MCP 服务器作为子进程启动,通过标准输入输出进行交流
- SSE
SSE
全称是 Server-Sent Events
,是一种 HTTP 服务器推送技术,允许服务器向客户端发送实时更新。在 MCP 的 SSE 传输机制中,服务器作为独立进程运行,可以处理多个客户端连接。
首先服务器必须提供两个端点:
- SSE 端点 - 用于客户端建立连接并接收来自服务器的消息
- HTTP POST 端点 - 用于客户端向服务器发送消息
当客户端连接时,服务器必须发送一个包含客户端用于发送消息的 URI 的 endpoint 事件。所有后续的客户端消息必须作为 HTTP POST 请求发送到此端点。服务器消息作为 SSE message 事件发送,消息内容以 JSON 格式编码在事件数据中。
总体而言,SSE 能够支持多个客户端,使用起来更为简便,并且可以统一处理权限相关逻辑;而 Command 则更适合用于一些本地工具和通用接口的调用。
资源类型
MCP Server 可以提供三种主要类型的功能:
- 资源(Resources):可以被客户端读取的类文件数据,如 API 响应或文件内容。
- 工具(Tools):可以被 LLM 调用的函数,需要用户批准。
- 提示(Prompts):预先编写的模板,帮助用户完成特定任务。
如何开发一个MCP
因为内容较多,准备单独写一篇文章,敬请期待。
🙏 对 AI、Devops、架构等感兴趣的小伙伴可以关注我的公众号“二进制茶馆”,获取实时资讯和学习资料