Multi-MySQL MCP Server

Multi-MySQL MCP Server

Enables AI coding assistants to query and manage multiple MySQL and MariaDB databases through a single MCP server, with SQL injection protection and read-only mode by default.

Category
访问服务器

README

Multi-MySQL MCP Server

CI License: MIT Node.js TypeScript MCP

English | Русский | 中文


English

A Model Context Protocol (MCP) server for MySQL and MariaDB — designed for AI coding assistants like Claude Code, Cursor, Windsurf, GitHub Copilot, and any MCP-compatible client.

One server, many databases. Connect multiple MySQL and MariaDB databases through a single MCP server with built-in SQL injection protection, read-only mode, connection pooling, and hot-reload configuration.

Why Use This?

  • AI-native database access — let Claude, Cursor, or Copilot query your MySQL databases directly
  • Multi-database — manage all your MySQL connections from one MCP server
  • Secure by default — state-machine SQL injection parser, read-only transactions, prepared statements
  • Hot-reload config — change connections without restarting the server
  • Per-project isolation — use --label to expose only relevant databases
  • 7 powerful tools — query, describe, explain, health check and more
  • Broad compatibility — MySQL 5.7–9.x, MariaDB 10.x–11.x, AWS RDS, Azure, GCP, PlanetScale

Tools

Tool Description
mysql_list_databases List all configured database connections with status
mysql_query Execute SQL queries with read-only enforcement and SQL injection protection
mysql_list_tables List tables with row counts, storage engine (InnoDB, MyISAM), and data size
mysql_describe_table Show columns, types, indexes, primary keys, foreign keys, and constraints
mysql_list_schemas List all databases/schemas available on the MySQL server
mysql_health_check Test connectivity, MySQL version, and response latency
mysql_explain Run EXPLAIN ANALYZE with automatic ROLLBACK for safety

Quick Start

Install

git clone https://github.com/VKirill/multi-mysql-mcp-server.git
cd multi-mysql-mcp-server
npm install
npm run build

Configure

Create ~/.mcp-mysql/config.json (or use --config to specify a custom path):

{
  "connections": [
    {
      "label": "local",
      "host": "localhost",
      "port": 3306,
      "user": "dev",
      "password": "devpass123",
      "database": "myapp"
    },
    {
      "label": "production",
      "url": "mysql://${PROD_USER}:${PROD_PASS}@db.example.com:3306/prod_db",
      "readOnly": true,
      "ssl": true
    }
  ]
}

Add to Claude Code

claude mcp add mysql -- node /path/to/dist/index.js --config ~/.mcp-mysql/config.json

Or add to ~/.claude.json:

{
  "mcpServers": {
    "mysql": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/dist/index.js", "--config", "/path/to/config.json"]
    }
  }
}

Add to Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "mysql": {
      "command": "node",
      "args": ["/path/to/dist/index.js", "--config", "/path/to/config.json"]
    }
  }
}

Docker

docker build -t mcp-mysql .
docker run -v /path/to/config.json:/app/config.json mcp-mysql --config /app/config.json

Configuration

Connection Fields

Field Type Required Default Description
label string Yes — Unique identifier for the database
host string * — MySQL server hostname
port number No 3306 MySQL server port
user string * — Database username
password string No "" Database password
database string * — Default database/schema name
url string * — MySQL connection URL (alternative to host/user/database)
ssl bool/object No — Enable SSL/TLS (supports AWS RDS, Azure, GCP Cloud SQL)
readOnly boolean No true Enforce read-only transactions
enabled boolean No true Enable/disable this connection
poolSize number No 5 Maximum pool connections (1–100)

* Either url or host + user + database is required.

Environment Variables in Config

Use ${VAR} or ${VAR:-default} syntax in any config string value:

{
  "host": "${MYSQL_HOST:-localhost}",
  "user": "${MYSQL_USER}",
  "password": "${MYSQL_PASSWORD}"
}

CLI Options

Option Description
--config <path> Path to config file (default: ~/.mcp-mysql/config.json)
--label <name> Restrict server to a single database (per-project isolation)

Environment variable: MCP_MYSQL_CONFIG — alternative config file path.

