juanqui/pdfkb-mcp
GitHub: juanqui/pdfkb-mcp
一个基于 MCP 协议的 PDF/Markdown 文档知识库服务器,提供本地解析、语义分块、混合搜索和 AI 重排序,让 AI 助手能够直接检索和问答您的文档内容。
Stars: 13 | Forks: 4
# PDF 知识库 MCP Server
一个强大的 Model Context Protocol (MCP) server,可将您的 PDF 和 Markdown 文档集合转化为智能的、可搜索的知识库。专为与 Claude Desktop、VS Code、Continue 及其他支持 MCP 的 AI 助手无缝集成而构建。
## 描述
**pdfkb-mcp** 使用先进的 PDF 解析技术处理您的文档,创建语义 embedding,并通过 Model Context Protocol 提供复杂的搜索功能。无论您是管理研究论文、技术文档还是商业报告,pdfkb-mcp 都能让您的文档集合变得即时可搜索,并让您的 AI 助手轻松访问。
### 动机
我开发 pdfkb-mcp 是因为我需要一种方法来高效地索引和搜索数百份半导体数据手册和技术文档。传统的文件搜索是不够的——我需要语义理解、上下文保留,以及跨多个文档询问有关技术规格的复杂问题的能力。这个工具改变了我处理技术文档的方式,我将其分享出来,以便其他人也能从智能文档搜索中受益,将其应用到他们的工作流中。
## ✨ 功能
### 🤖 **智能文档处理**
- **多种 PDF 解析器**:PyMuPDF4LLM (快速)、Marker (均衡)、Docling (表格)、MinerU (学术)、LLM (复杂布局)
- **Markdown 支持**:原生处理 .md 和 .markdown 文件并提取 metadata
- **智能分块**:LangChain、语义、基于页面和 unstructured 分块策略
- **后台处理**:具有智能缓存的无阻塞文档处理
### 🔍 **高级搜索与 AI**
- **混合搜索**:结合语义相似性与关键词匹配 (BM25) 以获得卓越的结果
- **AI 重排序**:Qwen3-Reranker 模型可将搜索相关性提高 15-30%
- **本地和远程 Embedding**:注重隐私的本地模型或基于高性能 API 的选项
- **文档摘要**:自动生成包含标题、描述和摘要的丰富 metadata
### 🌐 **多客户端和远程访问**
- **MCP 协议支持**:适用于 Claude Desktop、VS Code、Continue、Cline 及其他 MCP 客户端
- **Web 界面**:用于文档管理、搜索和分析的现代 Web UI
- **HTTP/SSE 传输**:支持多客户端同时远程访问
- **Docker 部署**:生产就绪的容器化部署
### 🔒 **隐私与性能**
- **本地优先选项**:完全离线运行,使用本地 embedding——无需 API 成本,充分保护隐私
- **量化模型**:GGUF 模型可减少 50-70% 的内存占用,同时保持质量
- **最佳实践**:后台处理、健康检查、监控和可扩展性
## 🌐 Web 界面预览
设置完成后,您将可以访问一个用于文档管理和搜索的现代 Web 界面:

*该 Web 界面提供文档上传、实时处理状态、语义搜索以及全面的文档管理功能。*
**主要功能:**
- 🔍 **实时搜索**:即时语义和混合搜索
- 📊 **处理状态**:实时更新文档处理进度
- 📈 **文档分析**:查看分块、metadata 和摘要
- ⚙️ **系统监控**:服务器性能和资源使用情况
## 🚀 快速开始
只需几分钟,即可使用 Docker/Podman 和 DeepInfra 作为您的 AI 提供商完成设置并运行。
### 前置条件
- **容器运行时**:已安装 Docker 或 Podman
- **DeepInfra API Key**:[获取您的免费密钥](https://deepinfra.com)(极具性价比,推荐使用)
- **文档**:一个包含需要索引的 PDF 或 Markdown 文件的文件夹
### 1. 设置 Docker Compose
```
# 下载配置并创建目录
curl -o docker-compose.yml https://raw.githubusercontent.com/juanqui/pdfkb-mcp/main/docker-compose.sample.yml
mkdir -p ./documents ./cache ./logs
# 编辑 docker-compose.yml 并更新:
# 1. Volume 路径:"/path/to/your/documents:/app/documents:rw"
# 2. API key:PDFKB_OPENAI_API_KEY: "your-deepinfra-api-key-here"
```
### 2. 启动服务器
```
# 使用 Podman(推荐)
podman-compose up -d
# 或使用 Docker
docker compose up -d
```
**访问地址:**
- **Web 界面**:http://localhost:8000
- **MCP Endpoint**:http://localhost:8000/mcp/
- **健康检查**:http://localhost:8000/health
### 3. 配置您的 MCP 客户端
**Claude Desktop** - 添加到 `claude_desktop_config.json`:
```
{
"mcpServers": {
"pdfkb": {
"transport": "http",
"url": "http://localhost:8000/mcp/"
}
}
}
```
**VS Code with Continue** - 添加到 `.continue/config.json`:
```
{
"mcpServers": {
"pdfkb": {
"transport": "http",
"url": "http://localhost:8000/mcp/"
}
}
}
```
### 4. 添加您的文档
- **Web 界面**:打开 http://localhost:8000
- **文件系统**:将文件复制到您的文档目录——它们会被自动检测
### 5. 开始搜索
让您的 AI 助手搜索您的文档:
- *“我需要配置什么寄存器来重置 nPM1300 中的充电?”*
- *“根据 nRF54L15 数据手册,XYZ 是一个支持时钟的引脚吗?”*
- *“根据 XYZ 数据手册,将温度解释为摄氏度的转换公式是什么?”*
此设置包括:
- ✅ **DeepInfra AI**:高性价比的 embedding、重排序和文档摘要
- ✅ **混合搜索**:语义 + 关键词匹配
- ✅ **文档摘要**:自动生成的 metadata(如标题、描述)
- ✅ **Web 界面**:文档管理 UI
- ✅ **持久化存储**:保留文档和缓存
## 📚 用户指南
有关完整的文档、配置选项和高级功能:
**👉 [查看完整用户指南](docs/userguide/index.md)**
用户指南包括:
- **[📦 安装选项](docs/userguide/installation.md)** - uvx、pip、Docker 设置
- **[⚙️ 配置](docs/userguide/configuration.md)** - 环境变量和设置
- **[🔍 搜索功能](docs/userguide/search-features.md)** - 混合搜索、重排序、语义分块
- **[🤖 Embeddings](docs/userguide/embeddings.md)** - 本地、OpenAI 和 HuggingFace 选项
- **[🔌 MCP 客户端](docs/userguide/mcp-clients.md)** - 所有 MCP 客户端的设置指南
- **[🐳 Docker 部署](docs/userguide/docker-deployment.md)** - 生产环境部署指南
- **[🔧 故障排除](docs/userguide/troubleshooting.md)** - 常见问题和性能调优
- **[🎯 高级功能](docs/userguide/advanced.md)** - 文档摘要和企业级功能
## 许可证
本项目基于 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。
标签:AI知识库, MCP, RAG, 向量检索, 安全监控, 实时告警, 文档解析, 混合搜索, 请求拦截, 逆向工具