目录

1.概述

2.核心特性

3.MySQL MCP Server

3.1 快速部署

3.1.1.安装依赖

3.1.2. 配置数据库

3.1.3 启动服务器

3.2.架构说明

3.3.server中的tools简介

3.3.1.execute_sql

3.3.2.list_instances

3.4.配置说明

3.5.文件说明

4.MySQL MCP Client

4.1. 安装

4.2. 配置 LLM Key

5.验证测试

5.1 SELECT场景

5.2 操作场景


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条数据

Logo

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

更多推荐