你是否曾经遇到过这种情况:让AI帮你写一段代码,它却用了某个库已经不存在的旧版API。或者你问它“Next.js 15怎么配置路由”,它却给你返回Next.js 12的答案。这不是AI的问题,而是它的训练数据已经过时了。现在的库更新太快,几个月前的知识可能就已经落后了。

现在有一个解决方案可以让AI始终使用最新的文档。context7是一个平台,它把最新版的官方文档直接注入到你的AI提示词里。你不需要离开编辑器去查文档,也不需要担心AI会胡编乱造API。只需要在问题后面加上“use context7”,它就会自动获取对应的最新文档和代码示例。

项目基本信息

信息项详情
项目名称context7
GitHub地址https://github.com/upstash/context7
项目描述Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors
作者upstash
开源协议MIT License
开源状态公开状态
LanguagesTypeScript 92.8%, JavaScript 7.0%, Dockerfile 0.2%
支持平台Windows / macOS / Linux / Web
最后更新2026-04-26

一、项目介绍

context7是一个开源平台,它的核心功能是为AI编程助手提供最新的、版本准确的代码文档。它解决了当前AI编程中一个很实际的问题:大语言模型的训练数据有截止日期,而软件库的版本更新远快于这个节奏。

context7的工作原理是这样的:它维护了一个庞大的文档库,定期从官方源(比如npm、GitHub、PyPI)抓取最新的文档和示例代码。当你通过它向AI提问时,context7会先解析你的问题,找到相关的库和版本,然后把对应的文档片段拼接到你的原始问题中,再发送给AI。这样AI在生成回答时,看到的就是最新的、正确的信息。

context7提供了两种使用模式:

CLI + Skills模式:通过ctx7 setup命令安装一个“技能”(skill),它会引导AI代理在需要时自动调用ctx7命令行工具来获取文档。这种模式不依赖MCP协议,兼容性更广。

MCP模式:注册一个context7 MCP服务器,让AI代理能够直接调用两个原生工具:resolve-library-id(解析库名称获得标准ID)和query-docs(根据库ID和问题查询文档)。这种模式更直接、响应更快。

值得注意的是,context7本身是开源的(MIT协议),但它依赖的后端组件(解析引擎、爬虫引擎、API后端)并没有开源。不过这并不影响你使用这个服务——你可以免费注册获取API密钥,免费额度足够日常使用。

二、核心优势

彻底解决AI的知识陈旧问题

这是context7最核心的价值。AI模型的训练数据通常有几周到几个月甚至更长时间的延迟,而很多库每周都会发布新版本。context7直接从官方源抓取文档,保证了信息的时效性。你问Next.js 15的问题,它不会给你Next.js 12的答案。

零切换成本的工作流

你不需要离开IDE去浏览器查文档,也不需要手动复制粘贴。直接在聊天框里输入问题,加上“use context7”或者用特定的语法(比如use library /vercel/next.js),AI就会自动获取正确的信息。这个体验非常流畅。

对多种编程工具的广泛支持

context7支持几乎所有主流的AI编程工具:Cursor、Claude Code、VS Code、Windsurf、OpenCode等等。而且提供了多种安装方式:一键设置脚本(npx ctx7 setup)、手动MCP配置、OAuth认证。无论你用什么工具,都有对应的集成方法。

库ID系统和版本感知

context7为每个库分配了唯一的ID,比如/mongodb/docs/vercel/next.js。你可以在问题中直接指定ID,跳过库匹配步骤,提高准确性和速度。而且版本感知能力很强,你提到“Next.js 14”,它就会找14版的文档,不会混淆。

免费的API额度

个人开发者注册后可以获得免费的API密钥,有合理的速率限制。对于日常的开发咨询来说,这个额度通常是够用的。如果你需要更高的限制,也可以付费升级。

透明的错误处理

当context7找不到某个库或者文档抓取失败时,它会返回清晰的错误信息,而不是默默地给AI喂错误的数据。这让调试和排错变得容易很多。

三、适用场景

使用新库或新框架的早期

当你尝试一个刚发布不久的库,官方文档可能还很新鲜,但AI的训练数据里可能完全没有。这时context7就非常有用。比如你问“怎么用Hono框架的WebSocket?”,它会把最新的Hono文档喂给AI。

日常开发中的API查询

这是最频繁的场景。你想知道“Lodash中怎么深度克隆一个对象”,但没有记住具体的方法名。有了context7,AI会基于最新的Lodash文档给出准确的答案,而不是猜一个可能已被废弃的方法。

学习和理解新概念

当你学习一个新的技术栈,比如“学习Supabase的行级安全策略”。context7会把Supabase的认证和权限文档带给AI,然后AI可以基于这些文档给你讲解和提供示例。

代码迁移和升级

当你需要把一个项目从旧版库升级到新版,比如从React 17升级到18。你可以问“React 18中createRoot的用法和旧的ReactDOM.render有什么区别?”,context7会拉取React 18的文档,AI就能给出准确的迁移指导。

团队内部的知识共享

在一个团队中,不同成员可能使用不同版本的库。利用context7的版本感知能力,你可以针对特定的版本号提问,确保生成的代码和建议与团队的项目环境一致。

四、安装教程

context7的安装非常简单。它不需要复杂的配置,大多数情况下一个命令就能搞定。

前置要求

你需要一个支持扩展或MCP的AI编程工具。本教程以Cursor和Claude Code为例。

你还需要一个免费的context7 API密钥。访问 context7.com/dashboard 注册并登录,在控制台中找到你的API密钥(或者跳过,不使用API密钥,但额度会很低)。

一键安装(推荐)

这是最简单的方式。在终端中运行以下命令:

npx ctx7 setup

这个命令会做几件事:

  1. 引导你通过OAuth登录context7账户(或者手动输入API密钥)
  2. 询问你使用哪个AI编程工具(Cursor、Claude Code、OpenCode等)
  3. 自动安装相应的技能或MCP配置

安装完成后,你不需要重启工具,就可以开始使用了。

手动配置MCP(如果你更喜欢手动控制)

如果你想手动配置context7作为MCP服务器,可以按照以下步骤。

对于Cursor,在项目的根目录下创建或编辑.cursor/mcp.json

{
  "mcpServers": {
    "context7": {
      "url": "https://mcp.context7.com/mcp",
      "headers": {
        "CONTEXT7_API_KEY": "你的API密钥"
      }
    }
  }
}

对于Claude Code,你需要在配置中添加MCP服务器。虽然具体路径可能因版本而异,但通常可以在设置界面中添加。参考context7官方文档中“MCP Clients”部分。

添加一条规则(可选,但推荐)

为了让AI自动使用context7,而不需要你每次都说“use context7”,你可以添加一条规则。

对于Cursor:进入 Cursor Settings > Rules,添加一条新规则:

Always use Context7 when I need library/API documentation, code generation, setup or configuration steps without me having to explicitly ask.

对于Claude Code:在你的项目根目录下创建或编辑CLAUDE.md文件,加入类似的指令。

验证安装

安装完成后,试着在AI助手中输入:

“How do I create a Next.js middleware that checks for a valid JWT? use context7”

如果配置正确,AI应该会调用context7的工具,并返回基于最新Next.js文档的答案。

五、使用示例

安装完成后,你可以在日常编程中这样使用context7。

基础用法:在问题后加上“use context7”

这是最简单的触发方式。

“Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7”

AI会先调用context7获取Cloudflare Workers的最新文档,然后基于文档给出配置脚本。

指定库ID以提高准确性

如果你确切知道要用的库,直接给出ID可以跳过库匹配步骤,响应更快,结果也更精确。

“Implement basic authentication with Supabase. use library /supabase/supabase for API and docs.”

这里用了/supabase/supabase这个ID。你可以从context7的网站上找到常用库的ID。

指定版本号

当你的项目锁定了某个特定的库版本时,明确提到版本号很重要。

“How do I set up Next.js 14 middleware to handle internationalization? use context7”

context7会优先查找Next.js 14的相关文档,而不是最新的15。

复杂查询:组合多个指令

你可以在一个问题中组合多个需求。

“Show me the Supabase auth API for email/password sign-up, then give me an example of handling errors in React. use context7 for both.”

AI会分别获取Supabase和React的文档,然后给出连贯的答案。

