1
1
0
0
博客/.../

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

 TiDB官方  发表于  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

1
1
0
0

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

评论
暂无评论