RAGLite MCP服务器使用说明
项目简介
RAGLite 是一个用于检索增强生成(RAG)的 Python 工具包,它集成了 Model Context Protocol (MCP) 服务器功能。这意味着 RAGLite 不仅可以作为独立的 RAG 应用,还可以作为 MCP 服务器,为支持 MCP 协议的客户端(如 Claude 桌面应用)提供后端服务,让这些客户端能够利用 RAGLite 的知识库检索能力。
主要功能点
- 内置 MCP 服务器: RAGLite 具备 MCP 服务器功能,可以与 MCP 客户端进行通信。
- 知识库检索工具: 通过 MCP 协议,RAGLite 向客户端暴露 'search_knowledge_base' 工具,允许客户端查询 RAGLite 管理的知识库。
- 支持多种数据库: 可以使用 PostgreSQL 或 SQLite 作为知识库的存储后端。
- 灵活的 LLM 和 Embedding 模型选择: 可以配置 LiteLLM 支持的各种 LLM 和 Embedding 模型,包括本地模型 (如 llama.cpp) 和云端 API 模型 (如 OpenAI)。
- RAG 功能: 除了 MCP 服务器功能,RAGLite 本身也是一个强大的 RAG 工具包,支持文档插入、语义分块、混合搜索、重排序等 RAG 流程中的关键步骤。
安装步骤
- 安装 RAGLite:
打开终端并运行以下命令安装 RAGLite:
pip install raglite - 安装 uv (可选但推荐):
为了让 Claude 桌面应用能够启动 MCP 服务器,建议安装 'uv' 包:
pip install uv
服务器配置
MCP 服务器的配置信息(JSON 格式),用于 MCP 客户端(例如 Claude 桌面应用)连接 RAGLite MCP 服务器。以下是配置示例,请根据您的实际需求进行调整。
{ "server name": "RAGLite", "command": "uvx", "args": [ "--python", "3.11", "--with", "numpy<2.0.0", "raglite", "mcp", "run" ], "env": { "RAGLITE_DB_URL": "sqlite:///raglite.db", // 知识库数据库 URL,可以是 SQLite 文件路径或 PostgreSQL 连接字符串 "RAGLITE_LLM": "llama-cpp-python/bartowski/Llama-3.2-3B-Instruct-GGUF/*Q4_K_M.gguf@4096", // 用于生成答案的 LLM 模型,支持 LiteLLM 格式 "RAGLITE_EMBEDDER": "llama-cpp-python/lm-kit/bge-m3-gguf/*F16.gguf@1024" // 用于文档嵌入的 Embedding 模型,支持 LiteLLM 格式 } }
参数说明:
- '"server name"': MCP 服务器的名称,在客户端中用于标识。例如 Claude 桌面应用中会显示此名称。
- '"command"': 启动 MCP 服务器的命令。这里使用 'uvx',它是一个可以方便地在虚拟环境中运行 Python 命令的工具 (假设您已安装 'uv')。 您也可以直接使用 'raglite' 如果您的环境中 'raglite' 命令可用。
- '"args"': 传递给启动命令的参数列表。
- '--python "3.11"': 指定 Python 版本,请根据您的环境调整。
- '--with "numpy<2.0.0"': 指定兼容的 numpy 版本,某些环境下可能需要。
- '"raglite"': 运行 'raglite' 命令。
- '"mcp"': 指定 'raglite' 命令的子命令为 'mcp',用于 MCP 服务器相关操作。
- '"run"': 'mcp' 子命令的参数,表示运行 MCP 服务器。
- '"env"': 环境变量配置,用于传递 RAGLite 配置参数。
- '"RAGLITE_DB_URL"': 指定知识库数据库的 URL。示例中使用 SQLite 数据库文件 'raglite.db'。您也可以配置为 PostgreSQL 数据库连接字符串。
- '"RAGLITE_LLM"': 指定用于生成答案的 LLM 模型。示例中使用本地 llama.cpp 模型 'llama-cpp-python/bartowski/Llama-3.2-3B-Instruct-GGUF/*Q4_K_M.gguf@4096'。您可以替换为其他 LiteLLM 支持的模型,例如 OpenAI 的 'gpt-4o-mini'。
- '"RAGLITE_EMBEDDER"': 指定用于文档嵌入的 Embedding 模型。示例中使用本地 llama.cpp 模型 'llama-cpp-python/lm-kit/bge-m3-gguf/*F16.gguf@1024'。您可以替换为其他 LiteLLM 支持的 Embedding 模型,例如 OpenAI 的 'text-embedding-3-small'。
注意:
- 如果您使用 API-based LLM 模型 (例如 OpenAI 的模型),请确保在环境变量中配置 API 密钥。例如,您可以在 '"env"' 中添加 '"OPENAI_API_KEY": "sk-..."'。
- 您需要将上述 JSON 配置信息填入 MCP 客户端(如 Claude 桌面应用)的 MCP 服务器配置中。具体操作请参考 MCP 客户端的文档。
基本使用方法
-
启动 MCP 服务器: RAGLite MCP 服务器可以通过命令行启动。打开终端,导航到您的项目目录(如果需要),然后运行以下命令:
raglite mcp run --db-url sqlite:///raglite.db --llm llama-cpp-python/bartowski/Llama-3.2-3B-Instruct-GGUF/*Q4_K_M.gguf@4096 --embedder llama-cpp-python/lm-kit/bge-m3-gguf/*F16.gguf@1024请根据您的实际配置修改数据库 URL、LLM 模型和 Embedding 模型参数。
-
配置 MCP 客户端: 打开您的 MCP 客户端(例如 Claude 桌面应用),进入 MCP 服务器配置页面,填入上面生成的 JSON 配置信息。
-
连接和使用: 在 MCP 客户端中连接到 RAGLite MCP 服务器。连接成功后,客户端应该能够识别并调用 RAGLite 提供的 'search_knowledge_base' 工具。您可以通过客户端的界面或命令来使用该工具,查询 RAGLite 的知识库。例如在 Claude 桌面应用中,您可以直接提问,Claude 会根据需要建议使用 'search_knowledge_base' 工具进行知识库检索。
更多信息
有关 RAGLite 的更多功能 (例如文档插入、RAG 应用构建等),请参考仓库的 README.md 文件和项目文档。
信息
分类
开发者工具