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______________________________________________________________________
