基于 Python + MCP + LLM 构建 MySQL AI 助手
·
目录
1.概述
本项目实现了一个智能 MySQL 数据库助手,通过 Model Context Protocol (MCP) 连接大语言模型(通义千问)与 MySQL 数据库,实现自然语言查询数据库的能力。代码链接:https://gitcode.com/zm_tree/mysql-mcp-server
2.核心特性
- 自然语言交互:用户用自然语言提问,AI 自动转换为 SQL 并执行
- MCP 协议:标准化的 AI-工具通信协议
- 异步架构:高性能的异步 I/O 处理
- 多数据库支持:可配置多个 MySQL 实例
- 安全防护:自动添加 LIMIT,防止大量数据查询
3.MySQL MCP Server
基于 FastMCP 框架的 MySQL 数据库 MCP 服务器,支持通过 Model Context Protocol 执行 SQL 查询。
3.1 快速部署
3.1.1.安装依赖
cd mcp/server
pip install -r requirements.txt
3.1.2. 配置数据库
复制配置文件并修改:
cp config.example.py config.py
# 编辑 config.py,设置数据库连接信息
3.1.3 启动服务器
chmod +x start_with_proxy.sh
./start_with_proxy.sh
服务器会启动在 http://0.0.0.0:8080/mcp

3.2.架构说明
为了解决 FastMCP 的 Host 头验证问题,本服务使用代理模式:
- 代理服务器 (proxy_server.py): 监听 0.0.0.0:8080,对外提供服务
- FastMCP 后端 (mysql_mcp_server.py): 监听 127.0.0.1:8081,内部使用
3.3.server中的tools简介
3.3.1.execute_sql
执行 SQL 语句(SELECT 自动添加 LIMIT)
参数:
- sql (string): SQL 语句
- instance (string, 可选): 数据库实例名,默认 "default"
3.3.2.list_instances
列出所有配置的数据库实例
3.4.配置说明
编辑 config.py:
# 服务器配置
SSE_PORT = 8080
SSE_HOST = "0.0.0.0"
# 数据库实例
DB_INSTANCES = {
'default': {
'host': '127.0.0.1',
'port': 3306,
'user': 'root',
'password': 'your_password',
'db': 'your_database',
'autocommit': True,
'minsize': 1,
'maxsize': 10
}
}
# 默认实例
DEFAULT_INSTANCE = 'default'
# SELECT 默认 LIMIT
DEFAULT_LIMIT = 1000
3.5.文件说明
- mysql_mcp_server.py - FastMCP 服务器主文件
- proxy_server.py - HTTP 代理服务器(解决 Host 验证)
- config.py - 配置文件
- start_with_proxy.sh - 启动脚本
- requirements.txt - Python 依赖
4.MySQL MCP Client
智能客户端,通过通义千问大模型理解自然语言,自动调用 MCP 工具执行数据库操作。
4.1. 安装
# 依赖包参考服务端
cd mcp/client
# 复制配置文件
cp .env.example .env
# 编辑配置,设置 Qwen API Key
vim .env
4.2. 配置 LLM Key
编辑 .env 文件:
# 必填:大模型的 API Key
QWEN_API_KEY=sk-your-api-key-here
# 可选:选择模型
QWEN_MODEL=qwen-plus # qwen-turbo(快速), qwen-plus(平衡), qwen-max(最强)
# MCP 服务器地址
MCP_SERVER_URL=http://localhost:8080/mcp
4.3. 启动
chmod +x start_client.sh
./start_client.sh

5.验证测试
5.1 SELECT场景


5.2 操作场景
在test库下新建test3表,字段为id int,并写入3条数据


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