MCP GitHub和本地文档RAG服务器
高性能的“个人知识”MCP服务器,使人工智能工具(如Claude Desktop或GitHub Copilot)能够索引和搜索 文件(Markdown、PDF) 使用高级混合搜索引擎从GitHub存储库和本地文件夹中搜索。
🏗 建筑:三层设计
服务器使用多层存储策略来确保速度、准确性和语义深度。
┌───────────────────────────────────────────────────────────────────┐
│ PERSONAL KNOWLEDGE RAG │
├───────────────────────────────────────────────────────────────────┤
│ │
│ [ DATA SOURCES ] [ ARCHITECTURE ] [ ENGINE ] │
│ │
│ 📁 Local Path ───┐ ┌────────────────┐ │
│ │ │ LAYER A │ ┌──────────┐ │
│ ├─────►│ SQL Metadata │ │ OLLAMA │ │
│ 🌐 GitHub Repo ───┘ └───────┬────────┘ │ (Local │ │
│ │ │ Embeds) │ │
│ ┌───────▼────────┐ └────▲─────┘ │
│ │ LAYER B │ │ │
│ │ Lexical (FTS5) │ │ │
│ └───────┬────────┘ │ │
│ │ │ │
│ ┌───────▼────────┐ │ │
│ │ LAYER C │───────────┘ │
│ │ Semantic Vector│ │
│ └────────────────┘ │
│ │
│ [ BACKED BY SQLITE + VEC0 + BM25 SCORING ] │
└───────────────────────────────────────────────────────────────────┘🔹 A层:结构化数据(SQLite)
处理元数据管理(存储库、文件路径、SHA哈希、源类型)。它确保只有更改的文件才会被重新索引,从而优化资源。
🔹 B层:词汇库(FTS5+BM25)
使用SQLite的全文搜索进行标准“关键字”搜索。这一层对于查找语义搜索可能过于泛化的特定技术术语或函数名称至关重要。
🔹 C层:语义存储(向量嵌入)
用途 sqlite-vec 以执行向量相似度搜索。它理解您的查询的“含义”,即使您没有使用确切的关键字,它也能找到相关的文档。
sqlite-vec混合搜索
______________________________________________________________________
🚀 特性
- 多源索引:同时索引本地文件夹和GitHub存储库。支持 Markdown(.md、.mdx) 和 PDF 文件夹。
- 智能分块:自动将文档分成重要部分,同时保持标题上下文。
- 零设置:开箱即用!如果未检测到Ollama,则返回
nomic-ai/nomic-embed-text-v1.5(通过本地运行transformers.js),与Ollama型号完全兼容。 - 混合搜索(RRF):使用互惠排名融合将词汇和语义结果结合起来,以获得更好的相关性。
- 本地优先:使用Olama进行嵌入。您的私人数据永远不会离开您的机器。
- 自清理缓存:通过自动清理优化嵌入缓存。
- 持久化存储:自动将索引数据保存在
~/.mcp-knowledge-mind/以实现跨会话的持久性。
🛠 用法
工具
learn_repository:下载并索引远程GitHub存储库。learn_filesystem:索引本地目录(Markdown+PDF)。ask_knowledge:对所有索引数据执行混合搜索。get_status:查看索引统计信息(文档计数、缓存大小等)。
用法
npx @blockquote-playground/mcp-knowledge-mind开发者安装
- 克隆此存储库。
- 安装依赖项:
npm install. - 配置您的MCP客户端(Claude Desktop)以运行:
node /absolute/path/to/index.js⚙️ 需求
- 奥拉玛 随着
nomic-embed-text安装。 - Node.js 18+。
- SQLite。
