MySQL MCP服务器
此项目包括:MCP (Model Context Protocol) 来修改标记元素的显示属性MySQL提供与数据库交互的服务器。WSL在环境中MySQL提供访问数据库的接口。
机能
- MySQL在数据库中检索表列表
- 从表读取数据(最多100行)
- SQLクエリの実行(选择、显示表格、插入、更新、删除など)
项目结构
src/mysql_mcp_server/
├── __init__.py # パッケージ初期化
├── config/ # 設定関連モジュール
│ ├── __init__.py
│ └── settings.py # データベース設定
├── database/ # データベース操作モジュール
│ ├── __init__.py
│ ├── connection.py # DB接続処理
│ └── errors.py # エラークラス
├── tools/ # ツールモジュール
│ ├── __init__.py
│ └── sql_tools.py # SQL実行ツール
└── server.py # MCPサーバーメイン安装和运行
前提条件
- Python 3.11以上
- MySQL服务器(本地或远程)
- 反想环境(virtualenv)
- Docker(Docker),模板名称将采用不同的格式
安装,安装
- 克隆存储库:
git clone
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.sh2.作为模块运行
./run_module.sh3. 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(Model Control Protocol)并提供以下端点:
list_resources:获取数据库中的表列表read_resource:从特定表读取数据list_tools:列出可用工具(执行SQL查询)call_tool: SQL执行查询
WSL连携
WSL(Windows Subsystem for Linux)环境中的MySQL连接到服务器:
- WSL中的MySQL确认服务器已启动
- WSL中的MySQL确认设置为允许远程连接
- /etc/mysql/mysql.conf.d/mysqld.cnf在工作空间的边缘bind-address打开0.0.0.0更改为 - 使用,使用MySQL授予用户远程访问权限
- Windows旁边的防火墙MySQL确保允许连接到端口(默认13306)
开発
Nox会话
该项目包括测试、格式化和链接Nox提供会话。
- Nox安装:
pip install nox- 运行所有测试:
nox -s test- 格式化代码:
nox -s format- 执行链接检查:
nox -s lint直接运行测试
pytest tests/检查代码覆盖范围
pytest --cov=src.mysql_mcp_server tests/许可证
这个项目MIT在许可证下公开。
