Token导航 LogoToken导航

MCP Server · 数据服务

StarRocks MCP Server

StarRocks MCP服务器作为AI助手与StarRocks数据库之间的桥梁,支持直接SQL执行、数据库探索、数据可视化和详细模式/数据概览获取。

stdio官方级别未说明来源级核验工具 7
数据库连接PythonClaude数据分析Claude Desktop

快速开始

作者 / 组织
StarRocks
提供方
StarRocks
运行时
Python

工具数量

7

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

170

仓库热度

收录来源

3 个

MCP World

选型结论

StarRocks MCP Server 属于数据服务类 MCP Server,公开资料标注 7 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

数据服务

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

uv run mcp-server-starrocks --mode streamable-http --port 8000

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 7 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

StarRocks官方MCP服务器

StarRocks MCP服务器充当AI助手和StarRocks数据库之间的桥梁。它允许直接SQL执行、数据库探索、通过图表进行数据可视化,以及检索详细的模式/数据概述,而不需要复杂的客户端设置。

特性

  • 直接SQL执行: 跑 SELECT 查询(read_query)以及DDL/DML命令(write_query).
  • 数据库探索: 列出数据库和表,检索表模式(starrocks:// 资源)。
  • 系统信息: 通过访问内部StarRocks指标和状态 proc:// 资源路径。
  • 详细概述: 获取表格的全面摘要(table_overview)或整个数据库(db_overview),包括列定义、行计数和示例数据。
  • 数据可视化: 执行查询并直接从结果生成Plotly图表(query_and_plotly_chart).
  • 智能缓存: 表和数据库概述缓存在内存中,以加快重复请求的速度。需要时可以绕过缓存。
  • 灵活配置: 通过环境变量设置连接细节和行为。

配置

MCP服务器通常通过MCP主机运行。配置传递给主机,指定如何启动StarRocks MCP服务器进程。

使用流式HTTP(推荐):

要在Streamable HTTP模式下启动服务器:

第一次测试连接正常:

$ STARROCKS_URL=root:@localhost:8000 uv run mcp-server-starrocks --test

启动服务器:

uv run mcp-server-starrocks --mode streamable-http --port 8000

然后按如下方式配置MCP:

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

使用 uv 已安装软件包(单个环境变量):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": ["run", "--with", "mcp-server-starrocks", "mcp-server-starrocks"],
      "env": {
        "STARROCKS_HOST": "default localhost",
        "STARROCKS_PORT": "default 9030",
        "STARROCKS_USER": "default root",
        "STARROCKS_PASSWORD": "default empty",
        "STARROCKS_DB": "default empty"
      }
    }
  }
}

使用 uv 已安装软件包(连接URL):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": ["run", "--with", "mcp-server-starrocks", "mcp-server-starrocks"],
      "env": {
        "STARROCKS_URL": "root:password@localhost:9030/my_database"
      }
    }
  }
}

使用 uv 本地目录(用于开发):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/mcp-server-starrocks", //  **注:**
> 这 `sse` (服务器发送事件)模式已弃用,不再维护。请对所有新集成使用Streamable HTTP模式。

**环境变量:**

### 连接配置

您可以使用单个环境变量或单个连接URL配置StarRocks连接:

**选项1:单个环境变量**

- `STARROCKS_HOST`:(可选)StarRocks FE服务的主机名或IP地址。默认为 `localhost`.
- `STARROCKS_PORT`:(可选)StarRocks FE服务的MySQL协议端口。默认为 `9030`.
- `STARROCKS_USER`:(可选)StarRocks用户名。默认为 `root`.
- `STARROCKS_PASSWORD`:(可选)StarRocks密码。默认为空字符串。
- `STARROCKS_PASSWORD_KEYCHAIN_SERVICE`:(可选,仅限macOS)从Keychain读取密码时使用的通用密码服务名称。这仅在没有通过提供明确密码时使用 `STARROCKS_PASSWORD` 或 `STARROCKS_URL`.
- `STARROCKS_PASSWORD_KEYCHAIN_ACCOUNT`:(可选,仅限macOS)从Keychain读取密码时使用的通用密码帐户名。默认为已解析的StarRocks用户。
- `STARROCKS_DB`:(可选)如果未在工具参数或资源URI中指定,则使用默认数据库。如果设置,连接将尝试 `USE` 这个数据库。工具如 `table_overview` 和 `db_overview` 如果在参数中省略了数据库部分,则将使用此选项。默认为空(无默认数据库)。

