MySQL数据库服务器

提供通过MCP协议与MySQL数据库交互的服务器,支持数据库查询、数据操作和表管理等功能。

  • by OTA-EITA
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 OTA-EITA/mysql_mcp_servers

使用说明

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),模板名称将采用不同的格式

安装,安装

  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(Model Control Protocol)并提供以下端点:

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

WSL连携

WSL(Windows Subsystem for Linux)环境中的MySQL连接到服务器:

  1. WSL中的MySQL确认服务器已启动
  2. WSL中的MySQL确认设置为允许远程连接
    • /etc/mysql/mysql.conf.d/mysqld.cnf在工作空间的边缘bind-address打开0.0.0.0更改为
    • 使用,使用MySQL授予用户远程访问权限
  3. Windows旁边的防火墙MySQL确保允许连接到端口(默认13306)

开発

Nox会话

该项目包括测试、格式化和链接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在许可证下公开。