Token导航 LogoToken导航

MCP Server · 数据服务

Pdf Mcpserver

一个完全免费的模型上下文协议(MCP)服务器,用于通过混合搜索(BM25 + 向量搜索)从PDF文档中检索相关片段。

stdio官方级别未说明来源级核验工具 1
PDF处理混合搜索PythonClaude

快速开始

作者 / 组织
rhuanca
提供方
rhuanca
运行时
Python

工具数量

1

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

2 个

MCP World

选型结论

Pdf Mcpserver 属于数据服务类 MCP Server,公开资料标注 1 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

数据服务

传输方式

stdio

认证方式

无需认证

部署方式

仅本地运行

安装与配置

安装命令

uv run python main.py

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 1 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

PDF检索MCP服务器

A. 完全免费 模型上下文协议(MCP)服务器,用于使用混合搜索(BM25+矢量搜索)从PDF文档中检索相关块。

🚀 特性

  • PDF文档处理:使用Docling自动解析和索引PDF文件
  • 混合检索:结合BM25(关键字)和矢量搜索(语义)进行准确检索
  • 免费嵌入:使用ChromaDB的默认语句转换器(无API成本!)
  • 纯检索模式:返回原始文档块以供代理处理(不生成LLM答案)
  • 新的开始:每次启动时清除矢量数据库以进行干净的索引
  • MCP集成:暴露 retrieve_pdf_chunks 通过FastMCP实现无缝代理集成的工具

📋 先决条件

  • Python 3.11或更高版本
  • 要索引的PDF文档
  • 不需要API密钥! ✨

🛠️ 安装

1.克隆存储库(如果尚未完成)

git clone 
cd pdf_mcpserver

2.使用uv安装依赖项

uv sync

这将自动:

  • 创建虚拟环境(.venv)
  • 从安装所有依赖项 pyproject.toml
  • 立项

3.添加PDF文档

创建一个 documents 目录并添加您的PDF文件:

mkdir documents
# Copy your PDF files to the documents/ directory

就是这样!不需要API密钥或其他配置。

🎯 用法

运行服务器

uv run python main.py

或者先激活虚拟环境:

source .venv/bin/activate  # On Windows: .venv\Scripts\activate
python main.py

服务器将:

  1. 立即启动(延迟初始化)
  2. 首次查询时加载和索引PDF
  3. 准备好通过MCP检索文档块

使用 retrieve_pdf_chunks 工具

服务器公开了一个MCP工具: retrieve_pdf_chunks(query: str, max_chunks: int = 5) -> str

示例查询:

retrieve_pdf_chunks("machine learning algorithms", max_chunks=3)

示例响应:

{
  "query": "machine learning algorithms",
  "chunks": [
    {
      "content": "Machine learning algorithms can be categorized into supervised, unsupervised, and reinforcement learning...",
      "document_name": "ml_guide.pdf",
      "page_number": 12,
      "metadata": {"source": "ml_guide.pdf"}
    },
    {
      "content": "Common supervised learning algorithms include linear regression, decision trees, and neural networks...",
      "document_name": "ml_guide.pdf",
      "page_number": 15,
      "metadata": {"source": "ml_guide.pdf"}
    }
  ],
  "total_chunks": 2
}

响应结构

字段类型描述
querystring原始搜索查询
chunksarray相关文档块列表
chunks[].contentstring块的文本内容
chunks[].document_namestring源PDF文件名
chunks[].page_numberint页码(如果可用)
chunks[].metadataobject其他元数据
total_chunksint返回的块数

代理商如何使用它

当代理(如Claude)调用此工具时:

  1. 代理发送搜索查询
  2. 服务器返回相关文档块
  3. Agent在其上下文中使用块来回答问题

代理流示例:

User: "What are the main ML algorithms discussed?"
  ↓
Agent calls: retrieve_pdf_chunks("machine learning algorithms")
  ↓
Server returns: 3 relevant chunks from PDFs
  ↓
Agent reads chunks and generates answer for user

🔍 MCP检验员测试

MCP Inspector是一个基于网络的工具,用于交互式测试和调试MCP服务器。

运行检查器

npx @modelcontextprotocol/inspector uv run python main.py

此命令将:

  1. 启动MCP Inspector代理服务器
  2. 启动PDF检索服务器
  3. 使用Inspector UI打开web浏览器

你会看到什么

