Context7:让 AI 编程助手按需读取最新版本文档

AI 编程助手写代码时用错 API,问题通常出在它记住的 API 版本过时了,而不是模型不够聪明。Context7 是一个针对这个问题的开源工具(仓库:github.com/upstash/context7):生成代码前,先按你使用的库和版本抓取最新文档,注入模型上下文,再让它回答。项目由 Upstash 开发维护,GitHub 上 61.2k Star、2.9k Fork、MIT 许可证(数据截至 2026 年 8 月,来自仓库主页),支持 Cursor、Claude Code、OpenCode 等编程客户端,一条命令即可装好。如果你经常让 AI 助手写 Next.js、Supabase、MongoDB 这类快速迭代库的代码,值得装上。

问题根源:模型凭过时记忆写代码

训练数据有截止时间。模型对某个库的认知停留在训练时点的版本,而库的接口每年都在变:函数改名、参数迁移、旧写法废弃。结果就是三类典型错误:

  • 代码示例基于一年前的训练数据,已经过时;
  • 给出实际不存在的 API;
  • 用旧版本包的通用答案回答新版本的问题。

这类错误在 Next.js、Supabase、MongoDB 这类快速迭代的库里尤其常见。让模型写一个 Next.js 中间件做 JWT 校验,它可能给出基于旧版 App Router 的写法,在新版本里直接编译不过。

解决方式:把文档放进 prompt

Context7 的做法很直接:查库、取文档、注入 prompt。

  • 在 prompt 里加一句 use context7,模型回答前会先拉取对应库的最新文档;
  • 知道具体库时,用 use library /supabase/supabase 直接指定,跳过库匹配步骤;
  • 需要特定版本,直接在 prompt 里写版本号,例如 How do I set up Next.js 14 middleware? use context7,会自动匹配 14 版的文档。

模型从「回忆 API」变成「读文档回答」。它的答案直接来自拉取到的当前文档,而不是训练数据里的旧记忆,不会用到已废弃的 API。

两种接入方式

接入方式按客户端分两类,任选其一。

CLI + Skills(针对 Cursor、Claude Code、OpenCode):执行 npx ctx7 setup,通过 OAuth 登录自动生成 API key,并安装一个 skill,让编程助手按需执行 ctx7 命令取文档。可用 --cursor、--claude、--opencode 参数指定目标客户端。

MCP server(适合 Claude Desktop、VS Code、Windsurf 等所有 MCP 兼容客户端):注册远程端点 https://mcp.context7.com/mcp,用 Authorization: Bearer <API key> 请求头鉴权,模型通过原生 MCP 工具查询文档。

两种方式的 API key 都可以在 context7.com/dashboard 免费申请,用于提高速率上限;不配 key 也能以匿名额度使用。卸载执行 npx ctx7 remove。

实际提供的工具

CLI 有两个命令:

  • ctx7 library <名称> <问题>:在文档索引中搜索库,返回匹配的库和 ID;
  • ctx7 docs <libraryId> <问题>:按 Context7 库 ID 取文档,ID 形如 /mongodb/docs、/vercel/next.js。

MCP 侧对应两个工具:

  • resolve-library-id:把通用库名解析成 Context7 库 ID,入参 libraryName + query;
  • query-docs:按库 ID 取文档,入参 libraryId + query。

项目概况

  • 仓库 upstash/context7,由 Upstash(Serverless Redis 与数据库服务商)维护,TypeScript 占比 93.1%;
  • 106 个 release,最新 @upstash/context7-mcp@4.0.3(2026 年 8 月 21 日发布);最新提交 2026 年 8 月 24 日,130 名贡献者;
  • CLI、MCP server、TypeScript SDK、Vercel AI SDK tools、pi.dev 扩展共 5 个 npm 包;
  • README 提供中英日韩等 15 种语言版本。

适用场景

先判断再装:

  • 经常遇到模型给出旧写法、幻觉 API:建议装;
  • 只在少数稳定库上做样板代码:收益有限,可以不用。

开始使用

npx ctx7 setup 完成后,在涉及库 API 的提问末尾加 use context7 即可,例如 How do I set up Next.js 14 middleware? use context7。

Context7 的核心理念可以概括成一句话:把「模型记得的 API」替换成「当下真实的 API」。接入成本是一条命令,不配 API key 也能用。