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 时)
设置步骤
- 克隆仓库:
git clone <repository-url> cd mysql_mcp_server - 创建虚拟环境并激活:
python -m venv .venv source .venv/bin/activate # Linux 系统 - 安装依赖项:
pip install -r requirements.txt . - 运行设置脚本以赋予执行权限并运行:
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 运行测试
- 安装 Nox:
pip install nox - 运行所有测试:
nox -s test - 格式化代码:
nox -s format - 执行代码检查:
nox -s lint
直接运行测试
pytest tests/
检查代码覆盖率
pytest --cov=src.mysql_mcp_server tests/
📄 许可证
此项目在 MIT 许可证下开源。
Scan to contact