Context7 是什么:给 AI 编程助手补最新文档的动态知识库

用 AI 编程助手(Cursor、Claude Code、OpenCode、Cline 等)时,经常遇到一个尴尬:模型知识截止到某个日期,生成的代码用的是旧版 API——Next.js 14 的 middleware 写法在 15 里改了、OpenAI SDK v4 和 v5 API 完全不同、Playwright 每个小版本都在换东西。

Context7 就是解决这个问题的——给模型动态注入最新的官方文档

它做什么

流程大致:

用户提问:"Next.js 15 middleware 怎么写"

AI 判断需要文档

Context7 拉取 Next.js 最新文档

把相关片段塞进 prompt

模型基于真实文档生成代码

不用它的差别:

  • 无 Context7:模型可能给出 Next.js 13/14 的老写法,甚至凭空造 API
  • 有 Context7:读到 Next.js 15 最新文档,给现在正确的写法

用户侧的触发方式通常是在 prompt 里加 use context7,或者在 MCP 层自动挂上。

覆盖范围

Context7 主要针对开源库和框架

  • 前端:React、Next.js、Vue、Svelte、TanStack Router / Query
  • 后端:Node.js、FastAPI、NestJS、Rails、Spring
  • 语言 SDK:OpenAI、Anthropic、Google GenAI
  • 工具链:Docker、K8s、Terraform、Cloudflare Workers
  • 数据库 ORM:Prisma、Drizzle、SQLAlchemy
  • AI Agent 相关:LangChain、LangGraph、Vercel AI SDK

不覆盖:企业内部私有文档、闭源产品文档(那要走 RAG)。

和 RAG 的区别

看着都是”检索 + 生成”,实际定位不同:

维度Context7通用 RAG
目标数据源公开的开源库官方文档任意语料(企业文档、书、票据)
更新频率跟随上游 release 自动同步需要自己维护索引
检索粒度按库版本和 API 检索通用 embedding 相似度
主要面向AI 编程助手各种问答场景
部署方式云服务 + MCP 客户端自建向量库 + 应用集成

企业内私有代码库还是要自己搭 RAG。Context7 专注公共库这个细分场景,做得比通用 RAG 更精准。

MCP 是怎么接的

Context7 走 MCP(Model Context Protocol)——Anthropic 提出的、给 LLM 用的工具协议。客户端配置例:

{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp"]
    }
  }
}

放到 Claude Desktop / Cursor / OpenCode 的 MCP 配置里,模型就能调用两个工具:

  • resolve-library-id — 把”Next.js” 之类的名字解析成内部 ID
  • get-library-docs — 按 ID 拿具体文档

MCP 客户端会把工具 schema 注入到模型的系统提示里,模型自主决定什么时候调用。

用 OpenCode / Claude Code 集成

~/.claude.json 里加:

{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp"]
    }
  }
}

重启客户端,让 Claude Code 认到工具,之后你可以:

  • 直接问:“帮我按 Next.js 15 官方文档写一个 middleware”
  • 或明确指令:“use context7 查一下 Cloudflare Workers 最新的 D1 API”

模型会自己调用工具、拿到文档片段、然后写代码。

局限

  • 只能查 Context7 收录的库,长尾库覆盖不到
  • 文档质量取决于上游 README / docs 站的质量
  • 有请求配额(免费额度足够个人用)
  • 版本切换很敏感——比如你项目锁死用 Next.js 14,模型可能拉了 15 的文档给你混淆

一句话总结

Context7 = AI 编程助手的动态文档知识库。核心用途是修复”模型不知道最新 API”这个通病。走 MCP 一键接入,Claude Code / Cursor / OpenCode 都能用。