在之前文章我们曾介绍,由于大模型自身原因,不可能掌握最新的框架和库,因此在编程中经常会出现陈旧、过时的接口或者生造一个不存在的接口导致代码生成不正确。因此,有效利用各类文档资源,为 AI 提供高质量、实时的上下文,是克服这一挑战、充分发挥其潜能的关键。
为此我们介绍了 context7 这样的工具。
必装!有效降低Cursor幻觉,提升代码生成质量的神奇MCP Server!
实际上,类似功能早就出现在 Cursor 中了,但因为不好用不会用,一直不被开发者重视。今天,笔者将给大家带来 Cursor 在这方面的官方建议[1],帮助大家如何更好地利用文档交互特性,为 AI 提供精准上下文,进而提升大模型编程精准性。
Cursor 提供了三个工具,分别处理外部公开文档和私有内部文档。
|
工具
|
定位与功能
|
| --- | --- |
| @Docs
|
类似于直接查阅和浏览官方技术文档。
|
| @Web
|
类似于在互联网上广泛搜索解决方案和前沿资讯。
|
| MCP |
类似于访问和利用您组织内部的私有文档和知识库。
|
1. 使用 @Docs
:获取权威官方信息
@Docs
功能将 Cursor 直接连接到众多流行工具和框架的官方文档。当您需要以下类型的权威信息时,@Docs
是首选:
- API 参考 :精确查找函数签名、参数定义、返回值类型等。
- 入门指南 :快速了解工具的安装、配置和基础使用方法。
- 官方最佳实践 :获取源头推荐的编码模式和设计原则。
- 框架特定调试 :参考官方提供的故障排除步骤和常见问题解答。
通过 @Docs
,开发者可以直接在 Cursor 环境中获取并应用最可信赖的技术信息。
注意:使用前,需要将常用的文档添加到cursor中。
2. 使用 @Web
:探索广泛的社区与网络资源
@Web
功能赋予 Cursor 实时搜索互联网的能力,以获取最新的博客文章、社区讨论和教程。以下场景适合使用 @Web
:
- 近期教程与代码示例 :查找由社区贡献的最新学习资源。
- 技术方案对比 :阅读分析不同方法或工具优劣的文章。
- 追踪最新动态 :了解非常近期的技术更新、版本发布或行业公告。
- 获取多方视角 :参考不同开发者对同一问题的多种解决方案和观点。
@Web
扩展了信息获取的边界,尤其适用于快速变化的技术领域和需要多元视角的场景。
3. 使用 MCP 访问内部文档
企业内部文档,如内部 API 规范、公司编码标准、专有系统说明和特定业务逻辑,是 AI 模型在标准训练过程中无法接触到的。这些信息对保障项目质量和团队协作至关重要。模型上下文协议 (Model Context Protocol, MCP) 是 Cursor 提供的一套标准化方法,旨在将企业的私有文档和内部系统安全、高效地整合到 AI 的认知范围内。MCP 充当 Cursor 与企业内部资源之间的桥梁。
| 集成方案 | 访问内容范围 | 应用示例 | | --- | --- | --- | | Confluence | 企业内部 Confluence 空间 | 查阅架构设计文档、内部服务 API 技术规范、编码标准与指南、项目流程文档等。 | | Google Drive | 共享的企业云端硬盘文档与文件夹 | 获取项目需求规格书、会议记录与决策文档、系统设计文档、团队知识库条目等。 | | Notion | Notion 工作区内的数据库与页面 | 浏览项目管理文档、团队维基页面、知识库文章、产品需求定义、技术规格说明等。 | | 自定义集成 | 组织内部的其他系统与数据库 | 对接专有 API 接口、遗留文档管理系统、定制化知识库、特定业务工具与工作流等。 |
对于具有特殊内部系统或独特文档管理需求的企业,可以构建自定义的 MCP 服务器。这是一个例子(实际上context7就是类似实现):
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
import TurndownService from "turndown";
// Create an MCP server for scraping internal docs
const server = new McpServer({
name: "internal-docs",
version: "1.0.0"
});
const turndownService = new TurndownService();
// Add tool to scrape internal documentation
server.tool("get\_doc",
{ url: z.string() },
async ({ url }) => {
try {
const response = await fetch(url);
const html = await response.text();
// Convert HTML to markdown
const markdown = turndownService.turndown(html);
return {
content: [{ type: "text", text: markdown }]
};
} catch (error) {
return {
content: [{ type: "text", text: `Error scraping ${url}: ${error.message}` }]
};
}
}
);
// Start receiving messages on stdin and sending messages on stdout
const transport = new StdioServerTransport();
await server.connect(transport);
这允许企业根据自身情况,实现对内部网站、专有数据库、自定义文档系统或内部知识库等资源的灵活接入。
另外,文档的价值在于其准确性和时效性。Cursor 不仅支持消费现有文档,还具备协助开发者创建和更新文档的能力,促进知识的沉淀与共享。官方为此也给出了两点建议,
- 从代码生成文档 :开发者可以选中代码片段,利用 Cursor 快速生成注释、功能描述或初步的 API 文档框架,减轻文档编写负担。
请为选中的 Python 函数生成标准的文档字符串 (docstring),说明其功能、参数和返回值。
- 从对话中提取并结构化信息 :在与 Cursor 协作解决复杂问题或完成某项设计后,可以指示 Cursor 将交互过程中的关键信息、决策逻辑和代码示例总结成结构化的文档或备忘录。 例如,可以提示:
请将我们刚才关于[特定模块]的讨论内容,整理成一份技术说明,包括主要设计点、遇到的问题、解决方案以及相关的代码示例。
小结
模型能力越来越强,能够正确完成一项编程任务,很多时候模型不是瓶颈,关键取决于是否能够给其提供高质量的上下文。Cursor 通过 @Docs
、@Web
和 MCP
等功能,为开发者提供了一套强大而灵活的文档交互工具集,辅以动态文档生成能力,有效地弥合了 AI 模型固有知识与项目实际需求之间的鸿沟。熟练运用这些高级文档技巧,开发者可以显著提升与 Cursor 协作的效率和质量,也是未来程序员水平高低的重要衡量标准之一。
参考资料
[1] 官方建议: https://docs.cursor.com/guides/advanced/working-with-documentation#which-tool-should-i-use%3F
公众号回复“进群”入群讨论。