Github頁面:Context7mcp
問題:AI 助手的知識截止日
「這段程式碼有問題,Upstash Redis 的連線方式好像不對...」
即使是最新的 LLM,處理快速迭代的函式庫時都有同樣的罩門:訓練資料有截止日,新的 API 或 breaking change 根本不在它的知識範圍內。你貼給它的是 Next.js 14 的問題,它給你的可能是 Next.js 12 的寫法。
這正是 Upstash 團隊開發 Context7 要解決的事。
Context7 怎麼運作
Context7 是一個 MCP 伺服器(Model Context Protocol server)。它不是靠爬蟲快取一份舊文件,而是在 AI 助手提出請求時,即時從官方文件與原始碼庫抽取相關片段,組成 AI 可直接讀取的上下文,再送回對話。
整個流程對使用者是透明的:你問問題,AI 在背景呼叫 Context7 的工具取回文件,然後根據真實文件回答。和直接問 AI 的差別是 — 它參考的是你指定版本的官方說明,不是兩年前訓練進去的印象。
Context7 的核心設計有幾點值得注意:
文件來源直接指向原始碼儲存庫和官方文件站,不經第三方轉手。過濾演算法會根據你的查詢主題篩掉不相關的段落,避免把整份 README 塞進上下文把 token 燒光。現在支援 Cursor、Windsurf、VS Code、Zed、Claude Desktop 等主流編輯器,只要客戶端支援 MCP 協定就能接入。
安裝設定
以 Cursor 為例,在 MCP 設定檔加入以下內容:
1 | { |
Claude Desktop 的設定檔路徑在 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows),格式相同:
1 | { |
設定完成後,Context7 會在 MCP 客戶端中暴露兩個工具:
- resolve-library-id:把一般的函式庫名稱(如
nuxt-ui)轉換成 Context7 內部 ID(如/nuxt/ui) - query-docs:拿著上一步取得的 ID,加上你的查詢主題,取回對應的文件片段
這兩個工具通常由 AI 自動串接呼叫,你不需要手動輸入工具名稱。在支援 MCP 的編輯器中提示 AI「use context7」是在告訴它優先走 Context7 這條路徑取得文件,底層還是靠 AI 判斷何時呼叫哪個工具。如果 AI 沒有自動取用文件,可以在提示裡明確說「用 context7 查 X 的文件」,或直接指定 resolve-library-id 工具。
實際使用情境
舉個具體例子:你要求 AI 助手「用 Nuxt UI 建立一個有自動完成功能的下拉選單」。
沒有 Context7 的情況下,AI 可能會套用它訓練時見過的舊版 component API,組件名稱或 prop 名稱跟現在的版本對不上。有了 Context7,AI 會先呼叫 resolve-library-id 取得 /nuxt/ui 的 ID,再用 query-docs 查「autocomplete combobox」相關段落,拿到目前版本的實際用法後再產生程式碼。
對於 AI 幾乎沒見過的小眾函式庫或公司內部的 SDK,效果更明顯 — 它不再需要靠猜的。
取得 API 金鑰
不帶 API 金鑰也能使用,但匿名請求走 IP 限流,高頻查詢容易觸發 429。到 context7.com/dashboard 申請免費 API 金鑰後,把它加進設定的 headers:
1 | { |
有金鑰之後可以在 dashboard 查看用量和重置時間,限額依方案而定。
適合的使用場景
Context7 在下列情況最有感:
- 快速迭代的框架:Next.js、React Query、Tailwind CSS 這類版本更新頻繁、breaking change 多的工具,AI 靠訓練記憶容易出錯。
- 較新或小眾的函式庫:訓練資料覆蓋率低,AI 本來就不熟。
- 需要指定版本的查詢:
resolve-library-id支援版本格式/org/project/version,可以鎖定特定版本的文件,在升級遷移或維護舊系統時很實用。
如果你是函式庫作者,也可以把自己的專案提交到 Context7,讓使用者的 AI 助手能查到正確的 API 用法。




