StarRocks 官方 MCP 服务器
StarRocks MCP 服务器充当 AI 助手和 StarRocks 数据库之间的桥梁。它允许直接执行 SQL、探索数据库、通过图表进行数据可视化以及检索详细的架构/数据概览,而无需复杂的客户端设置。
特征
**直接 SQL 执行:**运行
SELECT
查询(read_query
)和 DDL/DML 命令(write_query
)。**数据库探索:**列出数据库和表,检索表模式(
starrocks://
资源)。**系统信息:**通过
proc://
资源路径访问内部 StarRocks 指标和状态。**详细概述:**获取表(
table_overview
)或整个数据库(db_overview
)的综合摘要,包括列定义、行数和样本数据。**数据可视化:**执行查询并直接从结果生成 Plotly 图表(
query_and_plotly_chart
)。**智能缓存:**表格和数据库概览缓存在内存中,以加快重复请求的速度。必要时可绕过缓存。
**灵活的配置:**通过环境变量设置连接详细信息和行为。
配置
MCP 服务器通常通过 MCP 主机运行。配置会传递给主机,指定如何启动 StarRocks MCP 服务器进程。
使用已安装包的
使用
环境变量:
STARROCKS_HOST
:(可选)StarRocks FE 服务的主机名或 IP 地址。默认为localhost
。STARROCKS_PORT
:(可选)StarRocks FE 服务的 MySQL 协议端口。默认为9030
。STARROCKS_USER
:(可选)StarRocks 用户名。默认为root
。STARROCKS_PASSWORD
:(可选)StarRocks 密码。默认为空字符串。STARROCKS_DB
:(可选)如果工具参数或资源 URI 中未指定,则使用默认数据库。设置后,连接将尝试USE
此数据库。如果table_overview
和db_overview
等工具的参数中省略了数据库部分,则会使用此数据库。默认为空(无默认数据库)。STARROCKS_OVERVIEW_LIMIT
:(可选)概览工具(table_overview
、db_overview
)在获取数据填充缓存时生成的文本总数的近似字符数限制。这有助于防止非常大的模式或大量的表占用过多的内存。默认为20000
。
成分
工具
read_query
**描述:**执行 SELECT 查询或返回 ResultSet 的其他命令(例如
SHOW
、DESCRIBE
)。输入:
{ "query": "SQL query string" }
**输出:**包含查询结果的文本内容,格式类似于 CSV,包含标题行和行数摘要。失败时返回错误消息。
write_query
**描述:**执行不返回 ResultSet 的 DDL(
CREATE
、ALTER
、DROP
)、DML(INSERT
、UPDATE
、DELETE
)或其他 StarRocks 命令。输入:
{ "query": "SQL command string" }
**输出:**确认成功的文本内容(例如,“查询成功,X 行受影响”)或报告错误。成功后,更改将自动提交。
query_and_plotly_chart
**描述:**执行 SQL 查询,将结果加载到 Pandas DataFrame 中,并使用提供的 Python 表达式生成 Plotly 图表。专为支持 UI 中的可视化而设计。
输入:
**输出:**包含以下内容的列表:
TextContent
:DataFrame 的文本表示以及图表用于 UI 显示的注释。ImageContent
:生成的 Plotly 图表以 base64 编码,为 PNG 图像(image/png
)。查询失败或未产生数据时,返回文本错误消息。
table_overview
**描述:**获取特定表的概览:列(来自
DESCRIBE
)、总行数和示例行数(LIMIT 3
)。除非refresh
为 true,否则使用内存缓存。输入:
**输出:**包含格式化概览(列数、行数、示例数据)或错误消息的文本内容。缓存结果包含先前的错误(如适用)。
db_overview
**描述:**获取指定数据库中所有表的概览(列数、行数、示例行数)。除非
refresh
为 true,否则将使用每个表的表级缓存。输入:
**输出:**文本内容包含数据库中所有表的串联概览,并以标题分隔。如果数据库无法访问或不包含任何表,则返回错误消息。
资源
直接资源
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
。path
参数指定所需的信息节点。等效查询:
SHOW PROC '/{path}'
MIME 类型:
text/plain
常见路径:
/frontends
有关 FE 节点的信息。/backends
- 有关 BE 节点的信息(用于非云原生部署)。/compute_nodes
- 有关 CN 节点的信息(用于云原生部署)。/dbs
有关数据库的信息。/dbs/<DB_ID>
- 根据 ID 获取特定数据库的信息。/dbs/<DB_ID>/<TABLE_ID>
- 根据 ID 获取特定表的信息。/dbs/<DB_ID>/<TABLE_ID>/partitions
- 表的分区信息。/transactions
按数据库分组的交易信息。/transactions/<DB_ID>
- 特定数据库 ID 的事务信息。/transactions/<DB_ID>/running
- 为数据库 ID 运行事务。/transactions/<DB_ID>/finished
- 数据库 ID 的已完成事务。/jobs
有关异步作业(模式更改、汇总等)的信息。/statistic
每个数据库的统计信息。/tasks
有关代理任务的信息。/cluster_balance
负载平衡状态信息。/routine_loads
有关例行加载作业的信息。/colocation_group
- 有关 Colocation Join 组的信息。/catalog
- 有关已配置目录的信息(例如,Hive、Iceberg)。
提示
此服务器未定义任何内容。
缓存行为
table_overview
和db_overview
工具利用内存缓存来存储生成的概览文本。缓存键是
(database_name, table_name)
的元组。调用
table_overview
时,它会首先检查缓存。如果结果存在且refresh
参数为false
(默认值),则立即返回缓存结果。否则,它会从 StarRocks 获取数据,将其存储在缓存中,然后返回。当调用
db_overview
时,它会列出数据库中的所有表,然后尝试使用与table_overview
相同的缓存逻辑(首先检查缓存,如果需要则获取,如果refresh
为false
或缓存未命中)检索每个表的概览。如果db_overview
的refresh
为true
,则会强制刷新该数据库中的所有表。STARROCKS_OVERVIEW_LIMIT
环境变量为填充缓存时每个表生成的概览字符串的最大长度��供了一个软目标,有助于管理内存使用情况。缓存结果(包括原始提取期间遇到的任何错误消息)都会被存储并在后续缓存命中时返回。
演示
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
充当 AI 助手和 StarRocks 数据库之间的桥梁,允许直接执行 SQL 和数据库探索,而无需复杂的设置或配置。
Related MCP Servers
- AsecurityAlicenseAqualityAllows AI assistants to list tables, read data, and execute SQL queries through a controlled interface, making database exploration and analysis safer and more structured.Last updated -859MIT License
- -securityFlicense-qualityEnables AI assistants to interact with Metabase databases and dashboards, allowing users to list and execute queries, access data visualizations, and interact with database resources through natural language.Last updated -67
- AsecurityFlicenseAqualityProvides tools for AI assistants to explore and interact with MariaDB databases, allowing them to list databases, view tables, inspect schema definitions, and query data.Last updated -42
- -securityAlicense-qualityProvides tools for AI assistants to interact with Airtable databases, enabling CRUD operations on Airtable bases and tables.Last updated -MIT License