韦氏词典
48.02M · 2026-03-25
用 AI 写代码时,你是否遇到过这些问题:
useState 的旧用法,项目里早就迁移到新 API 了axios 请求代码,用的是已废弃的语法这些问题的根源在于:AI 的训练数据有截止日期。你的项目依赖库的版本和 AI 训练时见过的版本很可能不一致,AI 在「凭感觉」生成代码。
Context7 就是为了解决这个问题而生的。
Context7 是 Upstash(知名 Serverless Redis/Kafka 提供商)开源的一个 MCP 服务。它的核心能力只有一条:
支持 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 等。
resolve-library-id — 找库的身份证通过自然语言搜索库,返回 Context7 内部的库标识符。
// 输入
{
"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"]
}
query-docs — 按问题查文档拿着库的 ID,用自然语言提问,返回相关性排序的文档片段和代码示例。
// 输入
{
"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'nnexport 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-id → query-docs → AI 基于真实文档回答。效果是:AI 永远基于最新文档生成,而不是靠记忆。
npm install -g @anthropic-ai/claude-codeclaude mcp add --scope user --header "CONTEXT7_API_KEY: YOUR_API_KEY" --transport http context7
claude mcp add --scope user context7 -- npx -y @upstash/context7-mcp --api-key YOUR_API_KEY
配置完成后,可以用 claude mcp list 验证是否添加成功。
假设你的项目用的是 Prisma,要写一个联表查询。直接问 AI,AI 可能用旧语法;带 Context7 再问:
Prompt:
Claude Code 会自动调用 Context7:
resolve-library-id,确定库是 /prisma/prismaquery-docs,传入查询 user with orders order by dateinclude 语法和排序写法返回的代码示例(最新语法):
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 后追加版本号:
{
"libraryId": "/supabase/supabase/v2.45.0",
"query": "server-side authentication with JWT"
}
| 维度 | 不带 Context7 | 带 Context7 |
|---|---|---|
| API 准确性 | 依赖训练数据,可能已过时 | 基于实时文档,准确率高 |
| 版本匹配 | 不知道你用的哪一版 | 可指定版本号 |
| 代码示例 | 模糊、通用 | 具体、可运行 |
| 幻觉 API | 常见 | 几乎消除 |
实测中,Context7 能在 80% 以上的场景下显著提升 AI 生成代码的正确性和可运行性。
Context7 解决的是一个被长期忽视但高频发生的问题:AI 和你的代码之间存在「知识代差」。通过 MCP 协议,Context7 把实时文档注入 AI 上下文,让 AI 从「凭记忆猜测」变成「查手册回答」。
如果你经常用 AI 写业务代码,推荐立即配置 Context7。两分钟配置,换来的是 AI 输出的代码从「勉强能用」到「直接可提交」的质量跃升。