使用说明

项目简介

StarRocks MCP Server 是一个 MCP 服务器的实现,它允许大型语言模型(LLM)客户端通过 MCP 协议与 StarRocks 数据库进行交互。该服务器目前主要实现了工具 (Tools) 功能,允许 LLM 客户端调用预定义的工具来执行 StarRocks 数据库的 SQL 查询。

主要功能点

  • 工具 (Tools) 支持:
    • 'read_query': 执行 SELECT 查询或返回结果集的命令,并将结果以 CSV 格式返回。
    • 'write_query': 执行 DDL/DML 或其他不返回结果集的 StarRocks 命令,并返回受影响的行数和执行时间。
  • 基于 MCP 协议: 遵循 MCP 协议规范,可以与任何兼容 MCP 协议的 LLM 客户端进行通信。
  • 可配置的 StarRocks 连接: 通过环境变量配置 StarRocks 数据库的连接信息,方便灵活部署。

安装步骤

  1. 环境准备: 确保已安装 Python 环境(推荐 Python 3.8+)。
  2. 安装依赖: 使用 pip 安装项目依赖。由于 'README.md' 中没有明确 requirements.txt,但 'server.py' 导入了 'mcp' 和 'mysql.connector' 库,以及 'pydantic',初步判断需要安装这些库。
    pip install mcp pydantic mysql-connector-python
  3. 下载仓库代码: 从 GitHub 克隆或下载 'mcp-server-starrocks' 仓库代码。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令和参数才能连接。以下是根据仓库 'README.md' 和代码分析生成的 MCP 服务器配置信息:

{
  "serverName": "mcp-server-starrocks",
  "command": "uv",
  "args": [
    "run",
    "--with",
    "mcp-server-starrocks",
    "src/mcp_server_starrocks/__init__.py"
  ],
  "env": {
    // StarRocks 主机地址,默认为 localhost
    "STARROCKS_HOST": "localhost",
    // StarRocks 端口号,默认为 9030
    "STARROCKS_PORT": "9030",
    // StarRocks 用户名,默认为 root
    "STARROCKS_USER": "root",
    // StarRocks 密码,默认为空
    "STARROCKS_PASSWORD": ""
  }
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,客户端用以识别。
  • 'command': 启动 MCP 服务器的命令,这里使用 'uv run' 可能是项目使用的任务运行器 (需要用户环境中有 'uv' 命令,或者根据实际情况调整为 'python' 等命令)。
  • 'args': 传递给启动命令的参数,'--with mcp-server-starrocks' 和 'src/mcp_server_starrocks/init.py' 用于指定运行 'mcp-server-starrocks' 以及入口文件。
  • 'env': 环境变量配置,用于配置 StarRocks 数据库连接信息。用户需要根据实际 StarRocks 数据库的连接信息修改 'STARROCKS_HOST', 'STARROCKS_PORT', 'STARROCKS_USER', 'STARROCKS_PASSWORD' 环境变量的值。

注意:

  • 'uv run' 命令可能需要根据实际环境进行调整。如果您的环境中没有 'uv',可以尝试使用 'python -m src.mcp_server_starrocks' 或 'python src/mcp_server_starrocks/init.py' 作为 'command',并相应调整 'args'。
  • 请确保 MCP 客户端能够正确读取和解析上述 JSON 格式的配置信息。

基本使用方法

  1. 启动 MCP 服务器: 根据上述配置,在安装了必要依赖和配置好环境变量的环境中启动 MCP 服务器。
  2. 配置 MCP 客户端: 在 LLM 客户端中配置上述服务器配置信息,建立与 StarRocks MCP Server 的连接。
  3. 调用工具: 在 LLM 应用中,可以通过 MCP 协议调用 'read_query' 和 'write_query' 工具,向 StarRocks 数据库发送 SQL 查询请求,并获取查询结果或执行状态。
    • 例如,调用 'read_query' 工具并传入 'query' 参数为 "SELECT * FROM your_table LIMIT 10;",即可执行 SQL 查询并获取结果。

示例 (MCP 客户端请求调用 'read_query' 工具):

{
  "jsonrpc": "2.0",
  "method": "workspace/callTool",
  "params": {
    "name": "read_query",
    "arguments": {
      "query": "SELECT * FROM your_table LIMIT 10;"
    }
  },
  "id": 1
}

服务器会执行该 SQL 查询,并将结果以 JSON-RPC 响应返回给客户端。

信息

分类

数据库与文件