Cursor 内置三大文档工具,为AI 编程注入精准上下文

在之前文章我们曾介绍,由于大模型自身原因,不可能掌握最新的框架和库,因此在编程中经常会出现陈旧、过时的接口或者生造一个不存在的接口导致代码生成不正确。因此,有效利用各类文档资源,为 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 不仅支持消费现有文档,还具备协助开发者创建和更新文档的能力,促进知识的沉淀与共享。官方为此也给出了两点建议,

  1. 从代码生成文档:开发者可以选中代码片段,利用 Cursor 快速生成注释、功能描述或初步的 API 文档框架,减轻文档编写负担。
请为选中的 Python 函数生成标准的文档字符串 (docstring),说明其功能、参数和返回值。
  1. 从对话中提取并结构化信息:在与 Cursor 协作解决复杂问题或完成某项设计后,可以指示 Cursor 将交互过程中的关键信息、决策逻辑和代码示例总结成结构化的文档或备忘录。 例如,可以提示:
请将我们刚才关于[特定模块]的讨论内容,整理成一份技术说明,包括主要设计点、遇到的问题、解决方案以及相关的代码示例。

小结

模型能力越来越强,能够正确完成一项编程任务,很多时候模型不是瓶颈,关键取决于是否能够给其提供高质量的上下文。Cursor 通过 @Docs@Web 和 MCP 等功能,为开发者提供了一套强大而灵活的文档交互工具集,辅以动态文档生成能力,有效地弥合了 AI 模型固有知识与项目实际需求之间的鸿沟。熟练运用这些高级文档技巧,开发者可以显著提升与 Cursor 协作的效率和质量,也是未来程序员水平高低的重要衡量标准之一。

参考资料

[1] 

官方建议: https://docs.cursor.com/guides/advanced/working-with-documentation#which-tool-should-i-use%3F

公众号回复“进群”入群讨论。

(文:AI工程化)

发表评论

×

下载每时AI手机APP

 

和大家一起交流AI最新资讯!

立即前往