Context7 实测:无 key 也能拉当前库文档

编程 Agent 写库相关代码时,训练数据里的 API 经常过时,容易编出不存在的接口。Context7 是 Upstash 开源的文档检索层:问到某个库,它按库 ID 取回当前版本文档和示例,再塞进 Agent 上下文。我们 2026-10-27 在本机用不带 API key 的远程 MCP,测了握手、工具列表,以及一次 Next.js 文档查询。
它是什么
它把常见框架和 SDK 的文档做成可按固定库 ID 查询的索引,通过 MCP 工具或 ctx7 CLI 交给编程 Agent。少用过时训练记忆,多用当前文档里的写法。
| 仓库 | github.com/upstash/context7(npm @upstash/context7-mcp / CLI ctx7) |
|---|---|
| 作者 | Upstash |
| 许可证 | MIT |
| 热度 | GitHub 63,743 星;npm 近 30 天下载 2,423,982 次(2026-09-27 至 2026-10-26,截至 2026-10-27) |
| 语言 | TypeScript;本地 CLI 要求 Node.js ≥22.13;远程 MCP 不限本机 Node 版本 |
| 最新版本 | npm 包 4.4.4(发布于 2026-10-19);远程服务自报 4.4.3(实测当日) |
解决什么问题
Agent 回答「怎么配 Next.js / Prisma / Tailwind」时,常靠训练记忆,版本对不上就编接口。Context7 先把库名解析成固定 ID,再按你的问题取当前文档片段和代码示例。Agent 照着改,少一次自己去翻官网、少一轮「这个方法已经删了」的返工。它管的是文档是否够新;业务怎么设计还得你自己定。
怎么用
// 任意支持远程 MCP 的客户端(无 API key)
{
"mcpServers": {
"context7": {
"url": "https://mcp.context7.com/mcp"
}
}
}
// 或本机 stdio(需网络)
npx -y @upstash/context7-mcp@4.4.4
// 可选:更高限额时在 header 加
// Authorization: Bearer YOUR_API_KEY
提示词里可以直接写库 ID,少一步匹配,例如「用 library /vercel/next.js 写 middleware」。官方还有 npx ctx7 setup(OAuth 装 Skill),我们未走注册流程。本站在 OpenCode 架构一文里 顺带提过 context7 配置块,本文补上独立实测。
实测
环境:2026-10-27 北京时间,Debian,Node.js 20.19.2,无 Context7 API key。对远程端点发 JSON-RPC(Accept 带 text/event-stream)。
- initialize:协议 2024-11-05,serverInfo.name=Context7,version=4.4.3。
- tools/list:只有上述 2 个工具。
- resolve-library-id(libraryName=next.js):首条
/vercel/next.js,6160 snippets,Benchmark Score 73.76;另有/websites/nextjs(6876 snippets)等候选。 - query-docs:问 JWT cookie 校验并跳转
/login,返回约 7432 字符,含官方 canary 文档里的 proxy 认证示例(TSX),并提示别在 proxy 里打数据库。 - CLI:
npx ctx7@0.8.2 library next.js …在 Node 20 打出 EBADENGINE 警告,仍能列出同样的库 ID。

未实测:官网注册拿免费 key 后的更高限额与速率;ctx7 setup 的 OAuth 装 Skill;把 Context7 接进 Claude Code / Cursor 后的完整多轮对话(本机未开这些客户端会话)。
还有两个实操细节。一是库 ID 带版本时更稳:提示词写「Next.js 16 的 proxy」,服务会尽量匹配版本列表里的条目(我们看到的候选含 v16.2.9 等)。二是远程 MCP 用的是流式 SSE 包装的 JSON-RPC,自己写探测脚本时 Accept 头要带 text/event-stream,否则可能拿不到正常响应。npm 包 4.4.4 与远程自报 4.4.3 差一个小版本,写文章以当天握手结果为准。
安全与隐私上,查询内容会发到 Context7 云端;公司内网文档、私有包说明不该丢进去。公开框架文档场景问题不大。若必须自建索引,得另找可私有部署的文档 RAG;该服务当前是托管索引。
适合谁,不适合谁
适合:天天写框架和 SDK 代码的人,给编程 Agent 加一层「当前文档」。配置一行远程 MCP 就能试,不必先注册。不适合:完全离线环境(索引在云端);只问与库文档无关的业务规则。替代做法:自己给官网做 RAG,或让 Agent 开浏览器翻文档——通常更慢、更占上下文。同类里若只要浏览器调试,可看本站的 Chrome DevTools MCP。