MCP + TiDB = 智能 Agent 数据应用新范式(附 Demo 教程)
作者: 社区小助手原文来源:https://tidb.net/blog/d5d835a6
导读
随着大语言模型(LLM)能力的持续演进,我们已迈入了“Agent 时代”——模型不仅能够理解指令,还能自主决策与执行复杂任务。在这一过程中,LLM 与外部系统(尤其是数据库)的高效连接成为关键能力之一。
MCP(Model Context Protocol)作为一项开放标准,正在成为连接 LLM 与外部数据源、工具系统的事实标准。它通过统一的协议,简化了模型对外部资源的访问路径,让开发者能够轻松为 LLM 应用注入实时数据和可执行能力。
现在,TiDB 的 AI SDK——PyTiDB,已原生支持 MCP 协议。开发者无需编写复杂的插件或 API,只需简单配置,即可将 TiDB 接入支持 MCP 的 AI 工具。
本文将介绍 MCP 协议的核心机制、TiDB 对 MCP 协议的支持,并通过实际案例展示如何基于 TiDB + MCP 构建智能数据分析应用。
为什么需要 MCP ?
MCP (Model Context Protocol,模型上下文协议) 是一项开放标准,为 LLM 访问外部数据 / 资源、调用第三方工具提供了标准规范。(官方定义参考:https://docs.anthropic.com/en/docs/agents-and-tools/mcp)
MCP 协议的出现,带来了一些显著优势:
打破 AI 应用的数据孤岛:通过标准化接口,MCP 允许 AI 应用实时访问外部系统(如数据库),获取最新数据,而不局限于模型的静态训练数据。
赋能 AI Agent:MCP 提供了与第三方工具深度集成的能力,使 AI 应用能够从简单的问答升级为具备感知、决策与行动能力的智能 Agent。
简化插件开发:开发者只需为外部工具实现一个 MCP Server,即可轻松对接所有支持 MCP 的 AI 应用,无需重复适配。
TiDB 已支持 MCP 协议
TiDB 的 AI SDK——PyTiDB,现已原生支持 MCP 协议。这意味着开发者可以直接使用 PyTiDB 提供的 MCP Server 模块,将 TiDB 数据库接入支持 MCP 的 AI 工具(如 Claude Desktop、Cursor 等),实现自然语言驱动的数据查询与分析。
相比直接使用 Text2SQL 让模型生成并执行 SQL,MCP 协议通过结构化接口让 LLM 与数据库的 MCP Server 通信,由 MCP Client 生成并执行 SQL,具备更高的工程化程度与可控性。MCP 支持类型安全的调用方式,可灵活添加权限控制机制(例如如按 tool 配置访问策略、字段权限与限流等),可显著提升系统的安全性、可维护性与扩展性。
PyTiDB 是 TiDB 提供的的 AI SDK,包含访问 TiDB 的向量存储、AI 搜索、Auto Embedding、MCP 等功能,代码地址:https://github.com/pingcap/pytidb/
其中,MCP Server 模块地址:https://github.com/pingcap/pytidb/tree/main/pytidb/ext/mcp

🔔 TiDB 已被 MCP 官方代码仓库收录:https://github.com/modelcontextprotocol/servers

Demo:借助 TiDB + MCP 进行 GitHub 数据洞察
在 OSSInsight 项目中,我们已使用 TiDB 存储了超过 90 亿条公开的 GitHub 事件数据,通过预设 SQL 为用户提供在线分析报告。如今,数据分析类应用的开发模式也正在发生改变。借助 TiDB 提供的 MCP Server 能力,开发者可以:
实现更智能的 Agentic 工作流:在数据分析场景下,传统 Text2SQL 应用在固定流程下容易生成错误 SQL,而连通数据库的 AI Agent 能基于返回的错误信息自主重试或修正 SQL,从而大幅减少人工干预。
持续学习与优化:支持 Memory 的 AI 工具可记录用户偏好,持续改进 SQL 生成质量。
演示:https://mp.weixin.qq.com/s/LraTXMXXNq0Eiyxb2ZWNcw
在 Claude Desktop 中,仅用一条简单命令就完成了这样的数据分析流程:
查看数据库中的表及表结构(调用
show_tables
工具);根据表结构生成满足查询需求的 SQL,并调用
db_query
工具执行;将查询结果绘制成图表,进行分析并形成总结。
详细实现过程
准备工作
支持 MCP 协议的客户端:例如:Claude Desktop、Cursor、Cline、DeepChat、ChatWise 等;
TiDB 测试集群及数据:
可用 TiUP Playground 部署 TiDB,启动方式参考 https://docs.pingcap.com/tidb/stable/production-deployment-using-tiup/;
在 demo 中使用的是 OSSInsight 的 TiDB 生产环境集群地址(赋予 TIDB_USER 只读权限),这里也提供一份测试数据集(https://github.com/pingcap/ossinsight/releases/tag/sample-data),可下载并导入到测试集群,获取数据库的连接串。
注:如果使用 TiUP Playground,可以在启动后的日志输出中找到必要的数据库链接信息。
配置步骤
详细配置文档参考:https://pingcap.github.io/pytidb/integrations/mcp/
克隆 PyTiDB 项目(内含 MCP Server 模块)代码仓库到本地
安装 Python 开发环境及依赖(推荐使用 uv 包管理工具:https://docs.astral.sh/uv/)
配置 MCP 客户端(以 Claude Desktop 为例),添加 TiDB MCP Server 的配置参数:找到 Settings -> Developer 配置,通过 Edit Config 按钮打开 MCP 配置文件

在配置文件中添加 TiDB MCP Server 的配置参数:
其中 TIDB_HOST、TIDB_PORT 等信息请按照实际测试集群的信息填写。
重启 Claude Desktop,即可在工具列表中查看到 TiDB MCP Server 支持的调用工具。

在 Claude Desktop 输入框中输入你的问题以及回答要求即可向 Agent 发起查询任务。
示例指令:
另外,在写此文章的同时,Anthropic 发布了 MCP Connector(Beta) 并给了说明“Claude’s Model Context Protocol (MCP) connector feature enables you to connect to remote MCP servers directly from the Messages API without a separate MCP client”,这意味着未来在使用 Anthropic 提供的 Claude LLM API 时,可以不再单独实现一个 MCP Client(via https://github.com/modelcontextprotocol/python-sdk) ,而是在 API 里就可以连接一个或多个 MCP Server(也包含 HTTP/sse 启动模式下的 TiDB MCP Server)。
总结
MCP 的出现,显著简化了 LLM 应用与外部系统的集成过程,它让模型能够更自然、更高效地连接外部数据和工具,真正具备了“行动力”。TiDB 对 MCP 的支持,不仅为开发者提供了更高效的工具链,也为企业实现 AI 应用与数据平台的深度融合提供了可能。
未来,我们会继续探索 TiDB 在 AI 生态中的更多可能性,例如如何更好地支持复杂的智能决策场景,如何为开发者提供更便捷的工具等。如果对 TiDB 和 MCP 感兴趣,欢迎试用本文介绍的新能力,和我们一起探索这个充满潜力的方向 :)
评论