使用说明

项目简介

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

  1. 创建新的 conda 环境:
    conda create -n ragflow_mcp python=3.12
    conda activate ragflow_mcp
  2. 克隆仓库:
    git clone https://github.com/oraichain/ragflow-mcp.git
    cd ragflow-mcp
  3. 安装依赖:
    pip install -r requirements.txt

方法 2: 使用 uv (推荐)

  1. 安装 uv:
    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. 克隆仓库:
    git clone https://github.com/oraichain/ragflow-mcp.git
    cd ragflow-mcp
  3. 创建并激活虚拟环境:
    uv venv --python 3.12
    source .venv/bin/activate  # On Unix/macOS
    # Or on Windows:
    # .venv\Scripts\activate
  4. 安装依赖:
    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。

基本使用方法

  1. 启动服务器: 在项目根目录下,根据您选择的安装方式激活虚拟环境后,运行以下命令启动服务器:

    uvicorn main:app --host 0.0.0.0 --port 8000
  2. 运行客户端示例 (可选): 仓库中提供了 'client.py' 作为客户端示例,用于测试与服务器的连接和工具调用。您可以运行以下命令来执行客户端示例:

    python client.py --endpoint http://localhost:8000/sse

    客户端示例会连接到服务器,列出可用的工具,并调用 'hello' 工具,打印工具返回的结果。

  3. 使用 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 应用提供强大的知识库支持和功能扩展。

信息

分类

开发者工具