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