跳转至

文档查找(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 的宿主环境(例如:Claude Code、Cursor、Codex)。

工作方式

步骤 1:解析库 ID

调用 resolve-library-id MCP 工具,参数如下:

  • libraryName:从用户问题中获取的库或产品名称(例如:Next.js、Prisma、Supabase)。
  • query:用户的完整问题。这有助于改进结果的相关性排序。

在调用 query-docs 之前,需要获取 Context7 兼容的库 ID(格式为 /org/project 或 /org/project/version)。如果没有有效的库 ID,不要调用 query-docs。

步骤 2:选择最佳匹配

从解析结果中,使用以下标准选择一个结果:

  • 名称匹配:优先选择与用户所问内容完全匹配或最接近的结果。
  • 基准分数:更高的分数表示更好的文档质量(100 为最高)。
  • 来源信誉:如果可用,优先选择 High 或 Medium 信誉。
  • 版本:如果用户指定了版本(例如:“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 中间件

  1. 使用 libraryName: "Next.js"、query: "Next.jsミドルウェアを設定する方法は?" 调用 resolve-library-id。
  2. 从结果中,根据名称和基准分数选择最佳匹配(例如:/vercel/next.js)。
  3. 使用 libraryId: "/vercel/next.js"、query: "Next.jsミドルウェアを設定する方法は?" 调用 query-docs。
  4. 使用返回的片段和文本回答,并在相关时包含文档中最小的 middleware.ts 示例。

示例:Prisma 查询

  1. 使用 libraryName: "Prisma"、query: "関係を持つクエリ方法は?" 调用 resolve-library-id。
  2. 选择官方 Prisma 库 ID(例如:/prisma/prisma)。
  3. 使用该 libraryId 和查询调用 query-docs。
  4. 返回 Prisma Client 模式(例如:include 或 select)以及文档中的简短代码片段。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC