0
0
0
0
专栏/.../

MCP + TiDB = 智能 Agent 数据应用新范式(附 Demo 教程)

 社区小助手  发表于  2025-06-17
转载

导读

随着大语言模型(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 中,仅用一条简单命令就完成了这样的数据分析流程:

  1. 查看数据库中的表及表结构(调用 show_tables 工具);
  2. 根据表结构生成满足查询需求的 SQL,并调用 db_query 工具执行;
  3. 将查询结果绘制成图表,进行分析并形成总结。

详细实现过程

准备工作

  1. 支持 MCP 协议的客户端:例如:Claude Desktop、Cursor、Cline、DeepChat、ChatWise 等;
  2. 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/

  1. 克隆 PyTiDB 项目(内含 MCP Server 模块)代码仓库到本地

    git clone https://github.com/pingcap/pytidb
    cd pytidb
    
  2. 安装 Python 开发环境及依赖(推荐使用 uv 包管理工具:https://docs.astral.sh/uv/)

    uv sync --extra mcp
    
  3. 配置 MCP 客户端(以 Claude Desktop 为例),添加 TiDB MCP Server 的配置参数:找到 Settings -> Developer 配置,通过 Edit Config 按钮打开 MCP 配置文件

在配置文件中添加 TiDB MCP Server 的配置参数:

{
  "mcpServers": {
    "tidb": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/pytidb",
        "run",
        "-m",
        "pytidb.ext.mcp"
      ],
      "env": {
        "TIDB_HOST": "{host}",
        "TIDB_PORT": "4000",
        "TIDB_USERNAME": "{username}",
        "TIDB_PASSWORD": "{password}",
        "TIDB_DATABASE": "{database}"
      }
    }
  }
}

其中 TIDB_HOST、TIDB_PORT 等信息请按照实际测试集群的信息填写。

  1. 重启 Claude Desktop,即可在工具列表中查看到 TiDB MCP Server 支持的调用工具。

  1. 在 Claude Desktop 输入框中输入你的问题以及回答要求即可向 Agent 发起查询任务。

      示例指令:

    检索 pingcap/tidb 仓库的 star 历史(按年累计统计,每位用户只计算首次 star)。使用 ECharts 折线图展示结果,解释保持简洁。
    

另外,在写此文章的同时,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 感兴趣,欢迎试用本文介绍的新能力,和我们一起探索这个充满潜力的方向 :)

点击试用 TiDB MCP Server

0
0
0
0

声明:本文转载于 https://mp.weixin.qq.com/s/LraTXMXXNq0Eiyxb2ZWNcw

评论
暂无评论