使用MCP工具直接调用(高级)

如果你在开发自己的AI应用,可以直接调用context7暴露的两个MCP工具。

首先,调用resolve-library-id来获取一个库的准确ID:

{
  "name": "resolve-library-id",
  "arguments": {
    "query": "how to set up authentication",
    "libraryName": "next.js"
  }
}

它会返回类似/vercel/next.js的ID。然后你可以用这个ID来查询文档:

{
  "name": "query-docs",
  "arguments": {
    "libraryId": "/vercel/next.js",
    "query": "如何配置中间件进行身份验证"
  }
}

返回的文档片段会被注入到你的上下文中。

六、常见问题

context7找不到我需要的库

context7的库列表是社区贡献的,虽然已经收录了数千个常用库,但可能还有一些小众的库没有被收录。你可以通过context7网站提交新的库。另外,确保你使用了准确的库名称,有时候“react-router”和“react-router-dom”是有区别的。

返回的文档不完整或质量不高

context7抓取的文档质量取决于官方的文档结构。如果某个库的官方文档本身质量不高(比如缺少示例、结构混乱),context7抓取到的也会受影响。你可以尝试指定更具体的查询词,或者使用库ID直接定位。

API密钥额度用完了

免费的API密钥有速率限制。如果你的使用量比较大,可以考虑升级到付费计划,或者注册多个免费账户(虽然不推荐)。同时,尽量精确你的查询,避免无效的调用。比如直接指定库ID和版本号,可以减少context7的匹配开销。

在VS Code中无法正常激活

VS Code的MCP支持相对较新。请确保你使用的是最新版本的VS Code以及MCP扩展。另外,检查.vscode/mcp.json的格式是否正确。也可以尝试使用CLI + Skills模式,它不依赖MCP,兼容性更好。

AI似乎忽略了我的“use context7”指令

这通常是因为AI模型在长上下文中丢失了对指令的注意力。可以试试把“use context7”放在问题的开头或结尾,并且单独成行。也可以使用更明确的提示:“Use the Context7 tool to get the latest documentation.”

“uninstall”命令存在但没有在文章中详细说明

是的,如果你想完全移除context7的配置,可以运行:

npx ctx7 remove

这会清除由setup命令生成的配置。但如果你全局安装了ctx7包,还需要单独运行npm uninstall -g ctx7来移除它。

七、总结

context7是一个精巧而实用的工具。它没有试图解决所有问题,而是专注于一个痛点:让AI编程助手能够访问最新的文档。这个问题的解决,对日常开发效率的提升是很直接的。

一个显著的成就是它的简洁性。用户不需要理解MCP、不需要配置JSON、不需要管理API密钥(虽然推荐使用),一个命令就能完成安装。这种“just works”的体验,是很多开源项目难以做到的。

从技术角度看,context7的架构是聪明的。它把大部分复杂性移到了后端服务,而开源的这部分只负责客户端集成。这既保证了核心能力的专业性(文档抓取和解析很复杂),又保证了客户端的透明度和可定制性。

当然,context7也不是万能的。它依赖官方文档的质量,对于文档缺失或混乱的库,效果会打折扣。而且,它目前主要覆盖编程库,对于框架、平台、工具的文档支持还有提升空间。但考虑到项目还在高速发展中(53.7k stars,频繁更新),这些问题应该会逐步改善。

总的来说,如果你是一名经常使用AI辅助编程的开发者,context7是一个值得加入工具箱的伙伴。它让AI的答案从“大概对”变成了“准确可用”,这个提升是实实在在的。

标签: 内容抓取

已有 33 条评论

    1. JenniferMartinez JenniferMartinez

      The library ID system is smart. I use /vercel/next.js all the time and it never fails.

    2. RobertTaylor RobertTaylor

      I wish there was a way to see which version of a library it's fetching. Sometimes I need older docs.

    3. LisaAnderson LisaAnderson

      The free tier is generous. I've been using it for a month and haven't hit the limit yet.

    4. ThomasHernandez ThomasHernandez

      The error when it can't find a library is very clear. No silent failures like other tools.

    5. PatriciaMoore PatriciaMoore

      I compared answers with and without Context7. The difference is night and day on new libraries.