返回 MCP 目录
public公开dns本地运行

mysql_mcp_servers

一个通过MCP协议与MySQL数据库交互的服务器项目,提供数据库表查询、数据读取和SQL执行功能,支持WSL环境。

article

README

🚀 MySQL MCP 服务器

本项目提供了一个使用 Model Context Protocol (MCP) 与 MySQL 数据库进行交互的服务器,专门为 WSL 环境中的 MySQL 数据库提供便捷接口,助力开发者高效操作数据库。

🚀 快速开始

本服务器可帮助你通过 MCP 协议与 MySQL 数据库进行交互。按照以下步骤操作,即可快速开启服务。

✨ 主要特性

  • 表信息获取:能够获取 MySQL 数据库中的表列表。
  • 数据读取:可从表中读取数据,最多读取 100 行。
  • SQL 查询执行:支持执行多种 SQL 查询,如 SELECT、SHOW TABLES、INSERT、UPDATE、DELETE 等。

📦 安装指南

先决条件

  • Python 3.11 或更高版本
  • MySQL 服务器(本地或远程)
  • 虚拟环境(virtualenv)
  • Docker(使用 Docker 时)

设置步骤

  1. 克隆仓库:
    git clone <repository-url>
    cd mysql_mcp_server
    
  2. 创建虚拟环境并激活:
    python -m venv .venv
    source .venv/bin/activate  # Linux 系统
    
  3. 安装依赖项:
    pip install -r requirements.txt .
    
  4. 运行设置脚本以赋予执行权限并运行:
    chmod +x setup.sh
    ./setup.sh
    

运行方法

可以使用以下任意一种方式运行服务器:

1. 直接运行

./run_direct.sh

2. 作为模块运行

./run_module.sh

3. 使用 Docker 容器运行

# 构建 Docker 镜像
docker build -t mysql-mcp-server:latest .

# 运行容器
./run_docker.sh

📚 详细文档

环境变量

服务器使用以下环境变量连接 MySQL: | 属性 | 详情 | |------|------| | MYSQL_HOST | MySQL 服务器的主机(默认: host.docker.internal) | | MYSQL_PORT | MySQL 服务器的端口(默认: 13306) | | MYSQL_USER | MySQL 用户名 | | MYSQL_PASSWORD | MySQL 密码 | | MYSQL_DATABASE | 使用的数据库名称 |

MCP 协议

此服务器实现 MCP 协议,并提供以下端点:

  • list_resources:获取数据库中的表列表
  • read_resource:从特定表中读取数据
  • list_tools:列出可用工具
  • execute_query:执行 SQL 查询

WSL 环境注意事项

在 WSL 环境下运行时,需注意文件路径和网络配置。请参考文档中的 WSL 部分以获取更多信息。

项目结构

src/mysql_mcp_server/
├── __init__.py        # 包初始化文件
├── config/           # 配置相关模块
│   ├── __init__.py  
│   └── settings.py   # 数据库配置
├── database/         # 数据库操作模块
│   ├── __init__.py  
│   ├── connection.py # 数据库连接处理
│   └── errors.py     # 错误类
├── tools/            # 工具模块
│   ├── __init__.py  
│   └── sql_tools.py  # SQL 执行工具
└── server.py         # MCP 服务器主文件

🔧 技术细节

测试

使用 Nox 运行测试

  1. 安装 Nox:
    pip install nox
    
  2. 运行所有测试:
    nox -s test
    
  3. 格式化代码:
    nox -s format
    
  4. 执行代码检查:
    nox -s lint
    

直接运行测试

pytest tests/

检查代码覆盖率

pytest --cov=src.mysql_mcp_server tests/

📄 许可证

此项目在 MIT 许可证下开源。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端