文档检索增强生成服务

MCP-RAG是一个本地化的文档检索增强生成服务,支持多种文档格式索引和自然语言搜索,适用于学生、专业人士和研究人员。

  • by seanshin0214
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 seanshin0214/mcp-rag

使用说明

MCP-RAG

克劳德桌面版个人笔记本LM

Claude Desktop的通用RAG(检索增强生成)MCP服务器。通过CLI索引文档,在Claude Desktop中使用0%幻觉搜索它们。


什么是MCP-RAG?

把它想象成 Claude桌面版NotebookLM:

  • 📚 为所有文档建立索引:PDF、Word、PowerPoint、Excel、,한글,TXT,MD
  • 🔍 自然语言搜索:在Claude Desktop中提问
  • ✅ 0%幻觉:答案仅基于您的文件
  • 💻 100%本地:所有数据都保留在您的计算机上(ChromaDB)
  • 🎯 简单的工作流程:用于索引的CLI→ 克劳德桌面搜索

建筑

┌─────────────────────┐
│  Your Documents     │
│  (PDF, DOCX, etc)   │
└──────────┬──────────┘
           │
           ▼
    [CLI: npm run cli add]
           │
           ▼
┌─────────────────────┐
│   ChromaDB Server   │ ◄─── Vector embeddings
│   (localhost:8000)  │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│   MCP-RAG Server    │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│  Claude Desktop     │ ◄─── You ask questions here!
└─────────────────────┘

两部分系统:

  1. 命令行界面 =文档管理(添加、删除、列表)
  2. 克劳德桌面 =搜索和问答

快速开始

1.安装

git clone https://github.com/seanshin0214/mcp-rag.git
cd mcp-rag
npm install
pip install chromadb

2.启动ChromaDB服务器

在单独的终端中保持此运行:

chroma run --host localhost --port 8000

3.添加文档(CLI)

# Add single document
npm run cli add school "path/to/regulations.pdf"

# Add multiple documents
npm run cli add research "paper1.pdf"
npm run cli add research "paper2.docx"
npm run cli add work "handbook.pptx"

支持的格式:

  • 文档:PDF、DOCX、HWP、TXT、MD
  • 演示文稿:PPTX
  • 电子表格:XLSX、XLS

4.配置克劳德桌面

窗户: %APPDATA%\Claude\claude_desktop_config.json

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

✨ 选项1:自动启动ChromaDB(推荐)

{
  "mcpServers": {
    "mcp-rag": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-rag/start-with-chroma.js"]
    }
  }
}

这会在启动MCP-RAG之前自动启动ChromaDB!

选项2:手动启动ChromaDB

{
  "mcpServers": {
    "mcp-rag": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-rag/src/index.js"]
    }
  }
}

您需要手动运行 chroma run --host localhost --port 8000 在开始之前。

重要提示: 使用您的实际安装路径!

5.重新启动克劳德桌面

6.提问!

在克劳德桌面中:

"What does the school collection say about attendance?"
"Search the research collection for methodology"
"Show me all my collections"

CLI命令

# Add document
npm run cli add <collection> <file> [-d "description"]

# List all collections
npm run cli list

# Get collection info
npm run cli info <collection>

# Search test
npm run cli search <collection> "query"

# Delete collection
npm run cli delete <collection>

例子

# Add with description
npm run cli add school "regulations.pdf" -d "School regulations 2024"

# Add multiple files (PowerShell)
Get-ChildItem "*.docx" | ForEach-Object {
    npm run cli add MyCollection $_.FullName
}

# Check what's indexed
npm run cli list
npm run cli info school

MCP工具(克劳德桌面版)

当您在Claude Desktop中提问时,会自动使用以下工具:

工具 说明
search_documents 在特定收藏或所有收藏中搜索
list_collections 列出所有可用收藏
get_collection_info 获取收藏的详细信息

注: 文档添加仅限于CLI,在Claude Desktop中不可用。


运作原理

索引(CLI)

1. Read file (PDF/DOCX/PPTX/etc)
2. Extract text
3. Split into 500-token chunks (50-token overlap)
4. Generate embeddings (ChromaDB)
5. Store in collection

搜索(克劳德桌面)

1. You ask: "What's the attendance policy?"
2. MCP-RAG searches ChromaDB
3. Returns top 5 most relevant chunks
4. Claude answers using ONLY those chunks

用例

📚 学生

npm run cli add math "calculus-textbook.pdf"
npm run cli add physics "lecture-notes.docx"

→ “解释我数学收藏中的导数概念”

🏢 专业人士

npm run cli add company "employee-handbook.pdf"
npm run cli add project "requirements.docx"

→ “我们的假期政策是什么?”

🔬 研究人员

npm run cli add literature "papers/*.pdf"
npm run cli add notes "research-notes.md"

→ “从文献集中总结方法论”


特性

  • ✅ 多收藏支持 -按主题组织
  • ✅ 语义搜索 -ChromaDB矢量嵌入
  • ✅ 消息来源 -查看哪个文档/块
  • ✅ 相关性评分 -知道这场比赛有多自信
  • ✅ 多种文件格式 -PDF、DOCX、PPTX、XLSX、HWP、TXT、MD
  • ✅ 100%本地 -没有云,都在你的机器上
  • ✅ 0%幻觉 -仅基于文档的答案

比较

功能 笔记本LM MCP-RAG
平台 谷歌云 本地
人工智能模型 双子座 克劳德
隐私 云 100%本地
多收藏 ❌ ✅
CLI ❌ ✅
费用 免费(有限) 免费(无限)

故障排除

ChromaDB连接错误

问题: Cannot connect to ChromaDB

解决方案:

chroma run --host localhost --port 8000

保持这个终端打开!

克劳德桌面:MCP服务器未显示

  1. 检查 claude_desktop_config.json 语法
  2. 使用绝对路径(非相对路径)
  3. 完全重新启动克劳德桌面
  4. 检查ChromaDB是否正在运行

没有搜索结果

# Verify documents are indexed
npm run cli list
npm run cli info <collection>

# Re-index if needed
npm run cli add <collection> <file>

高级

批量添加文件

PowerShell:

Get-ChildItem "C:\docs\*.pdf" | ForEach-Object {
    npm run cli add MyCollection $_.FullName
}

猛击:

for f in /path/to/docs/*.pdf; do
    npm run cli add MyCollection "$f"
done

自定义块大小

编辑 src/indexer.js:

const CHUNK_SIZE = 500;      // Tokens per chunk
const CHUNK_OVERLAP = 50;    // Overlap between chunks

更大的块=更多的上下文,更少的块 更小的块=更精确,更多的块


项目结构

mcp-rag/
├── src/
│   ├── index.js       # MCP server
│   ├── cli.js         # CLI tool
│   └── indexer.js     # Document processing
├── chroma/            # ChromaDB data (auto-created)
├── package.json
├── README.md
├── QUICK_START.md
└── HOW_TO_USE.md

需求

  • Node.js 18+
  • python 3.8+(适用于ChromaDB)
  • 克劳德桌面 (最新版本)

贡献

欢迎投稿!这是一个通用的工具,可以让许多用户受益。


许可证

MIT许可证-请参阅 许可证


鸣谢

内置:


MCP-RAG -你的文件,克劳德的情报,零幻觉。