mcpField
P
PDF Search for Zed

PDF Search for Zed

本地服务
github.com/freespirit文件与存储378 周前更新

关于 PDF Search for Zed

PDF Search for Zed 是 Zed 扩展,可对 PDF 内容进行语义搜索,并将相关段落加入 Zed 的 AI 助手上下文。它使用 MCP 服务,目前需用 OpenAI API 密钥生成嵌入,且使用前须手动建立索引。

主要功能

  1. 01对 PDF 进行语义搜索
  2. 02将段落加入 AI 上下文
  3. 03支持多个 PDF
  4. 04支持 PDF 以外的文件格式

适用场景

  1. 01查找 PDF 中的相关段落
  2. 02向 Zed 的 AI 助手提供文档内容

MCP 相关

扩展包含一个基于 Python 的 MCP 服务,用于搜索已建立索引的文档,并向 Zed 的 AI 助手提供匹配段落。使用前需要手动建立索引。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Zed 的 PDF 搜索

Zed 的文档搜索扩展,可让你在 PDF 文档中进行语义搜索,并在 Zed 的 AI 助手中使用搜索结果。

前提条件

此扩展目前需要:

  1. OpenAI API 密钥(用于生成嵌入向量)
  2. 系统中已安装 uv

注意: 当前配置需要 OpenAI API 密钥来生成嵌入向量,但我们计划在未来版本中实现一种独立方案。社区反馈将有助于确定这些改进的优先级。

快速开始

  1. 克隆仓库
git clone https://github.com/freespirit/pdfsearch-zed.git
  1. 为 MCP 服务设置 Python 环境:
cd pdfsearch-zed/pdf_rag
uv venv
uv sync
  1. 在 Zed 中安装开发扩展

  2. 构建搜索数据库

cd /path/to/pdfsearch-zed/pdf_rag

echo "OPENAI_API_KEY=sk-..." > src/pdf_rag/.env

# This may take a couple of minutes, depending on the documents' size
# You can provide multiple files and directories as arguments.
#  - files would be chunked.
#  - a directory would be considered as if its files contains chunks.
#    E.g. they won't be further split.
uv run src/pdf_rag/rag.py build "file1.pdf" "dir1" "file2.md" ...
  1. 配置 Zed
"context_servers": {
    "pdfsearch-context-server": {
        "settings": {
            "extension_path": "/path/to/pdfsearch-zed"
        }
    }
}

用法

  1. 打开 Zed 的 AI 助手面板
  2. 输入 /pdfsearch,后接搜索查询
  3. 扩展将搜索 PDF,并将相关部分添加到 AI 助手的上下文中

未来改进

  • 独立的向量存储
  • 独立的嵌入向量
  • 首次运行时自动构建索引
  • 可配置的结果数量
  • 支持多个 PDF
  • 可选:支持 PDF 以外的其他文件格式

项目结构

  • pdf_rag/:基于 Python 的 MCP 服务实现
  • src/:Zed 扩展代码
  • extension.toml 和 Cargo.toml:Zed 扩展配置文件

已知限制

  • 首次使用前需要手动构建索引
  • 需要外部服务(OpenAI)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。