**选项2:连接URL(优先于单个变量)**

- `STARROCKS_URL`:(可选)在单个变量中包含所有连接参数的连接URL字符串。格式: `[://]user:password@host:port/database`。架构部分是可选的。设置此变量后,它优先于单个变量 `STARROCKS_HOST`, `STARROCKS_PORT`, `STARROCKS_USER`, `STARROCKS_PASSWORD`,以及 `STARROCKS_DB` 变量。

  示例:

  - `root:mypass@localhost:9030/test_db`
  - `mysql://admin:secret@db.example.com:9030/production`
  - `starrocks://user:pass@192.168.1.100:9030/analytics`

密码优先级:

- 内置密码 `STARROCKS_URL` wins,包括一个明确的空密码,如 `user:@host:9030/db`.
- 如果 `STARROCKS_URL` 省略密码, `STARROCKS_PASSWORD` 设置时使用。
- 如果未设置显式密码源 `STARROCKS_PASSWORD_KEYCHAIN_SERVICE` 如果已配置,则从macOS Keychain读取密码。

**macOS钥匙链示例**

存储密码:

security add-generic-password -U -a root -s mcp-server-starrocks -w 'secret'


验证存储的密码:

security find-generic-password -a root -s mcp-server-starrocks -w


将其与此服务器一起使用:

export STARROCKS_URL=root@localhost:9030/test_db export STARROCKS_PASSWORD_KEYCHAIN_SERVICE=mcp-server-starrocks export STARROCKS_PASSWORD_KEYCHAIN_ACCOUNT=root


### 附加配置

- `STARROCKS_OVERVIEW_LIMIT`:(可选) _近似_ 字符限制 _总计_ 由概述工具生成的文本(`table_overview`, `db_overview`)在获取数据以填充缓存时。这有助于防止非常大的模式或大量表的过度内存使用。默认为 `20000`.

- `STARROCKS_MCP_OUTPUT_DIR`:(可选)使用的目录 `read_query` 当它 `output_file` 争论是一条相对的道路。默认为 `~/.mcp-server-starrocks/output/`。目录是按需创建的。传递到的绝对路径 `output_file` (包括 `~`-前缀路径)绕过此设置。 **注:** 文件被写入MCP服务器运行的机器上。对于Claude Code/Claude Desktop,服务器在本地运行,因此文件会落在您的笔记本电脑上。对于远程/http部署,文件会落在服务器上,而不是客户端。

- `STARROCKS_MYSQL_AUTH_PLUGIN`:(可选)指定连接到StarRocks FE服务时使用的身份验证插件。例如,设置为 `mysql_clear_password` 如果您的StarRocks部署需要明文密码身份验证(例如在使用某些LDAP或外部身份验证设置时)。仅当您的环境特别需要时才设置此项;否则,将使用默认的auth_plugin。

- `MCP_TRANSPORT_MODE`:(可选)指定MCP服务器如何公开其服务的通信模式。可用选项:

  - `stdio` (默认):通过标准输入/输出进行通信,适用于MCP主机托管。
  - `streamable-http` (流式HTTP):作为流式HTTP服务器启动,支持RESTful API调用。
  - `sse`: **(已弃用,不推荐)** 以服务器发送事件(SSE)流模式启动,适用于需要流式响应的场景。 **注意:SSE模式不再维护,建议统一使用Streamable HTTP模式。**

## 组件

### 工具

