写点什么

TiDB MCP Server 实践和思考

作者: 悟空聊架构原文来源:https://tidb.net/blog/66882a96


你好,我是悟空。

前言

TiDB 已经支持 MCP 功能了,一直想看看怎么玩的,本篇是一篇实践篇,带着大家一起搭建 TiDB MCP Server,以及如何添加 TiDB MCP,如何使用 TiDB 的 MCP。

演示环境说明

  • 可以连接使用的的 TiDB 数据库,且连接时不需要证书、隧道等。

  • Mac M1,32G 内存。

  • CodeBuddy 工具,用来配置 MCP 服务和生成式对话,也可以用其他工具,如 Cursor、Cline。

MCP Server 添加方式

有两种方式添加 TiDB MCP Server:


  • 本地部署 MCP Server。原理就是从 github 拉取最新代码,然后本地部署 TiDB MCP Server。

  • 优势:可以用最新的代码,上面有新的功能和 bug 修复。

  • 缺点:需要下载代码、安装依赖、启动等,对使用者要求比较高。

  • 添加应用市场中 MCP Server。原理就是在 MCP 应用市场查找 TiDB MCP Server,然后添加到 AI 开发工具上。(截止 2025-09-09 在https://mcp.so/没有搜到官方的 TiDB MCP Server)

  • 优势:简单方便。

  • 缺点:MCP Server 可能不是最新的,有些功能特性和 bug 修复不在当前版本上。


本篇只介绍本地部署 TiDB MCP Server 的方式。

MCP 介绍

2024 年 11 月,Anthropic 公司搞了个挺有意思的新玩意 - Model Context Protocol(模型上下文协议)简称为 MCP 协议。简单来说,它就是给 AI 和各类工具数据之间搭了个标准化的”桥梁”,让开发者不用再为对接问题头疼了。


大模型应用可以使用别人分享的 MCP 服务来完成各种各样的工作内容,你可以从这些地方获取 MCP 服务:


  • awesome-mcp-servers

  • mcp.so


如下图所示,这是 mcp.so 网站中的 MCP Server。



MCP 协议在实际的应用场景上非常广泛,列举一些比较常见的应用场景:


  • 使用百度 / 高德地图分析旅线计算时间

  • 接 Puppeteer 自动操作网页

  • 使用 Github/Gitlab 让大模型接管代码仓库

  • 使用数据库组件完成对 Mysql、ES、Redis 等数据库的操作

  • 使用搜索组件扩展大模型的数据搜索能力

MCP 的架构

MCP 的架构


MCP 主要分为 MCP 服务和 MCP 客户端:


  • 客户端:一般指的是大模型应用,比如 Claude、通过 Spring AI Alibaba、Langchain 等框架开发的 AI 应用

  • 服务端:连接各种数据源的服务和工具


整体架构如下:



整体的工作流程是这样的:AI 应用中集成 MCP 客户端,通过 MCP 协议向 MCP 服务端发起请求,MCP 服务端可以连接本地 / 远程的数据源,或者通过 API 访问其他服务,从而完成数据的获取,返回给 AI 应用去使用。

本地部署 TiDB MCP Server

克隆 PyTiDB 项目

github 地址:https://github.com/pingcap/pytidb/


该项目内含 MCP Server 模块,将代码仓库到本地


git clone https://github.com/pingcap/pytidbcd pytidb
复制代码


安装 Python 开发环境及依赖

推荐使用 uv 包管理工具:https://docs.astral.sh/uv/


uv sync --extra mcp
复制代码



配置 MCP 客户端

以 CodeBuddy 工具为例,添加 TiDB MCP Server 的配置参数。


如下图所示,args 参数配置的是本地的 TiDB MCP Server 的执行路径,env 配置的是本地的 TiDB 数据库连接。



可以看到 TiDB MCP Server 添加成功,展示了 7 种 tool:



  • show_databases:展示该 tidb 集群种所有的数据库。

  • Switch_database:切换到指定的数据库。

  • show_tables:展示该数据库种的所有的表。

  • db_query:从 TiDB 数据库通过 SQL 查询数据,使用 limit 限制返回条数,避免返回过多数据造成性能问题。

  • db_execute:通过 SQL 执行相关操作。

  • db_create_user:创建用户。

  • db_remove_user:移除用户。

测试 TiDB MCP Server 是否正常工作

先往 test1 表插入几条测试数据,如下图所示:



然后在 CodeBuddy 的聊天窗口进行对话:


查询 tidb test 数据库 test1 表


然后 CodeBuddy 会调用 TiDB MCP Server 的工具:db_query 从本地数据库中查询数据。



返回的 4 条数据和数据库的结果一致,说明 TiDB MCP Server 是成功部署的。


通过该实验,我们可以考虑更多的玩法,通过对话的方式来查询数据,无需编写 SQL 语句,应用到某些产品中,极大的节省了开发成本。

关于 TiDB MCP Server 应用场景

结合对话式交互的天然优势,我们可以进一步探索以下创新玩法和应用场景,覆盖从开发到业务、从内部到外部的全链路价值:

1、自然语言即服务(NLaaS):零 SQL 的数据洞察平台

场景:业务人员、产品经理、运营等非技术角色,直接通过自然语言查询 TiDB 中的数据。

2、智能开发助手:SQL 自动生成与优化

场景:开发者在 IDE 中通过自然语言描述需求,自动生成 TiDB 兼容的 SQL 语句。

3. 实时运维巡检:对话式故障定位

场景:DBA 或运维人员通过对话快速排查 TiDB 集群异常。


关于传统方式和 TiDB MCP Server 对话式的总结


总结

本文通过实践演示了如何搭建与使用 TiDB MCP Server,展示了本地部署的接入方式,验证了通过自然语言即可查询 TiDB 数据的可行性。


TiDB MCP Server 提供了数据库查询、用户管理等 7 种工具,结合 CodeBuddy 等 AI 工具,可实现零 SQL、对话式的数据交互,大幅降低数据查询门槛。


TiDB MCP Server 在业务洞察、智能开发、运维巡检等场景有很大的应用潜力,对比传统方式,TiDB MCP 对话式交互在效率、门槛、灵活性与成本上具备显著优势,为 AI 驱动的数据操作提供了新范式。


发布于: 刚刚阅读数: 3
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
TiDB MCP Server 实践和思考_TiDB第四届征文-运维开发之旅_TiDB 社区干货传送门_InfoQ写作社区