检查员提供:

  • 工具发现:查看可用工具(retrieve_pdf_chunks)
  • 交互式测试:使用自定义参数测试查询
  • 实时响应:实时查看JSON响应
  • 请求/响应日志:调试MCP协议通信

检查员工作流程示例

  1. 打开检查器 -浏览器在以下位置自动打开 http://localhost:6274
  2. 等待初始化 -服务器在第一次查询时加载并索引PDF(约1-2分钟)
  3. 选择工具 -点击 retrieve_pdf_chunks 在工具列表中
  4. 输入查询 -键入您的搜索查询(例如,“机器学习”)
  5. 设置参数 -可选择调整 max_chunks (默认值:5)
  6. 执行 -点击“运行”查看结果
  7. 查看响应 -检查返回的块和元数据

检查员提示

  • 第一次查询速度慢:PDF索引发生在第一次查询时(典型PDF为87秒)
  • 后续查询速度很快:嵌入内容缓存在ChromaDB中
  • 全新的开始:服务器每次重新启动时都会清除ChromaDB以进行干净的索引
  • 检查日志:终端显示索引过程的详细日志记录

🏗️ 建筑

pdf_mcpserver/
├── src/
│   ├── config.py              # Configuration management
│   ├── constants.py           # Configuration constants
│   ├── models.py              # Pydantic response models
│   ├── pdf_processor.py       # PDF loading and hybrid retrieval
│   └── retrieval_handler.py   # Document chunk retrieval
├── main.py                    # MCP server entry point
├── pyproject.toml             # Project metadata
└── .env                       # Environment configuration

关键组件

  • PDF处理器:Singleton类,用于加载PDF,使用Docling转换为Markdown,并构建混合检索器(BM25+矢量搜索)
  • 检索处理程序:检索查询的相关块-无LLM答案##🔧 配置

配置是通过环境变量进行管理的。创建一个 .env 项目根目录中的文件:

# Optional: PDF Documents Directory (defaults to ./documents)
PDF_DOCUMENTS_DIR=./documents

# Optional: ChromaDB Directory (defaults to ./chroma_db)
CHROMA_DB_DIR=./chroma_db

# Optional: Log Level (defaults to INFO)
LOG_LEVEL=INFO

配置选项

变量必填默认描述
PDF_DOCUMENTS_DIR没有./documents包含要索引的PDF文件的目录
CHROMA_DB_DIR没有./chroma_dbChromaDB矢量存储目录
LOG_LEVEL没有INFO日志记录级别(调试、信息、警告、错误)

备注:不需要API密钥!ChromaDB使用免费的本地嵌入(句子转换器)。

🧪 测试

运行单元测试:

uv run pytest tests/

📝 故障排除

未找到PDF文件

错误: No PDF files found in ./documents

解决方案:将PDF文件添加到 documents/ 目录或更新 PDF_DOCUMENTS_DIR 在 .env

导入错误

错误: ModuleNotFoundError: No module named 'docling'

解决方案:确保安装了所有依赖项: uv sync

CUDA内存不足

错误: CUDA out of memory

解决方案:服务器配置为仅使用CPU模式。如果您仍然看到此错误,请检查 CUDA_VISIBLE_DEVICES="" 已设置 src/pdf_processor.py

📚 依赖项

  • fastmcp:MCP服务器框架
  • 文档:文档处理和解析
  • 向量数据库:嵌入自由句子变换器的矢量数据库
  • 语言链:RAG框架和检索器
  • 卢古鲁:日志记录

无需付费API! 所有嵌入都是使用ChromaDB的默认模型(全MiniLM-L6-v2)在本地生成的。

🤝 贡献

这是一个概念验证(PoC)实现。对于生产使用,请考虑:

  • 为已处理的文档添加缓存
  • 通过事实验证实现多代理工作流
  • 支持其他文档格式(DOCX、TXT等)
  • 添加身份验证和速率限制

📄 许可证

\[您的许可证在这里\]

🙏 致谢

基于 docchat文档 建筑。

工具与能力

工具数量

1

资源数量

0

提示词数量

0

能力标签

PDF处理Python本地部署混合搜索文档检索向量数据库免费服务

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 1 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Pdf Mcpserver

MCP World · 本页

1stdio有2 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Pdf Mcpserver 怎么安装?

公开资料给出的安装命令是 uv run python main.py,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Pdf Mcpserver 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Pdf Mcpserver 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Pdf Mcpserver 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Pdf Mcpserver 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP