/ 目录 / 演练场 / Context7
● 官方 upstash ⚡ 即开即用

Context7

作者 upstash · upstash/context7

Context7将3万多个库的新鲜、特定版本的文档注入到您的编码代理中,以阻止不存在的幻觉API。

Context7是Upstash的docs-for-LLMs平台。MCP服务器将库名称解析为稳定ID ,然后提取代理所需的确切文档片段—固定到锁定文件中的版本。免费会员等级开箱即用;免费API密钥可提高费率限制。它是从单个npx命令安装的,是跨越2个以上库的任何编码工作流程的最高ROI MCP之一。

为什么要用

核心特性

实时演示

实际使用效果

context7.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": [
        "-y",
        "@upstash/context7-mcp@latest"
      ]
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": [
        "-y",
        "@upstash/context7-mcp@latest"
      ]
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": [
        "-y",
        "@upstash/context7-mcp@latest"
      ]
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": [
        "-y",
        "@upstash/context7-mcp@latest"
      ]
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "context7",
      "command": "npx",
      "args": [
        "-y",
        "@upstash/context7-mcp@latest"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "context7": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@upstash/context7-mcp@latest"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add context7 -- npx -y @upstash/context7-mcp@latest

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: Context7

阻止您的代理产生不存在的幻觉功能

👤 任何人使用AI编码助手,其库比模型截止时间更新 ⏱ ~5 min beginner

何时使用: 您正在使用Next.js 15、Prisma 5、Drizzle、LangChain 0.3或任何快速发展的库,并且您的代理不断发明不存在的函数。

前置条件
  • 节点18 + — node -v
  • 已安装Context7 MCP — 将上面的配置块粘贴到您的Claude桌面/光标/风帆冲浪设置中
步骤
  1. 显式命名库
    使用Context7 ,获取PRISMA的最新文档,并向我展示使用嵌套关系写入执行事务的正确方法。✓ 已复制
    → 客服代表使用相关查询(而不是维基百科风格的摘要)调用resolve-library-id ,然后查询文档
  2. 如果重要,则固定到版本
    我在NEXT @ 15.0.3。使用Context7获取该版本的应用路由器流文档。✓ 已复制
    → 引文包括版本;代码使用基于文件的约定,而不是getServerSideProps
  3. 交叉检查您自己的代码
    读取src/lib/db.ts中的导入,然后使用Context7验证我导入的每个函数实际上都存在于drizzle-orm 0.30.x中。✓ 已复制
    → 包含文档链接的每次导入✓/✗报告

结果: Agent输出使用真实、当前的API (首先尝试) ,而不是看似合理的发明API。

注意事项
  • 客服代表在第二个转弯时忘记致电Context7 — 在系统提示符或CLAUDE.md中输入“always use Context7 for library questions”
  • 库名称不明确(例如“supabase” ) — 让resolve-library-id返回匹配;选择特定的包( supabase-js vs @ supabase/ssr )
搭配使用: filesystem · github

使用当前惯用模式搭建新功能的脚手架

👤 工程师在不熟悉或较新版本的框架中启动功能 ⏱ ~15 min intermediate

何时使用: 您需要向Next.js 15应用程序添加身份验证,并希望跳过过时的博客文章。

前置条件
  • 目标框架已确定 — package.json或pyproject.toml已经列出了它
步骤
  1. 询问当前成语
    使用Context7 ,获取NextAuth v5文档并为我搭建一个凭据提供程序设置。我想要当前的测试版,而不是v4。✓ 已复制
    → 代码使用来自v5的auth ()函数和边缘兼容配置,而不是v4 getServerSession
  2. 验证迁移备注
    拉出NextAuth文档的“从v4升级”部分,并列出我需要在当前代码中更改的内容。✓ 已复制
    → 拆分更改的差异样式列表

结果: 在第一次提交时运行v5代码—而不是半迁移的混合代码。

注意事项
  • 文档不涵盖您的边缘案例 — Context7仅限文档;对于未发布的行为,请通过GitHub MCP回退到源代码
搭配使用: github · filesystem

使用真实文档引用(而非共鸣)审核公关

👤 想要用证据备份评论的评论者 ⏱ ~20 min intermediate

何时使用: 审核使用库API的PR时,您不能100%确定是否正确。

步骤
  1. 阅读差异
    从PR # 482中拉出差异。对于每个库调用,使用Context7验证签名并标记任何看起来不正确的东西。✓ 已复制
    → 带有文档链接和版本的每次通话判决
  2. 写下可引用的评论
    对于每个被标记的通话,请起草一条评价评论,通过Context7链接官方文档。✓ 已复制
    → 评论内容为“根据v15文档<link>, X应为Y”

结果: 在评论中添加引文,而不是意见。

搭配使用: github

将代码库迁移到库的新主要版本

👤 工程师进行重大升级( React 18→ 19、Tailwind 3→ 4等) ⏱ ~90 min advanced

何时使用: 你遇到了一个主要版本,升级指南是40页的“这取决于”。

前置条件
  • 已挑选目标版本 — 选择确切的版本;不要在专业上做“最新”
步骤
  1. 拉动迁移指南
    使用Context7获取Tailwind v3→ v4迁移文档。总结为核对清单。✓ 已复制
    → 已排序的重大变更清单
  2. 扫描每个问题的回购
    对于该清单上的每个项目,使用文件系统MCP查找src/中的匹配模式。给我一份每个文件的报告。✓ 已复制
    → 模式→ 受影响的文件列表
  3. 小提交中的修补程序
    将每个迁移项目作为单独的提交,其中包含引用文档部分的消息。✓ 已复制
    → 清除提交日志,您可以按项目还原项目

结果: 您可以实际查看的迁移PR ,每个更改都与文档部分相关联。

注意事项
  • 一次提交处理太多项目 — 一次突破性更改→一次提交;使二分法在出现故障时变得容易
搭配使用: filesystem · git · github

组合

与其他 MCP 搭配,撬动十倍杠杆

context7 + filesystem

读取package.json以选择确切的版本,然后查询Context7以获取匹配的文档

阅读package.json ,找到下一个版本,然后从Context7中提取服务器操作的匹配文档。✓ 已复制
context7 + github

对于触及库API的公关,请使用文档引用注释评论

对于PR # 482中的每个API调用,请添加引用Context7文档的评论评论。✓ 已复制

在触摸代码之前逐步规划迁移

使用顺序思维来规划Prisma v4→ v5迁移,在每个步骤从Context7中提取文档证据。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
resolve-library-id libraryName: str 第一次调用—消除您关心的库名称的歧义 1 free request
query-docs libraryId: str, query: str, version?: str 在resolve-library-id之后—询问实际问题 1 free request (higher rate limit with API key)

成本与限制

运行它的成本

API 配额
免费会员等级是慷慨的;免费API密钥( context7.com/dashboard )提高了费率限制
每次调用 Token 数
每个查询约200–2000 ,具体取决于文档长度
费用
免费
提示
范围查询— “如何使用X”比“给我关于X的一切”便宜;服务器已经返回了聚焦的代码段

安全

权限、密钥、影响范围

凭据存储: 用于更高速率限制的可选CONTEXT7_API_KEY环境变量
数据出站: 查询转到api.context7.com ;无代码输出—仅发送库名称和您的查询

故障排查

常见错误与修复

Resolve-library-id未找到库

尝试替代名称(例如'nextjs'与'next.js'与'@ vercel/next' ) ; Context7通过通用别名索引,但不是每个分叉

验证: Check context7.com/browse for the official slug
文档看起来过时了

包含显式版本参数;如果没有它,您将获得库的最新索引文档,这些文档可能会延迟发布数小时

验证: Compare the returned snippet URL to the official docs site
已达到匿名使用的速率限制

在context7.com/dashboard获取免费API密钥,并在MCP配置的env块中设置CONTEXT7_API_KEY

验证: Re-run the same query and check it succeeds

替代方案

Context7 对比其他方案

替代方案何时用它替代权衡
GitHub MCP (docs folder)您需要源级真相或未发布的行为每个文件的延迟很高;您必须手动导航存储库
Ref Tools您想要一个具有自己索引的不同文档提供程序不同的库覆盖率
Direct web fetch文档不在任何索引中—您有URL没有版本解析;您完成URL工作

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills