Simple MCP MySQL Server

Simple MCP MySQL Server

site icon
2025.03.09 0
Python数据库服务SQL查询数据库
mcp-mysql-server 是一个轻量级的 Model Context Protocol (MCP) 服务器,用于安全地与 MySQL 数据库进行交互。该服务器允许 AI 助手(如 Claude)通过受控接口列出表、读取数据和执行 SQL 查询。
View on GitHub

Overview

基本能力

产品定位

mcp-mysql-server 是一个专门为 MySQL 数据库设计的轻量级 MCP 服务器,旨在提供安全、可控的数据库访问接口。

核心功能

  • 列出 MySQL 数据库中的所有表
  • 检索所有表的详细模式信息
  • 执行只读 SQL 查询并提供适当的错误处理
  • 通过环境变量实现安全的数据库访问
  • 简单的配置和部署

适用场景

  • AI 助手需要查询数据库信息
  • 需要安全地暴露只读数据库接口给第三方应用
  • 快速搭建数据库查询服务

工具列表

  • query_data: 执行只读 SQL 查询并返回结果

常见问题解答

  • 安全考虑:建议使用具有最小权限的数据库用户(只读),切勿在生产环境中使用 root 凭据
  • 性能考虑:考虑为敏感数据库实现查询白名单
  • 监控建议:记录所有数据库操作

使用教程

使用依赖

  • uv (推荐)
  • Python 3.12.2+
  • MySQL 服务器

安装教程

# 克隆仓库
git clone [email protected]:alexcc4/mcp-mysql-server.git
cd mysql-mcp-server

# 使用 uv 安装依赖(推荐)
uv sync

配置

设置以下环境变量:

export DB_HOST=localhost # 数据库主机
export DB_PORT=3306 # 数据库端口(默认为3306)
export DB_USER=your_username # 数据库用户名
export DB_PASSWORD=your_password # 数据库密码
export DB_NAME=your_database # 数据库名称

调试方式

手动启动:

uv run main.py

与 Claude Desktop 集成: 在 Claude Desktop 配置文件中添加以下内容:

{
    "mcpServers": {
        "sql": {
            "command": "/path/uv",
            "args": [
                "--directory",
                "code_path",
                "run",
                "main.py"
            ],
            "env": {
                "DB_HOST": "127.0.0.1",
                "DB_PORT": "3306",
                "DB_USER": "your_user",
                "DB_PASSWORD": "your_password",
                "DB_NAME": "your_database"
           }
        }
    }
}

示例查询:

"显示数据库中的所有表"
"从用户表中获取前10行"
"查找过去30天内下的所有订单"
"按国家/地区统计用户数量"
"显示产品表的模式"

许可证

该项目遵循 MIT 开源许可条款。