使用说明
项目简介
Ragflow MCP服务器是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型 (LLM) 应用提供结构化的上下文信息和功能支持。它集成了 RAGFlow 知识库,通过 MCP 协议向客户端暴露知识库管理、文档上传和问答等工具,使得开发者可以方便地构建基于知识库的 LLM 应用。
主要功能点:
- 知识库管理: 集成 RAGFlow 知识库,支持创建和管理数据集(Datasets),作为 LLM 应用的知识来源。
- 文档上传: 允许用户上传文档到指定的知识库,扩展知识库的内容。
- 知识问答: 提供基于知识库的问答能力,LLM 可以通过调用工具查询知识库并获取答案。
- 工具注册与执行: 通过 MCP 协议注册并暴露一系列工具,例如 'hello' (示例工具), 'get_ragflow_datasets' (获取数据集列表), 'create_rag' (创建知识库), 'upload_rag' (上传文档), 'query_rag' (知识库查询) 等。
- SSE 传输协议: 使用 Server-Sent Events (SSE) 作为 MCP 服务器的传输协议,实现与客户端的实时通信。
- JSON-RPC 通信: 遵循 MCP 协议规范,使用 JSON-RPC 格式进行请求和响应的交互。
- 认证支持: 可选的 JWT 认证机制,保障服务器的安全性(可以通过配置 'AUTH_ENABLED' 环境变量启用)。
安装步骤
本仓库提供两种安装方式,推荐使用 'uv' (方法 2) 以获得更快的安装速度和更好的依赖管理。
方法 1: 使用 conda
- 创建新的 conda 环境:
conda create -n ragflow_mcp python=3.12 conda activate ragflow_mcp - 克隆仓库:
git clone https://github.com/oraichain/ragflow-mcp.git cd ragflow-mcp - 安装依赖:
pip install -r requirements.txt
方法 2: 使用 uv (推荐)
- 安装 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh - 克隆仓库:
git clone https://github.com/oraichain/ragflow-mcp.git cd ragflow-mcp - 创建并激活虚拟环境:
uv venv --python 3.12 source .venv/bin/activate # On Unix/macOS # Or on Windows: # .venv\Scripts\activate - 安装依赖:
uv pip install -r pyproject.toml
服务器配置
Ragflow MCP 服务器需要配置以下环境变量才能正常运行。您可以在项目根目录下创建 '.env' 文件,并添加以下配置信息:
RAGFLOW_API_KEY=YOUR_RAGFLOW_API_KEY # 您的 RAGFlow API 密钥 RAGFLOW_BASE_URL=YOUR_RAGFLOW_BASE_URL # 您的 RAGFlow API Base URL,通常为 RAGFlow 服务地址 MODEL_NAME=gpt-3.5-turbo # (可选) 指定用于问答的 LLM 模型名称,例如 gpt-3.5-turbo, 留空则使用 RAGFlow 默认模型 AUTH_ENABLED=false # (可选) 是否启用 JWT 认证,默认为 false (不启用),设置为 true 则启用认证
MCP 客户端配置 (JSON):
以下为 MCP 客户端连接 Ragflow MCP 服务器所需的配置信息示例。客户端需要配置 'command' 和 'args' 来启动和连接服务器。
{ "server name": "RagflowMCP", "command": "uvicorn", "args": [ "main:app", "--host", "0.0.0.0", "--port", "8000" ], "transport": "sse", "endpoint": "http://localhost:8000/sse", "auth": { "type": "bearer", "token": "test-user-id" // 如果启用认证 (AUTH_ENABLED=true),则需要提供有效的 JWT Token,否则使用默认的 "test-user-id" } }
配置参数说明:
- 'server name': 服务器名称,客户端用于标识连接的服务器。
- 'command': 启动服务器的命令,这里使用 'uvicorn' 启动 ASGI 应用。
- 'args': 启动命令的参数列表:
- '"main:app"': 指定运行 'main.py' 文件中的 'app' (Starlette 应用实例)。
- '"--host", "0.0.0.0"': 指定服务器监听所有可用的网络接口。
- '"--port", "8000"': 指定服务器监听端口为 8000。
- 'transport': 使用的传输协议,这里为 'sse' (Server-Sent Events)。
- 'endpoint': SSE 协议的端点 URL,客户端通过此 URL 与服务器建立连接。
- 'auth': 认证配置 (可选):
- 'type': 认证类型,这里为 'bearer' (Bearer Token 认证)。
- 'token': 用于认证的 Token,示例中使用 "test-user-id"。 注意:如果服务器端启用了 JWT 认证 ('AUTH_ENABLED=true'),这里需要替换为有效的 JWT Token。
基本使用方法
-
启动服务器: 在项目根目录下,根据您选择的安装方式激活虚拟环境后,运行以下命令启动服务器:
uvicorn main:app --host 0.0.0.0 --port 8000 -
运行客户端示例 (可选): 仓库中提供了 'client.py' 作为客户端示例,用于测试与服务器的连接和工具调用。您可以运行以下命令来执行客户端示例:
python client.py --endpoint http://localhost:8000/sse客户端示例会连接到服务器,列出可用的工具,并调用 'hello' 工具,打印工具返回的结果。
-
使用 MCP Inspector (调试): 可以使用 MCP Inspector 工具来调试和交互 Ragflow MCP 服务器。
-
首先启动 Ragflow MCP 服务器。
-
然后运行 MCP Inspector:
SERVER_PORT=8000 npx @modelcontextprotocol/inspector在 MCP Inspector 中配置服务器地址 (例如 'http://localhost:8000/sse') 和认证信息 (如果启用)。您可以使用 Inspector 查看服务器能力、列出和调用工具、发送自定义 MCP 请求等。
-
通过以上步骤,您可以搭建并开始使用 Ragflow MCP 服务器,为您的 LLM 应用提供强大的知识库支持和功能扩展。
信息
分类
开发者工具