文档提供最新、准确的上下文。没有文档,模型只能依赖过时或不完整的训练数据。文档能帮助模型理解:
- 最新的 API 和参数
- 最佳实践
- 团队/组织的约定
- 领域术语
以及更多。继续往下看,了解怎么在 Cursor 里直接用文档,不用来回切换上下文。
大型语言模型只在某个时间点之前的数据上训练,这个时间点称为“知识截止点”。这意味着:
- 最近的库更新可能不会体现
- 新出现的框架或工具可能不被认识
- 截止日期之后的 API 变更会被遗漏
- 最佳实践可能在训练后已发生变化
比如,如果一个模型的知识截止点在 2024 年初,它就不了解 2024 年底发布的功能,即便这些功能属于非常流行的框架。
用这份决策树快速确定最适合你文档需求的做法:
| 工具 | 心智模型 |
|---|
@Docs | 就像在浏览和阅读官方文档 |
@Web | 就像在网上搜索解决方案 |
| MCP | 就像访问你的内部文档 |
外部文档指的是公开可用、而模型对其了解可能有限或已过时的信息。Cursor 提供两种主要方式来获取这些信息。
@Docs 会把 Cursor 连接到主流工具和框架的官方文档。需要最新、权威的信息时就用它,适用于:
- API 参考:函数签名、参数、返回类型
- 入门指南:安装与设置、配置、基础用法
- 最佳实践:官方推荐的模式
- 框架相关调试:官方故障排查指南
@Docs Next.js How do I set up dynamic routing with catch-all routes?
@Web 会在实时互联网中搜索最新资讯、博客文章和社区讨论。需要时用它来查找:
- 最新教程:社区产出的内容与示例
- 对比:比较不同方案的文章
- 最新动态:刚发布的更新或公告
- 多元视角:解决问题的不同思路
@Web latest performance optimizations for React 19
内部文档包含你组织特有的信息,AI 模型在训练时从未接触过。这可能包括:
- 内部 API:自定义服务与微服务
- 公司规范:编码约定、架构模式
- 专有系统:自定义工具、数据库、工作流
- 领域知识:业务逻辑、合规要求
Model Context Protocol(MCP)提供了一种标准化方式,把你的私有文档和系统接入 Cursor。MCP 充当 Cursor 与内部资源之间的轻量中间层。
为什么 MCP 很重要:
- 模型无法揣测你的内部约定
- 自定义服务的 API 文档并不公开
- 业务逻辑和领域知识对你的组织来说是独有的
- 合规与安全要求因公司而异
| Integration | Access | Examples |
|---|
| Confluence | 公司 Confluence 空间 | 架构文档、内部服务的 API 规范、编码标准与指南、流程文档 |
| Google Drive | 共享文档与文件夹 | 规格说明、会议纪要与决策记录、设计文档与需求、团队知识库 |
| Notion | 工作区数据库与页面 | 项目文档、团队 wiki、知识库、产品需求、技术规范 |
| Custom | 内部系统与数据库 | 专有 API、遗留文档系统、自定义知识库、专项工具与工作流 |
如果有特殊需求,你可以构建自定义 MCP 服务器来:
- 抓取内部网站或门户
- 连接专有数据库
- 访问自定义文档系统
- 从内部 wiki 或知识库拉取内容
如果你构建了自定义 MCP 服务器,也可以暴露工具让 Cursor 更新文档
用于抓取内部文档的自定义 MCP 服务器示例:
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 文档
JSDoc 注释
README 创建
为这个 Express 路由器生成 API 文档,包含所有端点、参数和响应格式
你和 Cursor 的对话里有很多有价值的意图,都可以转成文档。
Problem Solving
Architecture
Debugging
在解决复杂问题之后:把我们关于设置身份验证的对话整理成团队 wiki 的分步指南
- 把文档作为上下文能让 Cursor 更准确、更及时
- 用
@Docs 查官方文档,用 @Web 获取社区知识
- MCP 架起 Cursor 与你内部系统之间的桥梁
- 从代码和对话生成文档,保持知识最新
- 结合外部与内部文档来源,获得更全面的理解