StarRocks MCP Server 开源发布:为 AI 应用提供强大分析中枢

2025-05-14 15:52:25
过去,开发者要让大模型(LLM)使用数据库查询数据,往往需要开发专属插件、设计复杂的接口或手动构建 Prompt,这不仅费时费力,而且很难在不同模型之间复用。StarRocks MCP Server 提供了一个“通用适配器”接口,让各种 LLM(如 Claude、OpenAI、Gemini)都能标准化地访问 StarRocks,使得模型能够直接执行 SQL 查询并探索数据库内容,无需复杂的配置或集成。

这意味着:

  • 无需开发专用 Agent 插件

  • 模型自动发现和调用 StarRocks 暴露的查询/分析工具

  • 构建数据问答、智能分析、自动报表等应用变得更简单

  • 项目地址:https://github.com/StarRocks/mcp-server-starrocks
 

什么是 MCP?

首先,我们来了解什么是 MCP。MCP(Model Context Protocol) 是一种用于规范模型与上下文交互的通信协议,旨在标准化模型输入输出的数据结构、元信息传递及上下文管理机制。它通过定义统一的接口协议(如请求/响应格式、状态跟踪、多轮对话标识等),确保模型在复杂应用场景(如多模态交互、长上下文推理)中高效处理上下文依赖关系,同时支持动态上下文更新与历史信息检索。典型应用包括大语言模型(LLM)的对话系统、知识增强推理等。

通俗的来说,MCP 就像 AI 世界的“USB 接口”,它提供了一种通用标准,让各种 AI 模型和智能代理(agents)能够无缝连接、交换信息,就像 USB 让不同品牌的设备(鼠标、键盘、硬盘等)都能即插即用一样。通过 MCP,不同 AI 组件可以像乐高积木一样自由组合,使 AI 变得更加智能、灵活和协作高效。

图片

(MCP 架构示意图)

 

MCP 核心组件

MCP 的核心是一个简单但强大的客户端-服务器架构,用于将语言模型与现实世界的功能连接起来。

你可以把它想象成一个智能家居中控系统:

MCP Host(宿主) = 智能助手(如小爱同学、Alexa)

MCP Client (客户端)= 控制中枢

MCP Server (服务器)= 各种设备(灯、空调、门锁等)

你对智能助手说“打开空调”,你不需要知道空调的品牌、遥控器协议或者哪个网关。系统会通过统一协议找到正确的设备、下发正确的指令。在 MCP 里,LLM 也是这样发起一个请求,比如“获取销售报表”,Client 就会找到对应的数据源 Server,并返回数据。

这三大组件的作用如下:

  • MCP Host:基于 LLM 的应用程序,如 Claude Desktop 或未来集成 AI 的 IDE,用户通过它提出问题或发起操作。

  • MCP Client:处理连接逻辑。每个客户端与一个服务器建立连接,负责通信和协调。

  • MCP Server:暴露具体能力,如文件访问、天气 API 等。每个服务器通过标准接口提供一组特定的工具、资源或提示。

 

MCP Server 提供三类核心能力:

  1. 工具(Tools)模型可以调用的可执行函数,如“获取天气预报”或“运行 shell 命令”。模型可自行决定何时使用。

  2. 资源(Resources)如文件、日志或 API 响应等。这些是模型可以读取但不能修改的上下文信息。客户端负责决定何时展示哪些资源。

  3. 提示词(Prompts)预设的模板,引导模型如何互动。例如生成提交信息、进行调试指导。通常由用户选择,而非模型自行决定。

 

StarRocks MCP Server 功能介绍 

 

StarRocks MCP Server 充分利用了 MCP 的核心能力,为大语言模型提供了与 StarRocks 数据库进行深度交互的强大工具集和丰富的上下文资源。具体来说,它实现了以下功能:

  1. 工具 (Tools)这些是模型可以按需调用的“技能”,使其能够主动与 StarRocks 交互:

    • db_overview获取指定数据库中所有表的概览信息。模型可以提供数据库名(若未提供且配置了默认数据库,则使用默认库)。此工具会遍历库中所有表,并为每张表调用 table_overview 的逻辑获取其详情。同样支持缓存和强制刷新。

    • table_overview快速获取指定表的概览信息。模型只需提供表名(可包含数据库名,如 db_name.table_name;若未指定数据库名且配置了默认数据库,则使用默认库)。此工具会返回表的列定义 (DESCRIBE table)、总行数 (COUNT(*)) 以及少量样本数据 (SELECT * FROM table LIMIT 3)。为了提高效率,该信息会被缓存,并可通过 refresh=true 参数强制刷新。

    • read_query执行只读的 SQL 查询(如 SELECT 语句),并以 CSV 格式返回结果集,包含列名和数据行。这使得模型可以直接获取和分析数据。

    • write_query执行数据定义语言 (DDL) 或数据操作语言 (DML) 等写操作,如 CREATE TABLEINSERTUPDATEDELETE,并返回操作结果(如影响行数、执行时间)。

    • query_and_plotly_chart一个强大的分析工具,它首先执行用户提供的 SQL 查询从 StarRocks 获取数据,然后利用该数据和用户指定的 Plotly Express 表达式(一个 Python 函数调用字符串)动态生成图表。图表最终以 Base64 编码的图片形式返回给模型,极大增强了数据洞察的可视化能力。

  2. 资源 (Resources)这些是模型可以读取的上下文信息,帮助模型理解 StarRocks 的结构和状态:

    • starrocks:///databases列出 StarRocks 集群中的所有数据库名称。

    • starrocks:///{db}/tables列出指定数据库 ({db}) 中的所有表名。

    • starrocks:///{db}/{table}/schema获取指定数据库 ({db}) 中特定表 ({table}) 的创建语句 (SHOW CREATE TABLE {db}.{table} 的结果),详细展示表的结构信息。

    • proc:///{+path}访问 StarRocks 内部的 /proc 路径(如 /proc/backends/proc/dbs/{db_id}),获取集群、节点、数据库、表、事务、作业等详细的运行时状态和元数据信息,类似于 Linux 的 /proc 文件系统。这为模型提供了深入了解 StarRocks 内部运作的窗口。

  3. 提示词 (Prompts)目前 StarRocks MCP Server 暂未定义特定的预设提示词。MCP 的设计允许未来根据场景需求灵活添加,以更好地引导模型与 StarRocks 进行特定类型的交互。

通过这些精心设计的工具和资源,StarRocks MCP Server 使大语言模型能够像经验丰富的数据分析师一样,自主地探索数据、执行分析任务,并以多样化的形式(文本、图表)呈现结果,从而将 StarRocks 的强大 OLAP 能力无缝对接到 AI 应用中。

 

StarRocks MCP Server 应用场景 

 

了解了什么是 MCP 之后,来了解一下 StarRocks MCP Server 能应用在哪些场景中:

1. 实时数据分析与 AI 增强决策

  • 目标让 AI 模型(如 LLM)能够实时查询 StarRocks 中的业务数据,并结合历史上下文生成更精准的分析报告或建议。

  • 场景

    • 金融风控AI 结合 StarRocks 的实时交易数据,动态评估风险并生成预警。

    • 电商推荐基于用户实时行为(如浏览、加购)和 StarRocks 的 OLAP 分析,优化个性化推荐策略。

2. 自动化数据报表与 BI 增强

  • 目标通过 MCP 协议,让 AI 自动生成 SQL 查询、执行聚合计算,并返回可视化报表,减少人工干预。

  • 场景

    • 广告投放分析:AI 自动查询 StarRocks 的广告曝光、点击数据,生成优化建议。

    • 运营驾驶舱:结合自然语言交互(如“显示最近7天销售额趋势”),自动从 StarRocks 拉取数据并生成 Dashboard。

3. 复杂查询的 AI 优化与加速

  • 目标利用 MCP 管理查询上下文,让 AI 辅助优化 StarRocks 的多表 JOIN、聚合计算等复杂操作。

  • 场景

    • 用户画像分析AI 自动构建 Roaring Bitmap 查询,计算用户留存、漏斗分析。

    • 跨业务分析AI 解析业务需求,自动生成高效 StarRocks SQL,避免全表扫描。

4. 统一数据湖与 AI 增强查询

  • 目标通过 MCP 让 AI 同时访问 StarRocks 和外部数据源(如 Hive、Elasticsearch),实现联邦查询。

  • 场景

    • 混合分析AI 自动组合 StarRocks 的聚合数据和 Hive 的原始日志,生成完整业务洞察。

    • 知识增强AI 查询 StarRocks 的业务数据 + 外部知识库(如论文、行业报告),生成深度分析。

 

StarRocks x MCP 快速上手

StarRocks 是首批通过内置 MCP Server 原生集成 MCP 协议的引擎之一。这使得 StarRocks 不再只是一个高性能查询引擎,而是升级为一个专为智能 Agent 交互优化的分析执行环境。

这一切都构建在 StarRocks 现代化的执行引擎之上——向量化、高并发、C++ 编写,自设计之初就面向低延迟和高并发场景。

通过将面向 Agent 的标准协议(MCP)与面向现代工作负载的执行引擎结合,StarRocks 为从探索到生产部署的 Agent 驱动分析工作流提供了直接路径。你无需重新设计架构,就可以立即开始构建智能分析应用。

1

 
 

部署 StarRocks 集群,准备数据

部署Starrocks集群,假设部署到本地localhost导入quickstart中的crashdata数据https://docs.starrocks.io/docs/quick_start/shared-nothing/#new-york-city-crash-dataCREATE TABLE IF NOT EXISTS crashdata (    CRASH_DATE DATETIME,    BOROUGH STRING,    ZIP_CODE STRING,    LATITUDE INT,    LONGITUDE INT,    LOCATION STRING,    ON_STREET_NAME STRING,    CROSS_STREET_NAME STRING,    OFF_STREET_NAME STRING,    CONTRIBUTING_FACTOR_VEHICLE_1 STRING,    CONTRIBUTING_FACTOR_VEHICLE_2 STRING,    COLLISION_ID INT,    VEHICLE_TYPE_CODE_1 STRING,    VEHICLE_TYPE_CODE_2 STRING);curl --location-trusted -u root             \    -T ./NYPD_Crash_Data.csv                \    -H "label:crashdata-0"                  \    -H "column_separator:,"                 \    -H "skip_header:1"                      \    -H "enclose:\""                         \    -H "max_filter_ratio:1"                 \    -H "columns:tmp_CRASH_DATE, tmp_CRASH_TIME, CRASH_DATE=str_to_date(concat_ws(' ', tmp_CRASH_DATE, tmp_CRASH_TIME), '%m/%d/%Y %H:%i'),BOROUGH,ZIP_CODE,LATITUDE,LONGITUDE,LOCATION,ON_STREET_NAME,CROSS_STREET_NAME,OFF_STREET_NAME,NUMBER_OF_PERSONS_INJURED,NUMBER_OF_PERSONS_KILLED,NUMBER_OF_PEDESTRIANS_INJURED,NUMBER_OF_PEDESTRIANS_KILLED,NUMBER_OF_CYCLIST_INJURED,NUMBER_OF_CYCLIST_KILLED,NUMBER_OF_MOTORIST_INJURED,NUMBER_OF_MOTORIST_KILLED,CONTRIBUTING_FACTOR_VEHICLE_1,CONTRIBUTING_FACTOR_VEHICLE_2,CONTRIBUTING_FACTOR_VEHICLE_3,CONTRIBUTING_FACTOR_VEHICLE_4,CONTRIBUTING_FACTOR_VEHICLE_5,COLLISION_ID,VEHICLE_TYPE_CODE_1,VEHICLE_TYPE_CODE_2,VEHICLE_TYPE_CODE_3,VEHICLE_TYPE_CODE_4,VEHICLE_TYPE_CODE_5" \    -XPUT http://localhost:8030/api/quickstart/crashdata/_stream_load    

 

2

 
 

启动 MCP Client

2.1 配置客户端添加 mcp-server-starrocks,客户端使用的是 DeepChat

大家可以使用这个优化过的版本:https://github.com/decster/deepchat

 
图片
图片
图片

2.2 配置成功后在对话选项中可以添加使用 mcpserver

图片

补充说明:在本次 Demo 中,我们使用的是 DeepChat 作为 MCP Client。除此之外,市面上还有如 Claude Desktop、Cline 等主流客户端,用户可根据个人偏好进行配置。需要注意的是,由于我们期望返回结果包含表格和图片,部分客户端可能不支持图片显示,选择时建议将此因素一并考虑。

3

 
 

Demo 演示

下面的视频中演示了如何以对话形式对 StarRocks 中的数据集进行可视化分析

 
StarRocks
 
 
,赞15

最后,我们总结一下 StarRocks MCP server 的核心价值:

  • 让 AI 具备实时 OLAP 能力,减少人工 SQL 编写和数据分析成本。

  • 增强决策智能,结合历史数据和实时计算,提供更精准的业务建议。

  • 统一数据访问层,让 AI 无缝对接结构化数据(StarRocks)与非结构化数据(文档、日志)。

未来,随着 MCP 生态的扩展(如支持更多数据库、BI 工具),这种结合将在 金融、电商、IoT、医疗 等领域发挥更大作用。StarRocks 的朋友们,快来开启更多智能应用!

 我们正在征集基于 StarRocks 的 AI 实践案例,欢迎加入讨论群交流,或私信小助手投稿。 

5 月 21 日也将有精彩直播——从 Deepseek 到 MCP,打造基于 StarRocks 的 AI 应用记得关注,不见不散!

图片

 

关于 StarRocks 

StarRocks 是隶属于 Linux Foundation 的开源 Lakehouse 引擎 ,采用 Apache License v2.0 许可证。StarRocks 全球社区蓬勃发展,聚集数万活跃用户,GitHub 星标数已突破 9900,贡献者超过 450 人,并吸引数十家行业领先企业共建开源生态。

StarRocks Lakehouse 架构让企业能基于一份数据,满足 BI 报表、Ad-hoc 查询、Customer-facing 分析等不同场景的数据分析需求,实现 "One Data,All Analytics" 的业务价值。StarRocks 已被全球超过 500 家市值 70 亿元人民币以上的顶尖企业选择,包括中国民生银行、沃尔玛、携程、腾讯、美的、理想汽车、Pinterest、Shopee 等,覆盖金融、零售、在线旅游、游戏、制造等领域。

图片
图片

 

行业优秀实践案例

 

 

泛金融:中国民生银行平安银行中信银行四川银行南京银行宁波银行中原银行中信建投|苏商银行微众银行杭银消费金融马上消费金融中信建投申万宏源西南证券中泰证券国泰君安证券广发证券国投证券中欧财富创金合信基金泰康资产人保财险

 

 

互联网:微信|小红书|滴滴B站携程同程旅行芒果TV得物贝壳汽车之家腾讯大数据腾讯音乐饿了么七猫金山办公Pinterest欢聚集团美团餐饮58同城网易邮箱360腾讯游戏波克城市37手游游族网络|喜马拉雅|ShopeeDemandbase爱奇艺阿里集团Naver首汽约车Grab

 

 

新经济:蔚来汽车|理想汽车|吉利汽车顺丰|京东物流|跨越速运沃尔玛屈臣氏麦当劳大润发|华润集团|TCL |万物新生百草味多点 DMALL酷开科技|vivo聚水潭泸州老窖中免集团蓝月亮立白美的伊利公牛碧桂园

最新评论
访客 2024年04月08日

如果字段的最大可能长度超过255字节,那么长度值可能…

访客 2024年03月04日

只能说作者太用心了,优秀

访客 2024年02月23日

感谢详解

访客 2024年02月20日

一般干个7-8年(即30岁左右),能做到年入40w-50w;有…

访客 2023年08月20日

230721

活动预告