mcpField
M
MySQL MCP Server

MySQL MCP Server

本地服务
github.com/OTA-EITA数据库279 周前更新

关于 MySQL MCP Server

MySQL MCP Server 为 MCP 客户端提供连接 MySQL 数据库的接口,面向需要读取表数据或执行 SQL 的用户。它支持获取表列表、读取数据和执行多种 SQL 操作,也说明了在 WSL 环境中的连接方式。

主要功能

  1. 01获取数据库表列表
  2. 02读取表中最多 100 行数据
  3. 03执行 SELECT、SHOW TABLES 等 SQL
  4. 04支持 INSERT、UPDATE 和 DELETE
  5. 05提供 WSL 连接说明

适用场景

  1. 01查看 MySQL 数据库中的表
  2. 02读取表数据供后续处理
  3. 03通过 MCP 执行数据库查询或更新

MCP 相关

该 MCP 服务向客户端提供数据库表列表和读取资源,并提供用于执行 SQL 查询的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mysql_mcp_servers": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MySQL MCP Server

本项目提供一个使用 MCP(Model Context Protocol)与 MySQL 数据库交互的服务。它提供了一个用于在 WSL 环境中访问 MySQL 数据库的接口。

功能

  • 获取 MySQL 数据库中的表列表
  • 从表中读取数据(最多 100 行)
  • 执行 SQL 查询(SELECT、SHOW TABLES、INSERT、UPDATE、DELETE 等)

项目结构

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 许可证发布。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。