3.3 Context7:把最新库文档拉进上下文

它是什么

upstash/context7,约 63456 star——这是本书所有推荐里 star 数最高的一个。TypeScript,npm 包 @upstash/context7-mcp(实测版本 4.4.4)。

官方定位:Context7 Platform -- Up-to-date docs for AI agents(面向 AI agent 的最新文档平台)。在 2026 年 3 月搜索量榜单排第 5(约 32k/月)。

它解决什么问题

模型写代码时最大的隐患是 API 幻觉:它记得的可能是三年前的用法。

模型可能写出:
  from langchain.llms import OpenAI          # 已废弃的路径
  client.chat.completions.create(...)        # 旧版 SDK 签名

Context7 的做法是:把指定库、指定版本的最新官方文档直接拉进上下文,让模型照当下的文档写。效果上,相当于给模型配了一个永远最新的“官方文档口袋书”。

安装与配置

npm install --global @upstash/context7-mcp
- insert:
    - id: context7
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: context7
        transport: stdio
        command: npx
        args: ["-y", "@upstash/context7-mcp"]
        cwd: !!js process.cwd()

serverName 用 context7,工具前缀为 mcp__context7__...。

典型用法

指定库与版本:

用 context7 拉取 Next.js 15 的 App Router 文档,
然后按最新 API 写一个带服务端组件的页面。

对比两个版本:

用 context7 分别拉取 React 18 与 19 的文档,
列出 useEffect 相关 API 的差异。

防幻觉:

写这段代码前,先用 context7 确认 pandas 2.2 的 read_csv 参数,
不要凭记忆写。

最后这个用法极其实用——把“先查文档”变成固定动作,从根上减少因为 API 记忆过期导致的编译错误和运行时异常。

使用技巧

技巧一:任务里带版本号。 “用 React 19” 比 “用 React” 得到的文档精准得多。版本越具体,拉到的越是你真正在用的那一份。

技巧二:配合只读约束。 Context7 只读文档不改代码,天然安全,可以让模型放心调用,不必担心它“顺手改了什么”。

技巧三:和 fetch 互补。 Context7 面向“已知库名”,fetch(见 2.4 fetch)面向“已知 URL”。查库用前者,读指定页面用后者。两者覆盖“按名查文档”与“按址读页面”两种需求。

谁该装

情况 建议
经常写依赖第三方库的代码 必装,显著降低幻觉
做框架升级评估 建议
只用标准库 / 自研代码 不必

排错

现象 原因
找不到库 库名拼写或大小写不对,用官方全名
拉到的是旧版本 没在请求里指定版本号
文档内容偏少 该库在 Context7 收录的快照有限,换 fetch 直读官网

小结

  • Context7 star 数(约 63.5k)是本书推荐里最高的,搜索量第 5。
  • 它把指定库、指定版本的最新文档拉进上下文,治 API 幻觉。
  • 用法要点:任务里带版本号;与 fetch 互补(查库 vs 读页)。

延伸阅读