Security

  • SQL injection protection — state-machine parser detects multi-statement queries, handles MySQL-specific syntax (backtick identifiers, # comments, backslash escapes)
  • DDL protection — blocks CREATE, DROP, ALTER, TRUNCATE statements
  • Prepared statements — all user parameters go through connection.execute() with ? placeholders
  • Read-only by default — SET SESSION TRANSACTION READ ONLY wraps all queries in transactions
  • EXPLAIN safety — EXPLAIN ANALYZE always wrapped in transaction with ROLLBACK
  • Config permissions — warns if config file is world-readable on Unix
  • Zod validation — config file validated with strict schemas

See SECURITY.md for the full security model and responsible disclosure policy.

Compatibility

  • MySQL 5.7, 8.0, 8.4, 9.x
  • MariaDB 10.x, 11.x
  • Cloud: AWS RDS, Azure Database for MySQL, Google Cloud SQL, PlanetScale, Aiven
  • Node.js >= 18
  • MCP clients: Claude Code, Cursor, Windsurf, GitHub Copilot, VS Code, any MCP-compatible tool

Related Projects


Русский

MCP-сервер для MySQL и MariaDB — предназначен для AI-ассистентов: Claude Code, Cursor, Windsurf, GitHub Copilot и любых MCP-совместимых клиентов.

Один сервер — много баз данных. Подключайте несколько MySQL и MariaDB баз через один MCP-сервер со встроенной защитой от SQL-инъекций, режимом read-only, пулом соединений и горячей перезагрузкой конфигурации.

Преимущества

  • AI-нативный доступ к БД — Claude, Cursor или Copilot напрямую запрашивают ваши MySQL базы
  • Мульти-база — все MySQL-подключения в одном MCP-сервере
  • Безопасность по умолчанию — state-machine парсер SQL-инъекций, read-only транзакции, prepared statements
  • Горячая перезагрузка — меняйте подключения без перезапуска сервера
  • Изоляция по проектам — --label показывает только нужные базы
  • 7 инструментов — запросы, описание таблиц, EXPLAIN, health check и др.
  • Широкая совместимость — MySQL 5.7–9.x, MariaDB 10.x–11.x, AWS RDS, Azure, GCP, PlanetScale

Инструменты

Инструмент Описание
mysql_list_databases Список всех настроенных подключений к БД
mysql_query Выполнение SQL-запросов с read-only и защитой от инъекций
mysql_list_tables Список таблиц: кол-во строк, движок (InnoDB, MyISAM), размер
mysql_describe_table Колонки, типы, индексы, первичные и внешние ключи, ограничения
mysql_list_schemas Список всех баз данных/схем на сервере MySQL
mysql_health_check Проверка соединения, версия MySQL, задержка
mysql_explain EXPLAIN ANALYZE с автоматическим ROLLBACK

Быстрый старт

git clone https://github.com/VKirill/multi-mysql-mcp-server.git
cd multi-mysql-mcp-server
npm install
npm run build

Создайте ~/.mcp-mysql/config.json:

{
  "connections": [
    {
      "label": "local",
      "host": "localhost",
      "port": 3306,
      "user": "dev",
      "password": "devpass123",
      "database": "myapp"
    }
  ]
}

Добавьте в Claude Code (~/.claude.json):

{
  "mcpServers": {
    "mysql": {
      "type": "stdio",
      "command": "node",
      "args": ["путь/до/dist/index.js", "--config", "путь/до/config.json"]
    }
  }
}

Безопасность

  • Защита от SQL-инъекций — state-machine парсер обрабатывает backtick-идентификаторы, # комментарии, \ экранирование
  • Защита от DDL — блокирует CREATE, DROP, ALTER, TRUNCATE
  • Prepared statements — параметры через connection.execute() с ? плейсхолдерами
  • Read-only по умолчанию — SET SESSION TRANSACTION READ ONLY
  • EXPLAIN — всегда в транзакции с ROLLBACK
  • Валидация конфига — Zod-схемы

Совместимость

  • MySQL 5.7, 8.0, 8.4, 9.x | MariaDB 10.x, 11.x
  • AWS RDS, Azure Database for MySQL, Google Cloud SQL, PlanetScale, Aiven
  • Node.js >= 18
  • Claude Code, Cursor, Windsurf, GitHub Copilot, VS Code

中文

MySQL 和 MariaDB 的 MCP 服务器 — 专为 AI 编码助手设计:Claude Code、Cursor、Windsurf、GitHub Copilot 以及任何 MCP 兼容客户端。

一个服务器,多个数据库。 通过单个 MCP 服务器连接多个 MySQL 和 MariaDB 数据库,内置 SQL 注入防护、只读模式、连接池和热重载配置。

优势

  • AI 原生数据库访问 — 让 Claude、Cursor 或 Copilot 直接查询你的 MySQL 数据库
  • 多数据库 — 在一个 MCP 服务器中管理所有 MySQL 连接
  • 默认安全 — 状态机 SQL 注入解析器、只读事务、预处理语句
  • 热重载配置 — 更改连接无需重启服务器
  • 项目隔离 — 使用 --label 仅暴露相关数据库
  • 7 个工具 — 查询、表描述、EXPLAIN、健康检查等
  • 广泛兼容 — MySQL 5.7–9.x、MariaDB 10.x–11.x、AWS RDS、Azure、GCP、PlanetScale

工具列表

工具 说明
mysql_list_databases 列出所有已配置的数据库连接及状态
mysql_query 执行 SQL 查询,强制只读模式并防止 SQL 注入
mysql_list_tables 列出表:行数、存储引擎(InnoDB、MyISAM)、数据大小
mysql_describe_table 显示列、类型、索引、主键、外键和约束
mysql_list_schemas 列出 MySQL 服务器上所有数据库/模式
mysql_health_check 测试连接、MySQL 版本和响应延迟
mysql_explain 执行 EXPLAIN ANALYZE 并自动 ROLLBACK

快速开始

git clone https://github.com/VKirill/multi-mysql-mcp-server.git
cd multi-mysql-mcp-server
npm install
npm run build

创建 ~/.mcp-mysql/config.json:

{
  "connections": [
    {
      "label": "local",
      "host": "localhost",
      "port": 3306,
      "user": "dev",
      "password": "devpass123",
      "database": "myapp"
    }
  ]
}

添加到 Claude Code 配置(~/.claude.json):

{
  "mcpServers": {
    "mysql": {
      "type": "stdio",
      "command": "node",
      "args": ["dist/index.js的路径", "--config", "config.json的路径"]
    }
  }
}

安全性

  • SQL 注入防护 — 状态机解析器处理反引号标识符、# 注释、\ 转义
  • DDL 防护 — 阻止 CREATE、DROP、ALTER、TRUNCATE 语句
  • 预处理语句 — 通过 connection.execute() 使用 ? 占位符
  • 默认只读 — SET SESSION TRANSACTION READ ONLY
  • EXPLAIN 安全 — 始终在事务中执行并 ROLLBACK
  • 配置验证 — Zod 模式验证

兼容性

  • MySQL 5.7、8.0、8.4、9.x | MariaDB 10.x、11.x
  • AWS RDS、Azure Database for MySQL、Google Cloud SQL、PlanetScale、Aiven
  • Node.js >= 18
  • Claude Code、Cursor、Windsurf、GitHub Copilot、VS Code

Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

MIT — see LICENSE for details.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选