PDF Search Zed Context Server 使用说明

项目简介

本项目是一个 Zed 编辑器的扩展,它作为一个 MCP 服务器运行,允许用户在 PDF 文档中进行语义搜索,并将搜索结果作为上下文信息提供给 Zed 的 AI 助手。该 MCP 服务器使用 OpenAI API 生成文档和查询的嵌入向量,并使用本地 SQLite 数据库存储和检索文档块。

主要功能点

  • PDF 文档语义搜索: 能够理解用户查询的含义,在 PDF 文档中搜索相关内容。
  • MCP 服务器: 实现了 MCP 协议,可以与支持 MCP 协议的客户端(如 Zed 编辑器)通信。
  • 上下文增强: 将 PDF 文档的搜索结果作为上下文信息提供给 LLM,提升 AI 助手的回答质量。
  • 支持多 PDF 文件: 可以索引多个 PDF 文件和包含 PDF 文件的目录。
  • 可扩展性: 基于 MCP 协议,易于与其他 MCP 客户端集成。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/freespirit/pdfsearch-zed.git
  2. 设置 Python 环境: 进入 'pdf_rag' 目录并创建 Python 虚拟环境:
    cd pdfsearch-zed/pdf_rag
    uv venv
    uv sync
  3. 安装 Zed Dev Extension: 按照 Zed 官方文档 指示,安装 Dev Extension。
  4. 构建搜索数据库:
    • 导出 OpenAI API 密钥:
      export OPENAI_API_KEY=<your_openai_api_key>
    • 运行构建命令,指定要索引的 PDF 文件或目录:
      uv run src/pdf_rag/rag.py build "file1.pdf" "dir1" "file2.md" ...
      (构建过程可能需要一些时间,取决于文档大小)

服务器配置 (Zed 客户端配置)

在 Zed 编辑器的 'settings.json' 文件中,配置 'context_servers' 部分以启用 PDF Search Context Server:

"context_servers": {
    "pdfsearch-context-server": {
        "settings": {
            "extension_path": "/path/to/pdfsearch-zed", // **[必填]** 替换为克隆仓库的本地路径,例如 "/Users/your_username/pdfsearch-zed"
            "openai_api_key": "sk-..." // **[必填]** 替换为你的 OpenAI API 密钥
        }
    }
}
  • 'context_servers': Zed 编辑器用于配置上下文服务器的顶级配置项。
  • 'pdfsearch-context-server': 上下文服务器的名称,需要与扩展中定义的名称一致。
  • 'settings': 'pdfsearch-context-server' 的具体配置。
    • 'extension_path': [必填] 指向 'pdfsearch-zed' 仓库根目录的绝对路径。请根据你的实际情况修改。
    • 'openai_api_key': [必填] 你的 OpenAI API 密钥,用于文档嵌入和查询嵌入。

MCP 服务器启动命令 (由 Zed 客户端自动执行): Zed 客户端会自动执行以下命令来启动 MCP 服务器,用户无需手动配置:

uv run pdf_rag

该命令会在 'extension_path' 配置项指定的 'pdfsearch-zed/pdf_rag' 目录下执行 'uv run pdf_rag',并设置 'OPENAI_API_KEY' 环境变量。

基本使用方法

  1. 确保已完成安装步骤并成功构建搜索数据库。
  2. 打开 Zed 编辑器的 AI 助手面板。
  3. 在 AI 助手输入框中,输入 '/pdfsearch' 后跟你的搜索查询内容。例如:'/pdfsearch 什么是 MCP 协议?'
  4. 扩展程序将搜索 PDF 文档,并将相关的文本片段添加到 AI 助手的上下文中,以便 AI 助手可以根据 PDF 文档内容进行更准确的回答。

信息

分类

开发者工具