文档查询 (Context7) 是做什么的?
当用户询问有关库、框架或 API 的问题时,通过 Context7 MCP(工具 resolve-library-id 和 query-docs)获取最新文档,而不是依赖训练数据。
核心概念
- Context7:一个提供实时文档的 MCP 服务器;对于库和 API 相关问题,应优先使用它而非训练数据。
- resolve-library-id:根据库名称和查询返回 Context7 兼容的库 ID(例如
/vercel/next.js)。 - query-docs:根据给定的库 ID 和问题获取文档和代码片段。务必先调用 resolve-library-id 获取有效的库 ID。
何时使用
当用户出现以下情况时激活该技能:
- 提出设置或配置问题(例如“如何配置 Next.js 中间件?”)
- 请求依赖于某个库的代码(“写一个 Prisma 查询实现……”)
- 需要 API 或参考信息(“Supabase 有哪些身份验证方法?”)
- 提到特定的框架或库(React、Vue、Svelte、Express、Tailwind、Prisma、Supabase 等)
只要请求依赖于库、框架或 API 的准确、最新行为,就应使用该技能。适用于已配置 Context7 MCP 的各类 AI 编码助手(例如 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: "如何设置 Next.js 中间件?"。 - 从结果中根据名称和基准分数选择最佳匹配(例如
/vercel/next.js)。 - 调用 query-docs,传入
libraryId: "/vercel/next.js",query: "如何设置 Next.js 中间件?"。 - 使用返回的片段和文本回答;如有必要,从文档中包含一个最小的
middleware.ts示例。
示例:Prisma 查询
- 调用 resolve-library-id,传入
libraryName: "Prisma",query: "如何查询关联关系?"。 - 选择官方的 Prisma 库 ID(例如
/prisma/prisma)。 - 使用该
libraryId和查询调用 query-docs。 - 返回 Prisma Client 模式(例如
include或select)以及来自文档的简短代码片段。
示例:Supabase 身份验证方法
- 调用 resolve-library-id,传入
libraryName: "Supabase",query: "有哪些身份验证方法?"。 - 选择 Supabase 文档库 ID。
- 调用 query-docs;总结身份验证方法,并从获取的文档中展示最小示例。
最佳实践
- 具体化:尽可能使用用户的完整问题作为查询,以获得更好的相关性。
- 版本感知:当用户提到版本时,如果解析步骤中提供,优先使用版本特定的库 ID。
- 偏好官方来源:当有多个匹配时,优先选择官方或主要包,而非社区分支。
- 不包含敏感数据:在发送给 Context7 的任何查询中,移除 API 密钥、密码、令牌和其他秘密。在将用户问题传递给 resolve-library-id 或 query-docs 之前,应将其视为可能包含敏感信息。