- `read_query`

  - **说明:** 执行SELECT查询或返回ResultSet的其他命令(例如。, `SHOW`, `DESCRIBE`).可以选择将完整结果写入本地文件,而不是内联返回——这对于太大而无法放入模型上下文的结果很有用。
  - **输入:**

{ "query": "SQL query string", "db": "database name (optional, uses default database if not specified)", "output_file": "optional path; if set, writes the full result to disk and returns only a summary + small preview. Relative paths resolve against STARROCKS_MCP_OUTPUT_DIR (default: ~/.mcp-server-starrocks/output/); absolute paths and ~ are used as-is", "output_format": "optional: csv | tsv | json | jsonl. If omitted, inferred from output_file extension (.csv/.tsv/.json/.jsonl/.ndjson); defaults to csv" }

  - **输出:** 没有 `output_file`,包含CSV格式查询结果的文本内容,带有标题行和行数摘要。随着 `output_file`,一个简短的摘要,包括解析的绝对路径、字节数和行数,以及一个小预览。失败时返回错误消息。

- `write_query`

  - **说明:** 执行DDL(`CREATE`, `ALTER`, `DROP`),DML(`INSERT`, `UPDATE`, `DELETE`),或其他不返回ResultSet的StarRocks命令。
  - **输入:**

{ "query": "SQL command string", "db": "database name (optional, uses default database if not specified)" }

  - **输出:** 确认成功的文本内容(例如,“查询正常,X行受影响”)或报告错误。成功后会自动提交更改。

- `analyze_query`

  - **说明:** 使用查询配置文件或解释分析来分析查询并获得分析结果。
  - **输入:**

{ "uuid": "Query ID, a string composed of 32 hexadecimal digits formatted as 8-4-4-4-12", "sql": "Query SQL to analyze", "db": "database name (optional, uses default database if not specified)" }

  - **输出:** 包含查询分析结果的文本内容。用途 `ANALYZE PROFILE FROM` 如果提供了uuid,否则使用 `EXPLAIN ANALYZE` 如果提供了sql。

- `query_and_plotly_chart`

  - **说明:** 执行SQL查询,将结果加载到Pandas DataFrame中,并使用提供的Python表达式生成Plotly图表。设计用于支持UI的可视化。
  - **输入:**

{ "query": "SQL query to fetch data", "plotly_expr": "Python expression string using 'px' (Plotly Express) and 'df' (DataFrame). Example: 'px.scatter(df, x=\"col1\", y=\"col2\")'", "db": "database name (optional, uses default database if not specified)" }

  - **输出:** 包含以下内容的列表:
    1. `TextContent`:DataFrame的文本表示形式和图表用于UI显示的注释。
    1. `ImageContent`:生成的Plotly图表编码为base64 PNG图像(`image/png`).如果查询失败或未生成数据,则返回文本错误消息。

- `table_overview`

  - **说明:** 获取特定表的概述:列(来自 `DESCRIBE`)、总行数和样本行(`LIMIT 3`).使用内存缓存,除非 `refresh` 这是真的。
  - **输入:**

