使用说明

项目简介

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 数量。

安装步骤

  1. 安装 Zed 编辑器: 确保你已经安装了 Zed 编辑器。
  2. 安装 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 客户端调用工具时需要提供的参数及其类型和描述。

基本使用方法

  1. 在 Zed Assistant 中提问: 像平常一样在 Zed 编辑器的 Assistant 中提出你的问题,例如 "How do I use useState in React?"。
  2. 添加 'use context7' 指令: 在你的问题末尾添加 'use context7',告诉 Zed Assistant 使用 Context7 来增强上下文信息,例如 "How do I use useState in React? use context7"。
  3. 获取增强的回答: Zed Assistant 将会利用 Context7 MCP Server 获取最新的 React 文档和代码示例,并基于这些信息生成更准确和有用的回答。

通过使用 'use context7' 指令,你可以让 Zed Assistant 在回答你的问题时,充分利用 Context7 提供的最新文档信息,从而获得更优质的编程辅助体验。

信息

分类

开发者工具