每天一个 Agent Skills:Context7 — 让 AI 永远写出最新的代码

每天一个 Agent Skills:Context7 --- 让 AI 永远写出最新的代码

Context7 是一个 MCP 服务,通过实时拉取库的最新文档和代码示例,解决 AI 编程助手「知识过时」和「幻觉 API」两大痛点。本文介绍如何在 Claude Code 中配置 Context7,并通过实战演示其核心工具 resolve-library-idquery-docs 的用法。


问题的本质:AI 不知道你的库是哪一版

用 AI 写代码时,你是否遇到过这些问题:

  • AI 给你一个 useState 的旧用法,项目里早就迁移到新 API 了
  • AI 写了一段 axios 请求代码,用的是已废弃的语法
  • AI 信誓旦旦地说「这个 API 存在」,实际跑通后才发现根本不对

这些问题的根源在于:AI 的训练数据有截止日期。你的项目依赖库的版本和 AI 训练时见过的版本很可能不一致,AI 在「凭感觉」生成代码。

Context7 就是为了解决这个问题而生的。


Context7 是什么

Context7Upstash(知名 Serverless Redis/Kafka 提供商)开源的一个 MCP 服务。它的核心能力只有一条:

将任意库的最新、版本相关的文档和代码示例,直接注入到 AI 的上下文中。

支持 50+ 流行库,包括但不限于:

前端框架 后端框架 数据库 / ORM 其他
React Next.js Prisma Tailwind CSS
Vue Express Supabase Stripe
Svelte Fastify MongoDB Socket.IO
Nuxt Nest.js Drizzle shadcn/ui
Astro Hono Clerk Auth

支持所有主流 AI 编码工具:Cursor、Claude Code、Windsurf 等。


核心原理:两个工具,两步走

1. resolve-library-id --- 找库的身份证

通过自然语言搜索库,返回 Context7 内部的库标识符。

json 复制代码
// 输入
{
  "query": "How do I use React hooks?",
  "libraryName": "react"
}

// 输出
{
  "title": "React Documentation",
  "Context7-compatible library ID": "/reactjs/react.dev",
  "Description": "The library for web and native user interfaces",
  "Code Snippets": 1250,
  "Trust Score": "High",
  "Benchmark Score": 98,
  "Versions": ["19.0.0", "18.3.1", "18.2.0"]
}

2. query-docs --- 按问题查文档

拿着库的 ID,用自然语言提问,返回相关性排序的文档片段和代码示例。

json 复制代码
// 输入
{
  "libraryId": "/vercel/next.js",
  "query": "app router middleware authentication"
}

// 输出
{
  "documentation": [
    {
      "title": "Middleware in Next.js",
      "content": "Middleware allows you to run code before a request is completed...",
      "codeExample": "import { NextResponse } from 'next/server'\nimport type { NextRequest } from 'next/server'\n\nexport function middleware(request: NextRequest) {\n  const token = request.cookies.get('token')\n  if (!token) {\n    return NextResponse.redirect(new URL('/login', request.url))\n  }\n  return NextResponse.next()\n}"
    }
  ]
}

两步配合resolve-library-idquery-docs → AI 基于真实文档回答。效果是:AI 永远基于最新文档生成,而不是靠记忆。


如何在 Claude Code 中配置 Context7

前置条件

  • 安装 Claude CLI:npm install -g @anthropic-ai/claude-code
  • 拥有 Context7 API Key(免费注册:context7.com)

方式一:远程连接(推荐)

bash 复制代码
claude mcp add --scope user --header "CONTEXT7_API_KEY: YOUR_API_KEY" --transport http context7 https://mcp.context7.com/mcp

方式二:本地连接

bash 复制代码
claude mcp add --scope user context7 -- npx -y @upstash/context7-mcp --api-key YOUR_API_KEY

推荐用远程方式,不需要本地安装依赖,响应也更快。

配置完成后,可以用 claude mcp list 验证是否添加成功。


实战演示

场景:写一个 Prisma 关联查询

假设你的项目用的是 Prisma,要写一个联表查询。直接问 AI,AI 可能用旧语法;带 Context7 再问:

Prompt:

帮我写一个 Prisma 查询,获取用户及其所有订单,订单按时间倒序。用 TypeScript。use context7

Claude Code 会自动调用 Context7:

  1. 先调用 resolve-library-id,确定库是 /prisma/prisma
  2. 再调用 query-docs,传入查询 user with orders order by date
  3. 拿到最新的 Prisma 文档片段,其中包含 include 语法和排序写法
  4. 基于真实文档生成代码

返回的代码示例(最新语法):

typescript 复制代码
import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

async function getUserWithOrders(userId: string) {
  const user = await prisma.user.findUnique({
    where: { id: userId },
    include: {
      orders: {
        orderBy: {
          createdAt: 'desc', // 按创建时间倒序
        },
      },
    },
  })
  return user
}

这就是最新版本的正确语法,而不是 AI 记忆中的旧写法。


指定版本查询

如果你需要特定版本的文档,可以在库 ID 后追加版本号:

json 复制代码
{
  "libraryId": "/supabase/supabase/v2.45.0",
  "query": "server-side authentication with JWT"
}

使用效果对比

维度 不带 Context7 带 Context7
API 准确性 依赖训练数据,可能已过时 基于实时文档,准确率高
版本匹配 不知道你用的哪一版 可指定版本号
代码示例 模糊、通用 具体、可运行
幻觉 API 常见 几乎消除

实测中,Context7 能在 80% 以上的场景下显著提升 AI 生成代码的正确性和可运行性。


局限性与注意事项

  • 需要 API Key:虽然有免费额度,但生产环境需要注意用量控制
  • 不是全知全能:对于非常冷门的库,Context7 可能没有收录
  • 版本意识:建议同时告知 AI 你使用的库版本,以获得更精确的回答
  • 文档质量依赖上游:Context7 的质量取决于各库官方文档的完整度

结论

Context7 解决的是一个被长期忽视但高频发生的问题:AI 和你的代码之间存在「知识代差」。通过 MCP 协议,Context7 把实时文档注入 AI 上下文,让 AI 从「凭记忆猜测」变成「查手册回答」。

如果你经常用 AI 写业务代码,推荐立即配置 Context7。两分钟配置,换来的是 AI 输出的代码从「勉强能用」到「直接可提交」的质量跃升。


进一步阅读

相关推荐
机器白学2 小时前
OpenClaw使用前置准备:Ollama+OpenwebUI本地部署/API调用大模型
人工智能·大语言模型
Blurpath住宅代理2 小时前
AI代理配置实战指南:构建高可用、低风险的网络出口层
人工智能·ai·自动化·静态ip·动态代理·住宅ip·住宅代理
心无旁骛~2 小时前
【Claude Code开发】AI记账助手(miaozhang)微信小程序开发与部署完整指南
人工智能·微信小程序·notepad++
桜吹雪2 小时前
在前端运行Qwen3.5原生多模态模型
前端·人工智能·机器学习
nix.gnehc2 小时前
AI时代的三重镜像:技术平权、数字祭道、认知外包
人工智能
星空下的月光影子2 小时前
贝叶斯优化加速工业AI模型超参数调优
人工智能
东莞呵呵2 小时前
从Linear到MLP AI模型的数学本质
人工智能·深度学习·机器学习
SmartBrain2 小时前
Spring Boot 中常用注解总结(AI工程化)
java·人工智能·spring boot·后端
帐篷Li2 小时前
Superpowers:让 AI 编程助手拥有专业级软件开发流程
人工智能·everything