Context7 MCP Server for Zed
使用说明
项目简介
Context7 MCP Server for Zed 是一个 Zed 编辑器的扩展,它将 Context7 集成到 Zed Assistant 中,作为一个 Model Context Protocol (MCP) 服务器。Context7 的核心功能是为 LLM 提供最新的、版本特定的文档和代码示例,直接从源代码中提取信息,并将其作为上下文信息提供给 LLM。这解决了传统 LLM 依赖过时或通用信息的问题,使得代码助手能够生成更准确、更可靠的答案和代码建议。
主要功能点
- 获取最新文档和代码示例: Context7 能够从最新的源代码中抓取文档和代码示例,确保 LLM 获得的信息是最新的,避免基于过时信息的回答。
- 解决幻觉问题: 通过提供精确的上下文信息,Context7 减少了 LLM 产生“幻觉”的可能性,即生成不存在的 API 或过时代码。
- 版本特定信息: Context7 能够处理版本特定的文档,确保 LLM 提供的建议与用户当前使用的库版本相匹配。
- 工具集成: 提供 'resolve-library-id' 和 'get-library-docs' 两个工具,允许 LLM 客户端(如 Zed Assistant)调用 Context7 的功能。
- 'resolve-library-id': 将通用的库名称转换为 Context7 兼容的库 ID,用于后续的文档检索。
- 'get-library-docs': 根据 Context7 兼容的库 ID 获取该库的文档内容,可以指定主题和限制返回的 token 数量。
安装步骤
- 安装 Zed 编辑器: 确保你已经安装了 Zed 编辑器。
- 安装 Context7 MCP Server 扩展: 在 Zed 编辑器的扩展市场中搜索 "Context7 MCP Server" 或 "Context7" 并安装此扩展。
服务器配置
对于需要配置 MCP 服务器的客户端(例如,如果 Zed Assistant 未来允许手动配置 MCP 服务器),以下是 Context7 MCP Server 的配置信息示例。通常 Zed 编辑器会自动处理此配置,用户无需手动配置。
{ "serverName": "context7", "command": "node", "args": [ "node_modules/@upstash/context7-mcp/dist/index.js" ], "description": "Context7 MCP Server for Zed", "capabilities": { "resources": [], "tools": [ { "name": "resolve-library-id", "description": "Resolves a general library name into a Context7-compatible library ID.", "parameters": { "type": "object", "properties": { "libraryName": { "type": "string", "description": "Search and rerank results (可选)" } } } }, { "name": "get-library-docs", "description": "Fetches documentation for a library using a Context7-compatible library ID.", "parameters": { "type": "object", "properties": { "context7CompatibleLibraryID": { "type": "string", "description": "Context7 兼容的库 ID (必填)" }, "topic": { "type": "string", "description": "Focus the docs on a specific topic (e.g., \"routing\", \"hooks\") (可选)" }, "tokens": { "type": "integer", "description": "Max number of tokens to return (可选,默认 5000)" } }, "required": [ "context7CompatibleLibraryID" ] } } ], "prompts": [] } }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,例如 "context7"。
- 'command': 启动服务器的命令,这里是 "node",假设 Node.js 环境已配置在系统 PATH 中。
- 'args': 启动命令的参数,指向 Context7 MCP Server 的入口文件 'node_modules/@upstash/context7-mcp/dist/index.js'。 请注意,这个路径是相对于扩展安装目录的,在 Zed 扩展环境中,通常可以这样引用。
- 'description': 服务器描述,用于客户端显示。
- 'capabilities': 声明服务器提供的能力,包括 'resources'(资源,这里为空),'tools'(工具,列出了 'resolve-library-id' 和 'get-library-docs' 两个工具及其参数定义),和 'prompts'(Prompt 模板,这里为空)。工具的参数定义描述了 LLM 客户端调用工具时需要提供的参数及其类型和描述。
基本使用方法
- 在 Zed Assistant 中提问: 像平常一样在 Zed 编辑器的 Assistant 中提出你的问题,例如 "How do I use useState in React?"。
- 添加 'use context7' 指令: 在你的问题末尾添加 'use context7',告诉 Zed Assistant 使用 Context7 来增强上下文信息,例如 "How do I use useState in React? use context7"。
- 获取增强的回答: Zed Assistant 将会利用 Context7 MCP Server 获取最新的 React 文档和代码示例,并基于这些信息生成更准确和有用的回答。
通过使用 'use context7' 指令,你可以让 Zed Assistant 在回答你的问题时,充分利用 Context7 提供的最新文档信息,从而获得更优质的编程辅助体验。