用自然语言操控数据库 —— TiDB MCP Server 实践全解。你是否想过,不写一行 SQL,只靠一句话就能查询数据库?MCP 协议正在让这件事成为现实。


一、前言:AI 与数据库的融合时代

2024 年 11 月,Anthropic 正式开源了 MCP(Model Context Protocol,模型上下文协议),它的出现解决了 AI 大模型与外部工具/数据源之间长期缺乏标准化接口的痛点。

简单来说,MCP 就是 AI 世界里的 "通用数据线"——不管是数据库、文件系统、API 还是第三方服务,都可以通过 MCP 协议无缝接入支持 MCP 的 AI 工具(如 Claude Desktop、Cursor、CodeBuddy 等)。

TiDB MCP Server 正是在这样的背景下应运而生——它将 TiDB 数据库能力以 MCP 协议的方式暴露给 AI 工具,让你能通过自然语言直接查询数据库,彻底告别繁琐的 SQL 编写。


二、MCP 核心架构简介

在正式开始之前,先了解一下 MCP 的基本架构,有助于理解 TiDB MCP Server 的工作原理。

┌─────────────────────────────────────────────┐
│              MCP 客户端 (Host)               │
│  (Claude Desktop / Cursor / CodeBuddy 等)   │
└──────────────────┬──────────────────────────┘
                   │  MCP Protocol
                   ▼
┌─────────────────────────────────────────────┐
│              MCP Server                      │
│           (TiDB MCP Server)                  │
└──────────────────┬──────────────────────────┘
                   │  SQL / MySQL Protocol
                   ▼
┌─────────────────────────────────────────────┐
│              TiDB 数据库                     │
│      (TiDB Cloud / 自建 TiDB 集群)           │
└─────────────────────────────────────────────┘

MCP 的核心包含三种能力:

  • Resources(资源):为 LLM 提供可读取的上下文数据
  • Tools(工具):LLM 可以调用的外部函数/操作
  • Prompts(提示):可复用的提示模板

TiDB MCP Server 主要利用 Tools 能力,将数据库操作封装成 AI 可调用的工具集。


三、TiDB MCP Server 工具全览

TiDB MCP Server 目前提供 7 种核心工具,覆盖数据库日常运维和查询的主要场景:

工具名称类型功能描述
show_databases查询类列出 TiDB 集群中的所有数据库
switch_database管理类切换当前操作的目标数据库
show_tables查询类显示当前数据库的所有表
db_query查询类执行只读 SQL 查询(SELECT)
db_execute执行类执行 DML/DDL SQL 语句(INSERT/UPDATE/DELETE/CREATE 等)
db_create_user用户管理创建新的数据库用户
db_remove_user用户管理删除已有数据库用户
⚠️ 注意:db_execute 可执行写操作,在生产环境使用时需谨慎,建议限制连接用户的权限。

四、环境准备

在开始之前,请确保以下环境就绪:

依赖项要求说明
Python≥ 3.10TiDB MCP Server 基于 Python 构建
uv最新版现代 Python 包管理器,速度极快
TiDB 数据库TiDB Cloud 或本地部署可免费注册 TiDB Cloud Starter 集群
MCP 客户端Cursor / Claude Desktop / CodeBuddy 等支持 MCP 协议的 AI 工具

安装 uv(如未安装):

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