{ "table": "Table name, optionally prefixed with database name (e.g., 'db_name.table_name' or 'table_name'). If database is omitted, uses STARROCKS_DB environment variable if set.", "refresh": false // Optional, boolean. Set to true to bypass the cache. Defaults to false. }

  - **输出:** 包含格式化概述(列、行数、示例数据)或错误消息的文本内容。缓存结果包括以前的错误(如果适用)。

- `db_overview`

  - **说明:** 获取以下内容的概述(列、行数、示例行) _全部_ 指定数据库中的表。为每个表使用表级缓存,除非 `refresh` 这是真的。
  - **输入:**

{ "db": "database_name", // Optional if default database is set. "refresh": false // Optional, boolean. Set to true to bypass the cache for all tables in the DB. Defaults to false. }

  - **输出:** 文本内容包含数据库中所有表的连接概述,由标题分隔。如果数据库无法访问或不包含表,则返回错误消息。

### 资源

#### 直接资源

- `starrocks:///databases`
  - **说明:** 列出配置用户可访问的所有数据库。
  - **等效查询:** `SHOW DATABASES`
  - **MIME类型:** `text/plain`

#### 资源模板

- `starrocks:///{db}/{table}/schema`

  - **说明:** 获取特定表的架构定义。
  - **等效查询:** `SHOW CREATE TABLE {db}.{table}`
  - **MIME类型:** `text/plain`

- `starrocks:///{db}/tables`

  - **说明:** 列出特定数据库中的所有表。
  - **等效查询:** `SHOW TABLES FROM {db}`
  - **MIME类型:** `text/plain`

- `proc:///{+path}`

  - **说明:** 访问StarRocks内部系统信息,类似于Linux `/proc`The `path` 参数指定所需的信息节点。
  - **等效查询:** `SHOW PROC '/{path}'`
  - **MIME类型:** `text/plain`
  - **通用路径:**
    - `/frontends` -关于FE节点的信息。
    - `/backends` -关于BE节点的信息(适用于非云原生部署)。
    - `/compute_nodes` -有关CN节点的信息(用于云原生部署)。
    - `/dbs` -关于数据库的信息。
    - `/dbs/` -按ID显示特定数据库的信息。
    - `/dbs//` -按ID显示特定表的信息。
    - `/dbs///partitions` -表的分区信息。
    - `/transactions` -按数据库分组的交易信息。
    - `/transactions/` -特定数据库ID的事务信息。
    - `/transactions//running` -正在为数据库ID运行事务。
    - `/transactions//finished` -数据库ID的已完成事务。
    - `/jobs` -有关异步作业的信息(模式更改、汇总等)。
    - `/statistic` -每个数据库的统计数据。
    - `/tasks` -有关代理任务的信息。
    - `/cluster_balance` -负载平衡状态信息。
    - `/routine_loads` -有关常规加载作业的信息。
    - `/colocation_group` -关于主机代管的信息加入群组。
    - `/catalog` -有关已配置目录的信息(例如Hive、Iceberg)。

### 提示

此服务器未定义任何内容。

## 缓存行为

- 这 `table_overview` 和 `db_overview` 工具利用内存缓存来存储生成的概述文本。
- 缓存键是一个元组 `(database_name, table_name)`.
- 当 `table_overview` 调用时,它首先检查缓存。如果结果存在并且 `refresh` 参数为 `false` (默认),立即返回缓存的结果。否则,它将从StarRocks获取数据,将其存储在缓存中,然后返回。
- 当 `db_overview` 调用时,它会列出数据库中的所有表,然后尝试检索的概述 _每张桌子_ 使用与相同的缓存逻辑 `table_overview` (首先检查缓存,如果需要则进行提取,然后 `refresh` 是 `false` 或缓存未命中)。如果 `refresh` 是 `true` 为了 `db_overview`,它强制刷新 _全部_ 该数据库中的表。
- 这 `STARROCKS_OVERVIEW_LIMIT` 环境变量提供 _软目标_ 获取生成的概述字符串的最大长度 _每桌_ 在填充缓存时,有助于管理内存使用情况。
- 缓存结果(包括在原始获取过程中遇到的任何错误消息)将被存储并在后续缓存命中时返回。

## 调试

启动mcp服务器后,您可以使用inspector进行调试:

npx @modelcontextprotocol/inspector


## 演示

工具与能力

工具数量

7

资源数量

0

提示词数量

0

能力标签

数据库连接Python混合部署SQL执行数据可视化数据库管理AI集成

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 7 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
StarRocks MCP Server

MCP World · 本页

7stdio有3 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

StarRocks MCP Server 怎么安装?

公开资料给出的安装命令是 uv run mcp-server-starrocks --mode streamable-http --port 8000,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

StarRocks MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

StarRocks MCP Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

StarRocks MCP Server 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

StarRocks MCP Server 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP