这意味着:
无需开发专用 Agent 插件
模型自动发现和调用 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 提供三类核心能力:
工具(Tools):模型可以调用的可执行函数,如“获取天气预报”或“运行 shell 命令”。模型可自行决定何时使用。
资源(Resources):如文件、日志或 API 响应等。这些是模型可以读取但不能修改的上下文信息。客户端负责决定何时展示哪些资源。
提示词(Prompts):预设的模板,引导模型如何互动。例如生成提交信息、进行调试指导。通常由用户选择,而非模型自行决定。
StarRocks MCP Server 功能介绍
StarRocks MCP Server 充分利用了 MCP 的核心能力,为大语言模型提供了与 StarRocks 数据库进行深度交互的强大工具集和丰富的上下文资源。具体来说,它实现了以下功能:
工具 (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 TABLE
, INSERT
, UPDATE
, DELETE
,并返回操作结果(如影响行数、执行时间)。
query_and_plotly_chart
:一个强大的分析工具,它首先执行用户提供的 SQL 查询从 StarRocks 获取数据,然后利用该数据和用户指定的 Plotly Express 表达式(一个 Python 函数调用字符串)动态生成图表。图表最终以 Base64 编码的图片形式返回给模型,极大增强了数据洞察的可视化能力。
资源 (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 内部运作的窗口。
提示词 (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 驱动分析工作流提供了直接路径。你无需重新设计架构,就可以立即开始构建智能分析应用。
部署 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
启动 MCP Client
2.1 配置客户端添加 mcp-server-starrocks,客户端使用的是 DeepChat
大家可以使用这个优化过的版本:https://github.com/decster/deepchat
2.2 配置成功后在对话选项中可以添加使用 mcpserver
补充说明:在本次 Demo 中,我们使用的是 DeepChat 作为 MCP Client。除此之外,市面上还有如 Claude Desktop、Cline 等主流客户端,用户可根据个人偏好进行配置。需要注意的是,由于我们期望返回结果包含表格和图片,部分客户端可能不支持图片显示,选择时建议将此因素一并考虑。
Demo 演示
下面的视频中演示了如何以对话形式对 StarRocks 中的数据集进行可视化分析
最后,我们总结一下 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手游|游族网络|喜马拉雅|Shopee|Demandbase|爱奇艺|阿里集团|Naver|首汽约车|Grab
新经济:蔚来汽车|理想汽车|吉利汽车|顺丰|京东物流|跨越速运|沃尔玛|屈臣氏|麦当劳|大润发|华润集团|TCL |万物新生|百草味|多点 DMALL|酷开科技|vivo|聚水潭|泸州老窖|中免集团|蓝月亮|立白|美的|伊利|公牛|碧桂园
如果字段的最大可能长度超过255字节,那么长度值可能…
只能说作者太用心了,优秀
感谢详解
一般干个7-8年(即30岁左右),能做到年入40w-50w;有…
230721