Windows(PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

五、本地部署方式

TiDB MCP Server 基于 [pingcap/pytidb](https://github.com/pingcap/pytidb) 项目,支持通过 uvx 直接运行,无需手动克隆代码。

方式一:STDIO 模式(推荐)

STDIO 模式是最常用的集成方式,MCP 客户端直接在本地启动 TiDB MCP Server 进程并通过标准输入输出进行通信。

配置示例(mcp.json):

{
  "mcpServers": {
    "TiDB": {
      "command": "uvx --from pytidb[mcp] tidb-mcp-server",
      "env": {
        "TIDB_HOST": "your-tidb-host",
        "TIDB_PORT": "4000",
        "TIDB_USERNAME": "root",
        "TIDB_PASSWORD": "your-password",
        "TIDB_DATABASE": "test"
      }
    }
  }
}

复制参数说明:

环境变量说明
TIDB_HOSTTiDB 服务器地址(TiDB Cloud 格式:{gateway}.prod.aws.tidbcloud.com)
TIDB_PORT端口,默认 4000
TIDB_USERNAME数据库用户名
TIDB_PASSWORD数据库密码
TIDB_DATABASE默认连接的数据库名

方式二:SSE 模式(适用于远程/团队共享)

SSE(Server-Sent Events)模式适合将 MCP Server 部署为独立服务,供多个客户端共享。

Step 1:创建 .env 配置文件

cat > .env <<EOF
TIDB_HOST=gateway-region.prod.aws.tidbcloud.com
TIDB_PORT=4000
TIDB_USERNAME=prefix.root
TIDB_PASSWORD=your-password
TIDB_DATABASE=test
EOF

复制Step 2:启动 SSE 模式的 MCP Server

uvx --from "pytidb[mcp]" tidb-mcp-server --transport sse
服务默认监听 http://localhost:8000/sse

Step 3:在 MCP 客户端中配置连接

{
  "mcpServers": {
    "TiDB": {
      "url": "http://localhost:8000/sse"
    }
  }
}

六、配置各主流 MCP 客户端

6.1 Cursor

在 Cursor 中打开设置(Cmd/Ctrl + Shift + J),进入 MCP 标签页,添加如下配置:

{
  "mcpServers": {
    "TiDB": {
      "command": "uvx",
      "args": ["--from", "pytidb[mcp]", "tidb-mcp-server"],
      "env": {
        "TIDB_HOST": "your-tidb-host",
        "TIDB_PORT": "4000",
        "TIDB_USERNAME": "root",
        "TIDB_PASSWORD": "your-password",
        "TIDB_DATABASE": "test"
      }
    }
  }
}

6.2 Claude Desktop

编辑 Claude Desktop 的配置文件:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json

内容与上方 Cursor 配置相同,保存后重启 Claude Desktop 即可。

6.3 CodeBuddy(腾讯云 AI 编程助手)

{
  "mcpServers": {
    "TiDB": {
      "command": "uvx",
      "args": ["--from", "pytidb[mcp]", "tidb-mcp-server"],
      "env": {
        "TIDB_HOST": "your-tidb-host",
        "TIDB_PORT": "4000",
        "TIDB_USERNAME": "root",
        "TIDB_PASSWORD": "your-password",
        "TIDB_DATABASE": "test"
      }
    }
  }
}

七、验证安装与实战演示

配置完成后,在支持 MCP 的 AI 工具中可以尝试以下对话,验证 TiDB MCP Server 是否正常工作。

验证连通性

用户:帮我列出当前 TiDB 中有哪些数据库?

AI:我来帮你查询 TiDB 中的数据库列表。
    [调用 show_databases 工具]
    当前 TiDB 集群中有以下数据库:
    - information_schema
    - mysql
    - performance_schema
    - test
    - your_app_db

自然语言查询数据

用户:查询 test 库中 orders 表最近 10 条订单记录

AI:[调用 switch_database → db_query]
    执行 SQL:SELECT * FROM orders ORDER BY created_at DESC LIMIT 10;
    返回结果如下:...

数据库结构探查

用户:test 数据库里有哪些表?每张表有什么字段?

AI:[调用 show_tables → db_query]
    test 数据库中包含以下表:users、orders、products

    users 表结构:
    - id (INT, PRIMARY KEY)
    - username (VARCHAR(50))
    - email (VARCHAR(100))
    - created_at (TIMESTAMP)
    ...

智能 SQL 生成与优化

用户:帮我查询过去 30 天内下单金额超过 1000 元的用户,按消费金额降序排列

AI:[调用 db_query]
    SELECT u.username, SUM(o.amount) AS total_amount
    FROM users u
    JOIN orders o ON u.id = o.user_id
    WHERE o.created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
    GROUP BY u.id, u.username
    HAVING total_amount > 1000
    ORDER BY total_amount DESC;

    查询结果如下:...


八、典型应用场景

🔍 场景一:运维巡检对话化

传统的 DBA 巡检需要记忆大量 SQL 语句,使用 TiDB MCP Server 后,DBA 可以通过自然语言对话快速完成:

  • "帮我查一下哪些表数据量超过 1000 万行?"
  • "找出最近 1 小时内执行时间超过 5 秒的慢查询"
  • "检查一下是否有未使用的索引"

📊 场景二:数据分析自助化

产品经理、运营同学无需懂 SQL,直接通过 AI 对话获取业务数据:

  • "上周的 DAU、MAU 分别是多少?"
  • "分地区统计本月的销售额"
  • "用户留存率怎么样?"

🛠️ 场景三:开发辅助智能化

开发者在 IDE 中直接通过对话与数据库交互:

  • 根据自然语言描述自动生成复杂 SQL
  • 结合代码上下文自动生成数据迁移脚本
  • 快速对比不同 SQL 写法的性能差异

🤖 场景四:AI Agent 数据赋能

在 AI Agent 开发场景中,TiDB MCP Server 让 Agent 能够直接读写数据库,构建真正的数据驱动型智能体。


九、对比传统方式

对比维度传统 SQL 方式TiDB MCP Server
使用门槛需要掌握 SQL 语法自然语言即可,零门槛
效率手写 SQL,调试耗时AI 秒级生成,即时可用
覆盖人群仅限技术人员全员可用
集成成本需要开发查询接口配置一个 JSON 即可接入
灵活性固定查询模板任意自然语言需求
学习曲线陡峭极低

十、注意事项与安全建议

1. 权限最小化原则:为 MCP Server 使用的数据库账号配置最小必要权限,如只需查询则仅赋予 SELECT 权限,避免使用 root;

2. 密码安全:避免将数据库密码硬编码在配置文件中,推荐使用环境变量或 Secret Manager 管理;

3. 生产环境谨慎使用 db_execute:该工具可执行写操作,建议在生产环境中关闭或通过权限控制限制其使用;

4. TiDB Cloud SSL 连接:连接 TiDB Cloud 时,建议启用 SSL/TLS 加密,保障数据传输安全;

5. 版本更新:定期更新 pytidb 到最新版本,以获取最新特性和安全修复:

   uvx --from "pytidb[mcp]" --upgrade tidb-mcp-server
   

十一、总结

TiDB MCP Server 是 MCP 生态中数据库集成方向的优秀实践,它让 "自然语言即 SQL" 不再只是一个愿景,而是触手可及的现实工具。

对于 DBA 和运维工程师而言,这是一次工作方式的升级——从"写 SQL"到"说需求";对于产品、运营等非技术同学,这是一把打开数据大门的钥匙。

随着 MCP 生态的持续发展和 TiDB 对 AI 能力的不断投入,期待未来看到更多智能化的数据库交互场景落地。


参考资料

  • [TiDB MCP Server 官方文档](https://pingcap.github.io/ai/integrations/tidb-mcp-server/)
  • [TiDB MCP Server 中文文档](https://docs.pingcap.com/zh/ai/tidb-mcp-server/)
  • [pingcap/pytidb - GitHub](https://github.com/pingcap/pytidb)
  • [MCP 官方协议文档](https://modelcontextprotocol.io/introduction)
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