AI工具集成服务器

该服务器用于集成Vanna聊天和Ragflow检索功能,提供信息检索和聊天流式传输服务。

  • by glide-the
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 glide-the/RAGFlowMCP

使用说明

Vanna MCP服务器(带Ragflow检索)

MCP服务器,用于将Vanna聊天和Ragflow检索与AI工具集成。为Ragflow提供MCP工具 /api/v1/retrieval 端点和通往Vanna的流媒体桥 /api/v0/chat_sse.

描述

该服务器将MCP兼容客户端与Ragflow检索和Vanna聊天API连接起来。它保留了原始的Ragflow检索工具以实现向后兼容性,并添加了流式聊天支持。

主要特点

  • 信息检索:对Ragflow数据集/文档执行语义、关键字和混合检索。
  • Vanna聊天流媒体:代理Vanna /api/v0/chat_sse 通过MCP流媒体进行响应。

安装

此服务器旨在用作MCP服务器,应使用uv安装在虚拟环境中,而不是作为全系统软件包。

开发安装

# Create a virtual environment
uv venv --python 3.11

# Install the package in development mode
uv pip install -e .

需求

  • Python 3.11+
  • 使用运行Ragflow API服务器 /api/v1/retrieval 启用
  • 运行Vanna API服务器暴露 /api/v0/chat_sse

环境变量

RAGFLOW_API_BASE=http://localhost:9621
RAGFLOW_API_KEY=your-api-key

VANNA_API_BASE=http://localhost:8000
VANNA_API_KEY=your_vanna_api_key

用法

重要MCP服务器应通过MCP客户端配置文件运行(例如。, mcp-config.json).

命令行选项

配置服务器时可以使用以下参数(也可以通过环境变量提供):

  • --host:Ragflow API主机(默认值:localhost)
  • --port:Ragflow API端口(默认值:9621)
  • --api-key:Ragflow API键(可选)
  • --base-url:完整Ragflow API基本URL(覆盖主机/端口)
  • --vanna-api-key:Vanna API密钥(可选)
  • --vanna-base-url:完整的Vanna API基础URL

两个遗产 raglfow-mcp 以及新 vanna-mcp 入口点映射到同一服务器。

设置为MCP服务器

使用uvenv(uvx):

{
  "mcpServers": {
    "ragflow-mcp": {
      "command": "uvx",
      "args": [
        "vanna-mcp",
        "--host",
        "localhost",
        "--port",
        "9621",
        "--api-key",
        "your_api_key"
      ]
    }
  }
}

发展

{
  "mcpServers": {
    "ragflow-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/data_analyst_mcp",
        "run",
        "src/data_analyst_mcp/main.py",
        "--host",
        "localhost",
        "--port",
        "9621",
        "--api-key",
        "your_api_key"
      ]
    }
  }
}

替换 /path/to/data_analyst_mcp 使用MCP目录的实际路径。

可用的MCP工具

  • ragflow_retrieval:执行Ragflow /api/v1/retrieval 根据指定的数据集或文档ID。
  • vanna_chat_sse:来自Vanna的流式响应 /api/v0/chat_sse 通过MCP流媒体。

流媒体示例

from data_analyst_mcp.client.vanna_server_api_client.vanna_client import (
    build_vanna_client,
    chat_sse_stream,
)

client = build_vanna_client()

async for event in chat_sse_stream(client=client, message="Hello Vanna"):
    print(event)

发展

安装开发依赖项

uv pip install -e ".[dev]"

运行过梁

ruff check src/
mypy src/

许可证

麻省理工学院