什么是 Context7 MCP 服务器?
Context7 MCP 服务器是一个开源的 MCP 服务器,充当 LLM 和 AI 开发工具之间的动态文档和代码示例桥梁。它通过模型上下文协议 (MCP) 连接,获取并提供与你的提示中使用的库或框架相关的最新、权威的文档和实用示例,使编码答案准确且相关。它与 Cursor、Claude Desktop、Windsurf、Zed 等流行编辑器和工具兼容。
如何配置 Context7 MCP 服务器
你可以通过将其添加到工具的 MCP 配置中来配置 Context7 MCP 服务器。常见的方法有:
- NodeJS: 使用
npx
(或bunx
/deno
)通过更新 MCP 客户端配置运行最新的包:{ "mcpServers": { "context7": { "command": "npx", "args": ["-y", "@upstash/context7-mcp@latest"] } } }
- 编辑器/IDE: 进入设置(例如 Cursor 或 VS Code),通过推荐的配置将 Context7 添加为全局 MCP 服务器,或者通过适当的扩展市场进行安装。
- Docker: 构建并运行提供的 Dockerfile,然后调整你的配置以执行 Docker 命令作为 MCP 服务器。
- Smithery: 使用
npx -y @smithery/cli install @upstash/context7-mcp --client claude
进行 Claude Desktop 集成。 - 确保 Node.js 版本为 v18 及以上以获得最佳兼容性,并查阅你工具的 MCP 文档以获取特定位置的配置细节。
如何使用 Context7 MCP 服务器
- 在提示中启用 Context7: 在编写编码提示时,在指令末尾添加
use context7
(例如,创建一个基本的 Next.js 项目,使用应用程序路由。使用 context7
)。 - LLM 集成: LLM 或 AI 助手检测到
use context7
命令,并自动查询 Context7 MCP 以获取相关的、最新的文档和代码示例。 - 提示增强: 提取并注入的内容改善了 LLM 的输出——不再出现过时的 API 或幻觉响应。
- 无需切换标签: 一切都在你的开发聊天、IDE 或编码助手的上下文中进行。
主要特点
- 最新文档: 提供数千个库的官方最新文档和代码示例。
- 多工具支持: 与 Cursor、Claude Desktop、VS Code、Zed 以及任何兼容 MCP 的代理或 IDE 无缝集成。
- 即插即用的设置: 简单配置——通过
npx
、bunx
、deno
、Docker 或市场扩展运行。 - 动态上下文注入: 将与上下文相关的文档直接交付到 LLM 提示中。
- 工具 API: 通过 MCP 协议公开可执行的操作(如
resolve-library-id
和get-library-docs
)。 - 开放与可扩展: 由社区驱动,MIT 许可,易于适配新的环境或工作流。
使用案例
- AI 对偶编程: 使用当前示例和版本匹配的 API 增强 LLM 代码补全。
- 错误调试: 立即提取相关的故障排除步骤和文档以解决编码问题。
- 学习新框架: 查询不熟悉的库和包的最佳实践代码和指南。
- 遗留迁移: 获取包升级的准确语法和 API 改动,最小化手动研究。
常见问题
Q1: 如果在启动 Context7 MCP 服务器时出现 ERR_MODULE_NOT_FOUND 错误,我该怎么办?
尝试在配置中使用 bunx
而不是 npx
。这通常能解决模块解析问题,特别是在 npx
无法正常工作或 Node ESM 处理存在问题的环境中。
Q2: 我可以在 Docker 容器中运行 Context7 MCP 服务器吗?
可以!使用提供的 Dockerfile 构建 Docker 镜像,然后更新你的 MCP 客户端配置以执行指南中所示的 Docker run 命令。确保 Docker 守护进程正在运行,并且镜像标签与配置匹配。
Q3: 如何从不同的编辑器(如 VS Code、Cursor 或 Zed)使用 Context7?
每个主要编辑器和工具都有现成的配置片段。可以使用扩展/市场,或者手动将正确的服务器定义添加到你的 MCP 配置文件中,如上所示。
Q4: 如何确保提供的文档准确且最新?
Context7 直接从最新的官方来源和索引仓库获取文档和示例。然而,作为一个社区驱动的项目,始终要双重检查内容——如果发现不准确,请使用“报告”功能。
Q5: LLM 生成了通用或过时的代码——可能出什么问题?
确保 use context7
出现在你的提示中,并确认你的 MCP 配置正常工作(通过 MCPI Inspector 测试)。如果在本地或通过 Docker 运行,请检查网络/防火墙设置。