使用说明
项目简介
RAG-MCP 是一个实现了 Model Context Protocol (MCP) 协议的服务器,专注于为大型语言模型(LLM)客户端提供基于PDF文档的检索增强生成(RAG)能力。它允许用户上传PDF文档到服务器,服务器会解析文档内容,构建语义索引,并通过 MCP 协议提供的工具接口,让 LLM 客户端能够查询和利用这些文档中的信息,从而实现智能问答等应用。
主要功能点
- PDF文档解析与OCR: 能够解析PDF文档内容,即使是扫描件也能通过OCR技术提取文本。
- 语义索引构建: 使用 Sentence Transformers 和 FAISS 技术,为PDF文档内容构建高效的语义索引,支持快速语义搜索。
- 工具注册与调用: 通过 MCP 协议的工具 (Tool) 机制,将 "重建索引" 和 "查询PDF" 功能暴露给 MCP 客户端。
- 标准MCP服务器: 遵循 MCP 协议规范,可以与任何兼容 MCP 协议的客户端进行通信和集成。
安装步骤
- 安装 uv: 按照仓库 'README.md' 步骤,首先安装 'uv' 包管理器 (如果尚未安装)。
curl -LsSf https://astral.sh/uv/install.sh | sh - 创建并进入虚拟环境: 使用 'uv' 创建并激活 Python 虚拟环境。
uv init rag_mcp cd rag_mcp uv venv source .venv/bin/activate - 安装依赖: 安装项目所需的 Python 依赖包。
uv pip install -r requirements.txt - 安装 Tesseract OCR: 如果需要处理扫描版PDF,需要安装 Tesseract OCR 引擎。
brew install tesseract # macOS 示例,其他系统请参考 Tesseract 安装文档
服务器配置
要让 MCP 客户端(例如 Claude 桌面应用)连接到 RAG-MCP 服务器,需要在客户端的配置文件中添加服务器配置信息。以下是一个示例配置,需要根据你的实际环境进行调整。
MCP 客户端配置 (例如 'claude_desktop_config.json'):
{ "mcpServers": { "rag_server": { // 服务器名称,客户端内唯一标识,可以自定义 "command": "/Users/your_username/.local/bin/uv", // uv 命令的完整路径,请替换为你的实际路径 "args": [ "--directory", "/Users/your_username/Documents/RAG_MCP", // RAG_MCP 项目的根目录,请替换为你的实际路径 "run", "rag.py" // 运行服务器的 Python 脚本 ] } } }
配置参数说明:
- '"rag_server"': 自定义的服务器名称,在客户端中用于引用此服务器。
- '"command"': 启动服务器的命令,这里使用 'uv run' 运行 Python 脚本。你需要将 '/Users/your_username/.local/bin/uv' 替换为你 'uv' 命令的实际安装路径。通常 'uv' 会安装在用户家目录的 '.local/bin' 目录下。
- '"args"': 传递给 'uv run' 命令的参数列表。
- '"--directory"': 指定项目根目录,RAG-MCP 服务器程序将在该目录下运行。你需要将 '/Users/your_username/Documents/RAG_MCP' 替换为你 RAG_MCP 项目存放的实际路径。
- '"run"': 'uv' 命令的子命令,用于运行 Python 脚本。
- '"rag.py"': 要运行的 Python 脚本文件名,即 RAG-MCP 服务器的入口文件。
请务必根据你的实际环境,修改 'command' 和 'args' 中的路径信息。 你可以通过在终端输入 'which uv' 命令来查找 'uv' 的完整路径。RAG_MCP 项目的路径也需要替换为你自己存放项目的路径。
基本使用方法
-
启动 RAG-MCP 服务器: 在 RAG_MCP 项目根目录下,运行以下命令启动服务器。
uv run rag.py服务器成功启动后,通常不会有明显的输出,它会在后台等待 MCP 客户端的连接和请求。
-
启动 MCP 客户端并连接: 启动配置了 RAG-MCP 服务器的 MCP 客户端(例如 Claude 桌面应用)。客户端应该能够自动连接到 RAG-MCP 服务器 (如果配置正确)。
-
上传 PDF 文档: 将需要检索的 PDF 文档复制到 RAG-MCP 项目根目录下的 'files' 文件夹中。
-
重建索引: 在 MCP 客户端中,调用 'rebuild_index' 工具。这会指示 RAG-MCP 服务器重新解析 'files' 文件夹下的 PDF 文档,并构建或更新语义索引。 通常可以通过在客户端的交互界面中输入类似 '@rag_server.rebuild_index()' 的指令来调用 (具体的调用方式取决于 MCP 客户端的实现)。
-
查询 PDF 文档: 在 MCP 客户端中,使用自然语言提问,并调用 'query_pdfs' 工具进行查询。例如,在客户端中输入类似 '@rag_server.query_pdfs(query="18 Church St.的意义是什么?")' 的指令 (中文或英文提问均可)。RAG-MCP 服务器会返回在 PDF 文档中找到的相关内容。
通过以上步骤,你就可以使用 RAG-MCP 服务器为你的 MCP 客户端提供 PDF 文档的语义搜索和问答能力了。请参考 MCP 客户端的文档,了解如何在客户端中更有效地使用和调用 MCP 服务器提供的工具。
信息
分类
AI与计算