為什麼文件很重要

文件提供最新且準確的背景資訊。沒有文件時,模型會依賴過時或不完整的訓練資料。文件能幫模型理解像:
  • 最新的 API 與參數
  • 最佳實務
  • 組織慣例
  • 領域術語
還有更多。繼續看下去,了解怎麼直接在 Cursor 內使用文件,不用在不同情境間來回切換。

模型知識截止點

大型語言模型是用截至某個特定時間點的資料訓練出來的,這個時間點稱為「知識截止點」。這代表:
  • 最近的函式庫更新可能不會反映出來
  • 新的框架或工具可能不被模型識別
  • 截止日期之後的 API 變更會被漏掉
  • 自訓練以來,最佳實務可能已經演進
例如,如果一個模型的知識截止點在 2024 年初,它就不會知道 2024 年底才發布的功能,即使是熱門框架也一樣。

我該用哪個工具?

用這張決策樹快速找出最適合你文件需求的做法:

心智模型

工具心智模型
@Docs就像瀏覽並閱讀官方文件
@Web就像在網路上搜尋解答
MCP就像存取自己的內部文件

公開文件

外部文件涵蓋模型對公開資訊可能僅具有限或過時理解的部分。Cursor 提供兩種主要方式來存取這些資訊。

使用 @Docs

@Docs 會把 Cursor 連接到熱門工具與框架的官方文件。當你需要最新、權威的資訊時就用它,像是:
  • API 參考:函式簽名、參數、回傳型別
  • 快速上手指南:安裝、設定、基本用法
  • 最佳實務:官方建議的設計模式與做法
  • 框架專屬除錯:官方疑難排解指南
@
@Docs Next.js How do I set up dynamic routing with catch-all routes?
Agent⌘I
Auto

使用 @Web

@Web 會在即時網路上搜尋最新資訊、部落格文章和社群討論。需要以下內容時就用它:
  • 最新教學:社群產出的內容與範例
  • 比較:比較不同做法的文章
  • 最新動態:最新的更新或公告
  • 多元觀點:針對問題的不同解法
@
@Web latest performance optimizations for React 19
Agent⌘I
Auto

內部文件

內部文件包含你組織特有的資訊,而這些內容在 AI 模型的訓練資料中從未出現。可能包括:
  • 內部 API:自訂服務與微服務
  • 公司標準:程式碼規範、架構模式
  • 專有系統:自訂工具、資料庫、工作流程
  • 網域知識:商業邏輯、法規遵循需求

使用 MCP 存取內部文件

Model Context Protocol(MCP)提供一種標準化方式,把你的私有文件和系統帶進 Cursor。MCP 充當 Cursor 與內部資源之間的薄層介面。 為什麼 MCP 很重要:
  • 模型無法猜出你的內部慣例
  • 自訂服務的 API 文件不會公開
  • 商業邏輯和領域知識對每個組織都是獨一無二的
  • 合規與安全需求因公司而異

常見的 MCP 整合

IntegrationAccessExamples
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 直接從你的程式碼庫產生文件:
@
為這個 Express router 產生 API 文件,包含所有端點、參數與回應格式
Agent⌘I
Auto

來自聊天工作階段

你和 Cursor 的對話其實蘊含很多可以轉成文件的寶貴內容。
解決複雜問題之後:
@
把我們關於設定認證的對話整理成逐步指南,放到團隊 wiki
Agent⌘I
Auto

重點整理

  • 把文件當作上下文能讓 Cursor 更精準、資訊更即時
  • @Docs 查官方文件,用 @Web 看社群知識
  • MCP 把 Cursor 跟你的內部系統接起來
  • 從程式碼和對話產生文件,讓知識隨時維持最新
  • 結合外部與內部文件來源,打造更完整的理解