文件提供最新且準確的背景資訊。沒有文件時,模型會依賴過時或不完整的訓練資料。文件能幫模型理解像:
- 最新的 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 router 產生 API 文件,包含所有端點、參數與回應格式
你和 Cursor 的對話其實蘊含很多可以轉成文件的寶貴內容。
Problem Solving
Architecture
Debugging
解決複雜問題之後:把我們關於設定認證的對話整理成逐步指南,放到團隊 wiki
- 把文件當作上下文能讓 Cursor 更精準、資訊更即時
- 用
@Docs 查官方文件,用 @Web 看社群知識
- MCP 把 Cursor 跟你的內部系統接起來
- 從程式碼和對話產生文件,讓知識隨時維持最新
- 結合外部與內部文件來源,打造更完整的理解