摘要:BaikalDB作为服务百度商业产品的分布式存储系统,支撑了整个广告库海量物料的存储。在大语言模型LLM蓬勃发展的现在,想在大模型里使用BaikalDB里的数据进行分析,都需要复杂的定制开发。看BaikalDB如何借助模型上下文协议(MCP),让数据库对话像聊
导读
BaikalDB作为服务百度商业产品的分布式存储系统,支撑了整个广告库海量物料的存储。在大语言模型LLM蓬勃发展的现在,想在大模型里使用BaikalDB里的数据进行分析,都需要复杂的定制开发。看BaikalDB如何借助模型上下文协议(MCP),让数据库对话像聊天一样简单——无需编写代码,大语言模型即可完成复杂数据分析。
01 引言
在2025年以前,大语言模型(Large Language Model,LLM)想要使用数据库的数据,都需要开发人员设计接口、开发Agent插件、构建Prompt等费时费力的一系列定制开发;同时面对不同大模型的差异,还需要额外的重复性工作进行适配。
随着模型上下文协议(Model Context Protocol,MCP)的标准化普及,这一局面被彻底重构。MCP通过定义统一的上下文交互规范,为应用程序与AI模型建立了 “通用通信协议”。
基于此,BaikalDB团队创新推出BaikalDB MCP Server,将其打造为连接LLM与分布式存储系统的 “智能USB接口” ——该方案具备三大核心价值:
1. 零开发集成:支持主流LLM通过标准化协议直接访问BaikalDB,无需编写任何适配代码。
2. 全链路自动化:从自然语言意图理解、SQL智能生成到查询执行与数据分析,实现端到端闭环。
3. 多模型兼容性:屏蔽底层技术差异,一套接口适配GPT、Claude、文心一言等各类大模型。
02 MCP: AI USB接口
2024年11月由Anthropic公司提出的模型上下文协议MCP,是一种标准化的大模型与外部数据源、工具交互的开放协议。来源于USB接口范式的设计灵感,MCP的核心思想在于:通过创建一个通用的标准(如USB接口设计),解决大语言模型与外部系统间的“信息孤岛” 问题,该协议通过三大核心原则重构AI开发生态:
1. 即插即用标准化:定义统一的上下文交换格式,使大模型与数据源/工具的对接效率提升80%以上。
2. 组件解耦化:支持不同AI模块的热插拔组合,开发者可像搭积木般构建复杂AI系统。
3. 语义透明化:通过标准化上下文标记,实现跨组件意图传递的零损耗。
2.1 MCP 组成
如上图所示,MCP 由三个核心组件构成:MCP Host、MCP Client 和 MCP Server:
官方文档链接:
https://github.com/modelcontextprotocol/servers?tab=readme-ov-file
MCP Server的三类能力:
工具类(Tools)—— 模型的「智能外设」
供模型调用的函数或服务,用于执行特定任务。如一个天气查询工具,获取指定城市的天气信息。
资源类(Resources)——模型的「知识库」
供模型读取的数据源,如文件数据或 API 响应内容,为模型提供了丰富的上下文信息,增强了模型的理解能力。
提示词(Prompts)——模型的「操作指南」
预先编写的模板,旨在帮助用户完成特定的任务,通常是为了优化工具或资源的使用,提供一种更高效、更准确的交互方式。
MCP Client和Server之间的三种通讯方式:
STDIO 传输
MCP Server运行在本地。
通过标准输入(stdin)和标准输出(stdout)建立双向通信,1对1服务。
SSE 传输
MCP Server运行在本地或远程运行。
通过服务器发送事件协议(SSE)进行通信,支持N对1服务。
在 2024-11-05 版本废弃,被 Streamable HTTP 替代,后者将 SSE 作为可选的流式传输机制纳入其中。
Streamable HTTP 传输
MCP Server运行在本地或远程运行。
通过可流式HTTP传输协议通信,支持N对1服务。
支持流式传输,适合大数据量场景,提供更灵活的传输能力
2.2 MCP 流程
文心快码Comate是百度基于文心大模型开发的智能代码助手,旨在通过AI技术重构编程流程,提升开发效率与代码质量。目前Comate不仅支持智能代码生成、单元测试生成等功能,还支持接入外部MCP Server与大模型进行交互。
以在文心快码Comate里通过BaikalDB MCP Server对BaikalDB数据进行查询分析举例:
1. MCP Host:Comate Desktop 作为 Host,负责接收提问【分析42601969用户在 2023-3月每天的转化总数,按照时间升序排序,用折线图展示,并分析趋势走向 】并与大模型交互。大模型解析提问,并生成对应的SQL。
2. MCP Client:当大模型决定需要baikaldb_mcp/read_query Tool,Comate 中内置的 MCP Client 会被激活。这个Client负责与BaikalDB MCP Server建立链接并调用read_query工具。
3. MCP Server:BaikalDB MCP Server被调用,接收、执行查询语句,最终返回SQL执行结果。
完整执行流程:你的问题 → Comate Desktop → 大模型 → 需要查询BaikalDB表,并生成对应SQL → MCP Client 连接 → BaikalDB MCP Server → 执行SQL并返回结果 → Comate生成回答 → 生成折线图。
MCP架构设计使得如Comate等LLM应用,可以在不同场景下灵活调用各种工具和数据源,而开发者只需专注于开发对应的 MCP Server,无需关心 Host 和 Client 的实现细节。
03 BaikalDB MCP Server
3.1 BaikalDB MCP Server主要功能
BaikalDB MCP Server提供了以下功能,支持大模型直接和BaikalDB数据库进行交互:
1. 工具类(Tools):大模型可以根据上下文按需调取的直接和BaikalDB交互的工具。
链接操作:链接到指定的BaikalDB库
connect_baikaldb:给定链接信息(包括host,port,username,password,database),连接到对应的BaikalDB数据库,使用过程中支持动态切换不同的BaikalDB集群。
查询操作:包括获取库表信息,执行SELECT/DML SQL,分析SQL索引使用扫描量等。
show_all_databases:获取所有的数据库列表信息。
db_overview:获取指定数据库中所有表的概览信息。
table_overview:获取指定表的概览信息,包括:表结构(show create table)、表示例数据(select * from table limit 3)。
read_query:执行select sql并返回csv结果数据,大模型拿到结果可以进行智能分析、智能绘图等等。
write_query:执行建删表、插入删除变更等dml sql并返回操作结果。
analyze_select_query:分析查询SQL执行情况:使用的索引,索引扫描/过滤/反查行数等,支持大模型进行索引分析推荐。
模板操作(优化复杂场景使用):支持预先导入模板SQL(如百度智能云推出的Sugar BI SQL模板),帮助大模型理解业务逻辑,后续大模型可在模板SQL基础上改写查询分析,并支持基于模板进行二次查询(如再次聚合),不同BaikalDB用户之间模板不共享。
get_all_bi_sql_template_list:查询当前BaikalDB用户已导入的SQL模板列表。
get_bi_sql_template_detail:获取SQL模板详细信息,包括SQL模板,相关表Schema等。
add_bi_sql_template:指定模板说明,模板SQL等,添加新的SQL模板。
delete_bi_sql_template:删除指定的SQL模板。
2. 资源类 (Resources) 和 提示词 (Prompts):
目前BaikalDB MCP Server暂未定义资源和提示词,未来会根据使用场景灵活添加,以更好的引导大模型和BaikalDB进行交互。
通过以上工具,BaikalDB MCP Server使得大模型能自主的查询/操作数据库,进行多轮数据智能分析,并且可以结合大模型和其他MCP能力,并高效的通过多种形式呈现分析结果(如Excel文本,绘制图表等)。
3.2 BaikalDB MCP Server应用场景
BaikalDB MCP Server拥有以上能力后,就可以在以下场景中进行使用:
1. 实时数据分析和智能报表
大模型可以实时查询BaikalDB的业务数据,生成可视化报表,并可结合历史上下文生成分析报告或者建议。
2. 多数据源联邦查询分析
通过MCP支持大模型同时访问BaikalDB和其他数据源(如知识库、Mysql等),实现联邦分析。
3. 开发测试提效
在开发测试过程中,通过自然语言交互,建删改表、增删改查、构造测试数据、分析SQL执行情况等,不用额外切多个窗口执行SQL操作。
04 BaikalDB MCP Server使用
BaikalDB MCP Server使得BaikalDB不单是个高性能的分布式数据库,还是大模型的分析执行插件,使得用户不再需要任何开发,即可对BaikalDB存储的数据进行智能分析。
4.1 Comate 配置
以Comate举例:按照以下图示步骤,将BaikalDB MCP Server json配置添加到Comate MCP配置文件中,即可以在Comate中使用大模型操作BaikalDB数据库。当然后续我们会尝试将BaikalDB MCP Server发布到MCP仓库,使得配置更简单!
添加图片注释,不超过 140 字(可选)
BaikalDB MCP Server Json配置如下:
4.2 Demo 演示
示例1:智能分析
下方视频展示了,在Comate中用自然语言对数据库数据进行智能分析和图表展示。
上传视频封面
示例2:开发测试提效
下方视频展示了,开发测试过程中的智能建表、导数、SQL执行分析、索引推荐等。
上传视频封面
示例3:基于模板智能分析
下方视频展示了,在复杂业务场景中,通过预先导入的BI SQL模板进行更高效准确的智能分析。
上传视频封面
05 总结
BaikalDB MCP Server的核心价值在于打破了数据库数据的信息壁垒,构建了一条完整的智能数据处理链路,实现了从自然语言解析到业务建议输出的端到端能力:
自然语言理解:将非结构化查询转化为结构化意图。
数据库操作:自动生成并执行SQL语句。
数据分析:对查询结果进行多维解读并生成可执行建议。
但是也存在一些问题:
SQL生成准确性高度依赖元数据质量(如表结构、字段注释)。
复杂业务逻辑描述困难。
大模型在长上下文中的注意力分配问题。
当然,随着大模型推理能力的持续提升和MCP协议生态的完善,这种数据智能范式将在金融风控、供应链优化、智能客服等复杂业务场景中展现出更大的价值潜力。
来源:百度Geek说