PDF语义搜索服务

MyDocsMCP是一个基于FastMCP框架的本地化PDF文档语义搜索服务器,支持自动索引和多语言嵌入模型,适用于离线文档检索和分析场景。

  • by Edwardmaster7
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Edwardmaster7/MyDocsMCP

使用说明

MyDocsMCP:用于PDF收藏的MCP服务器

这个项目是 模型上下文协议(MCP)服务器 其允许对PDF文档集合进行语义搜索(本地RAG)。它使用 FastMCP 框架 色度数据库 向量数据库和本地嵌入模型 句子转换.

建筑

  • 语义搜索: 100%本地(离线)RAG(检索增强生成)。
  • 嵌入: paraphrase-multilingual-mpnet-base-v2 (支持葡萄牙语)。
  • 矢量数据库: 持久ChromaDB。
  • 观察者: 在 ./data/pdfs 文件夹并通过自动索引 watchdog.

如何使用

1.数据准备

将您的PDF放在 ./data/pdfs/ 文件夹。如果要按学科组织它们,请创建子文件夹:

data/pdfs/
  ├── Generative-AI/
  │   └── lecture1.pdf
  └── Machine-Learning/
      └── fundamentals.pdf

子文件夹名称将用作 discipline 元数据。

2.配置极其简单(Claude/Gemini桌面)

要使用服务器,请将以下配置添加到代理的JSON文件中(claude_desktop_config.json 或双子座 settings.json).

Claude Path(macOS): ~/Library/Application Support/Claude/claude_desktop_config.json Gemini Path(macOS): ~/.gemini/settings.json

服务器自动解析所有数据文件夹(pdfs, metadata, chroma_db)基于项目根。您只需提供克隆存储库的绝对路径:

{
  "mcpServers": {
    "mydocsmcp": {
      "command": "uv",
      "args": [
        "--directory", "/Absolute/Path/To/Your/MyDocsMCP",
        "run",
        "mydocs-mcp"
      ]
    }
  }
}

就是这样! 无其他环境变量(PYTHONPATH, PDF_DIR等等)。设置“Just Works”™。


外露工具

  • search_documents(query, top_k=5, discipline=None):集合中的语义搜索。
  • list_documents(discipline=None):列出索引的PDF。
  • cross_topic_search(query, disciplines):跨多个学科的跨主题搜索。
  • get_index_stats():矢量数据库统计。
  • ingest_new_documents(path=None, force_reindex=False):强制手动重新摄入。

本地开发(Python)

我们使用 紫外线 包管理器:

# Install dependencies
uv sync

# Run the server
uv run mydocs-mcp

运行测试

uv run pytest

使用的技术