文件查詢 (Context7) 是做什麼的?
當使用者詢問關於函式庫、框架或 API 的問題時,請透過 Context7 MCP(工具 resolve-library-id 和 query-docs)取得目前文件,而非依賴訓練資料。
核心概念
- Context7:公開即時文件的 MCP 伺服器;應取代訓練資料用於函式庫與 API 查詢。
- resolve-library-id:從函式庫名稱與查詢內容回傳 Context7 相容的函式庫識別碼(例如
/vercel/next.js)。 - query-docs:針對給定的函式庫識別碼與問題取得文件與程式碼片段。請務必先呼叫 resolve-library-id 以取得有效的函式庫識別碼。
使用時機
在使用者出現以下情況時啟動:
- 提出安裝或設定相關問題(例如「如何設定 Next.js 中介軟體?」)
- 請求需要依賴某函式庫的程式碼(「寫一個 Prisma 查詢來……」)
- 需要 API 或參考資訊(「Supabase 有哪些驗證方法?」)
- 提及特定的框架或函式庫(React、Vue、Svelte、Express、Tailwind、Prisma、Supabase 等)
當請求依賴於函式庫、框架或 API 的準確且最新行為時,均應使用此技能。適用於所有已配置 Context7 MCP 的平台(例如 Claude Code、Cursor、Codex)。
運作方式
步驟 1:解析函式庫識別碼
使用 resolve-library-id MCP 工具,並提供以下參數:
- libraryName:從使用者問題中取得的函式庫或產品名稱(例如
Next.js、Prisma、Supabase)。 - query:使用者的完整問題。這有助於提升結果的相關性排序。
在查詢文件前,必須先取得 Context7 相容的函式庫識別碼(格式為 /org/project 或 /org/project/version)。未經此步驟取得有效識別碼前,不得呼叫 query-docs。
步驟 2:選擇最佳結果
從解析結果中選取一個結果,依據以下條件:
- 名稱匹配:優先選擇與使用者要求完全或最接近的項目。
- 基準評分:分數越高表示文件品質越好(滿分 100)。
- 來源信譽:若有可能,優先選擇信譽為高或中的來源。
- 版本:若使用者指定了版本(例如「React 19」、「Next.js 15」),則優先選擇列出的版本專用識別碼(例如
/org/project/v1.2.0)。
步驟 3:取得文件
使用 query-docs MCP 工具,並提供以下參數:
- libraryId:從步驟 2 選取的 Context7 函式庫識別碼(例如
/vercel/next.js)。 - query:使用者的具體問題或任務。請盡量具體以獲得相關的程式碼片段。
限制:每個問題最多呼叫 query-docs(或 resolve-library-id)三次。若三次後仍無法得到明確答案,請如實告知不確定性,並使用現有最佳資訊解答,切勿自行臆測。
步驟 4:使用文件
- 使用取得的當前資訊回答使用者的問題。
- 若有益於說明,請附上文件中的相關程式碼範例。
- 必要時引用函式庫或版本(例如「在 Next.js 15 中……」)。
範例
範例:Next.js 中介軟體
- 呼叫 resolve-library-id,參數為
libraryName: "Next.js",query: "如何設定 Next.js 中介軟體?"。 - 從結果中根據名稱與基準評分選取最佳匹配(例如
/vercel/next.js)。 - 呼叫 query-docs,參數為
libraryId: "/vercel/next.js",query: "如何設定 Next.js 中介軟體?"。 - 使用回傳的程式碼片段與文字回答問題;若相關,可附上文件中的最小
middleware.ts範例。
範例:Prisma 查詢
- 呼叫 resolve-library-id,參數為
libraryName: "Prisma",query: "如何查詢關聯資料?"。 - 選取官方的 Prisma 函式庫識別碼(例如
/prisma/prisma)。 - 呼叫 query-docs,使用該
libraryId與查詢。 - 回傳 Prisma Client 的模式(例如
include或select),並附上文件中的簡短程式碼片段。
範例:Supabase 驗證方法
- 呼叫 resolve-library-id,參數為
libraryName: "Supabase",query: "有哪些驗證方法?"。 - 選取 Supabase 文件的函式庫識別碼。
- 呼叫 query-docs;摘要說明驗證方法,並從取得的文件中展示最小範例。
最佳實踐
- 具體明確:盡可能使用使用者的完整問題作為查詢,以獲得更好的相關性。
- 注意版本:當使用者提及版本時,若解析步驟中有版本專用的識別碼,請優先使用。
- 優先官方來源:若有多個匹配結果,請優先選擇官方或主要套件,而非社群分支。
- 不傳送敏感資料:在傳送查詢至 Context7 前,請將 API 金鑰、密碼、令牌及其他機密資訊移除。將使用者的問題視為可能包含機密資料,再傳遞給 resolve-library-id 或 query-docs。