BaikalDB MCP Server :链接数据库和 AI 的直通桥

导读
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. 语义透明化:通过标准化上下文标记,实现跨组件意图传递的零损耗。

△MCP 设计理念
2.1 MCP 组成
如上图所示,MCP 由三个核心组件构成:MCP Host、MCP Client 和 MCP Server:

官方文档链接:
https://modelcontextprotocol.io/clients
https://modelcontextprotocol.io/quickstart/client
https://modelcontextprotocol.io/quickstart/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 仓库,使得配置更简单!



BaikalDB MCP Server Json 配置如下:
4.2 Demo 演示
示例 1:智能分析
下方视频展示了,在 Comate 中用自然语言对数据库数据进行智能分析和图表展示。
示例 2:开发测试提效
下方视频展示了,开发测试过程中的智能建表、导数、SQL 执行分析、索引推荐等。
示例 3:基于模板智能分析
下方视频展示了,在复杂业务场景中,通过预先导入的 BI SQL 模板进行更高效准确的智能分析。
05 总结
BaikalDB MCP Server 的核心价值在于打破了数据库数据的信息壁垒,构建了一条完整的智能数据处理链路,实现了从自然语言解析到业务建议输出的端到端能力:
自然语言理解:将非结构化查询转化为结构化意图。
数据库操作:自动生成并执行 SQL 语句。
数据分析:对查询结果进行多维解读并生成可执行建议。
但是也存在一些问题:
SQL 生成准确性高度依赖元数据质量(如表结构、字段注释)。
复杂业务逻辑描述困难。
大模型在长上下文中的注意力分配问题。
当然,随着大模型推理能力的持续提升和 MCP 协议生态的完善,这种数据智能范式将在金融风控、供应链优化、智能客服等复杂业务场景中展现出更大的价值潜力。
评论