Skip to main content
ClaudeWave
gistrec avatar
gistrec

mcp-mysql-client

Ver en GitHub

MCP server for one MySQL database — schema inspection, read-only queries and guarded writes for AI agents.

MCP ServersRegistry oficial0 estrellas0 forksTypeScriptMITActualizado today
ClaudeWave Trust Score
87/100
Trusted
Passed
  • Open-source license (MIT)
  • Actively maintained (<30d)
  • Clear description
  • Documented (README)
Last scanned: 8/23/2026
Install in Claude Code / Claude Desktop
Method: NPX · mcp-mysql-client
Claude Code CLI
claude mcp add mcp-mysql-client -- npx -y mcp-mysql-client
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "mcp-mysql-client": {
      "command": "npx",
      "args": ["-y", "mcp-mysql-client"],
      "env": {
        "MYSQL_HOST": "<mysql_host>"
      }
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Detected environment variables
MYSQL_HOST
Casos de uso

Resumen de MCP Servers

# MySQL MCP

[![npm](https://img.shields.io/npm/v/mcp-mysql-client)](https://www.npmjs.com/package/mcp-mysql-client)
[![CI](https://github.com/gistrec/mcp-mysql-client/actions/workflows/ci.yml/badge.svg)](https://github.com/gistrec/mcp-mysql-client/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)

**MySQL MCP** подключает AI-приложение к одной базе MySQL или MariaDB: посмотреть структуру, задать вопрос данным на естественном языке, разобраться в медленном запросе — и, если вы сами это разрешили, изменить данные.

Сервер привязан к одной базе: она задана конфигурацией, и ни один инструмент не может уйти в другую. По умолчанию доступно только чтение.

- **6 инструментов.** Подключение и права, список таблиц, структура таблицы, читающий запрос, план запроса, изменяющий запрос.
- **Тип запроса определяет сервер.** SQL разбирается до подключения: `DELETE` в читающем инструменте будет отклонён, даже если права на запись включены.
- **Чтение не может писать.** Читающие запросы идут внутри `START TRANSACTION READ ONLY` — запись отклонит сама MySQL, даже если разбор SQL кто-то обманет.
- **Ответ не переполнит контекст.** Строки читаются потоком и обрываются на лимите, а не выкачиваются целиком; в ответе честный признак `truncated`.
- **Права только снаружи.** INSERT, UPDATE и DELETE включаются переменными окружения и требуют перезапуска — из диалога их получить нельзя. DDL недоступен всегда.

Начните с запроса, который только читает данные:

> Покажи структуру базы и посчитай, сколько записей появилось за последнюю неделю.

---

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

Claude Code:

```bash
claude mcp add mysql-myapp \
  -e MYSQL_HOST=db.example.com \
  -e MYSQL_USER=myapp_ro \
  -e MYSQL_PASS='пароль' \
  -e MYSQL_DB=myapp \
  -e MYSQL_SSL=true \
  -- npx -y mcp-mysql-client
```

Или в `.mcp.json` / `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "mysql-myapp": {
      "command": "npx",
      "args": ["-y", "mcp-mysql-client"],
      "env": {
        "MYSQL_HOST": "db.example.com",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "myapp_ro",
        "MYSQL_PASS": "пароль",
        "MYSQL_DB": "myapp",
        "MYSQL_SSL": "true"
      }
    }
  }
}
```

Один сервер — одна база. Нужно несколько баз: добавьте несколько записей со своими учётными данными; так права остаются изолированными, и сервер, подключённый к тестовой базе, физически не видит боевую.

## Что можно поручить

| Запрос | Что делает сервер |
| --- | --- |
| «Что вообще есть в этой базе?» | `list_tables` — таблицы, размеры, оценки числа строк |
| «Как устроена таблица orders?» | `describe_table` — столбцы, индексы, внешние ключи в обе стороны |
| «Сколько заказов за июль и на какую сумму?» | `query` — SELECT с агрегацией |
| «Почему этот запрос медленный?» | `explain` — план, индексы, оценка строк |
| «Под кем я подключён и что мне можно?» | `server_info` — база, пользователь, GRANT, лимиты сервера |
| «Проставь статус отменённым заказам» | `execute` — только при `ALLOW_UPDATE_OPERATION=true` |

## Что может измениться

По умолчанию — ничего: сервер стартует в режиме только чтения. Запись включается по одной операции:

```json
"ALLOW_INSERT_OPERATION": "true",
"ALLOW_UPDATE_OPERATION": "true",
"ALLOW_DELETE_OPERATION": "false"
```

Что при этом остаётся невозможным:

- **DDL** — `CREATE`, `ALTER`, `DROP`, `TRUNCATE`, `RENAME` — ни при каких настройках.
- **Смена базы, `SET`, `CALL`, `PREPARE`, `LOAD DATA`, блокировки, `GRANT`** и прочее, что меняет смысл следующего запроса или выполняет непроверенный текст.
- **`SELECT ... INTO OUTFILE`** — запись файла на сервер базы.
- **`UPDATE` и `DELETE` без `WHERE`** — требуют явного подтверждения `allow_full_table=true` в вызове.
- **Несколько инструкций в одном вызове** — выполняется ровно одна.

Права MySQL — отдельное ограничение поверх этого. Разрешение `ALLOW_UPDATE_OPERATION` ничего не добавляет пользователю, у которого нет `GRANT UPDATE`. Рабочая практика: отдельный пользователь с минимальными правами, а не `root`.

## Переменные окружения

| Переменная | По умолчанию | Назначение |
| --- | --- | --- |
| `MYSQL_HOST` | `127.0.0.1` | Хост сервера |
| `MYSQL_PORT` | `3306` | Порт |
| `MYSQL_SOCKET_PATH` | — | Unix-сокет вместо host/port |
| `MYSQL_USER` | — | Пользователь (обязательно) |
| `MYSQL_PASS` | — | Пароль (синоним `MYSQL_PASSWORD`) |
| `MYSQL_PASS_FILE` | — | Прочитать пароль из файла вместо переменной |
| `MYSQL_DB` | — | База данных (обязательно, синоним `MYSQL_DATABASE`) |
| `MYSQL_SSL` | `false` | Требовать TLS |
| `MYSQL_SSL_CA` | — | Путь к корневому сертификату; сам по себе включает TLS |
| `MYSQL_SSL_REJECT_UNAUTHORIZED` | `true` | Проверять сертификат сервера |
| `ALLOW_INSERT_OPERATION` | `false` | Разрешить INSERT |
| `ALLOW_UPDATE_OPERATION` | `false` | Разрешить UPDATE |
| `ALLOW_DELETE_OPERATION` | `false` | Разрешить DELETE |
| `MYSQL_MAX_ROWS` | `1000` | Потолок строк в одном ответе |
| `MYSQL_TIMEOUT_MS` | `30000` | Таймаут запроса |
| `MYSQL_CONNECT_TIMEOUT_MS` | `10000` | Таймаут подключения |
| `MYSQL_POOL_SIZE` | `3` | Соединений в пуле |
| `MYSQL_MAX_RETRIES` | `2` | Повторы при обрыве связи и взаимных блокировках |
| `MYSQL_READ_ONLY_TX` | `true` | Выполнять чтение в read-only транзакции |
| `ASKADS_TELEMETRY` | — | `0` отключает анонимную статистику запусков |

Пароль в конфигурации MCP-клиента лежит открытым текстом. `MYSQL_PASS_FILE` позволяет держать его в файле с нужными правами.

## Переход с `@benborla29/mcp-server-mysql`

Имена переменных совпадают, поэтому достаточно заменить пакет в команде запуска:

```diff
-  "args": ["-y", "@benborla29/mcp-server-mysql"]
+  "args": ["-y", "mcp-mysql-client"]
```

Что изменится в поведении:

- `MYSQL_DB` обязателен — сервер всегда привязан к одной базе;
- ответы ограничены `MYSQL_MAX_ROWS` и помечаются `truncated`;
- DDL недоступен даже при включённых правах на запись;
- `UPDATE`/`DELETE` без `WHERE` требуют подтверждения в вызове;
- набор инструментов другой: `query`, `execute`, `explain`, `list_tables`, `describe_table`, `server_info`.

## Диагностика

Первым делом — `server_info`: он покажет, к чему подключён сервер, какие права у пользователя MySQL и какие ограничения включены.

| Симптом | Причина |
| --- | --- |
| `errno 1045` | Неверные `MYSQL_USER` / `MYSQL_PASS` |
| `errno 1044` | Пользователь есть, прав на базу нет |
| `errno 1142` | Не хватает `GRANT` на операцию или таблицу — `ALLOW_*` тут не поможет |
| `errno 3159` | Сервер требует TLS: `MYSQL_SSL=true` |
| `ECONNREFUSED` / `ETIMEDOUT` | Хост, порт, файрвол или неподнятый VPN |
| `ER_NOT_SUPPORTED_AUTH_MODE` | Нужен TLS для `caching_sha2_password` |
| Сервер не подключается | Ошибка конфигурации видна прямо в диалоге: сервер стартует даже без учётных данных и объясняет, чего не хватает |

## Техническая документация

- [Инструменты](docs/TOOLS.md) — параметры и ответы
- [Разработка](docs/DEVELOPMENT.md) — сборка, тесты, живая проверка
- [Публикация](docs/PUBLISHING.md) — релиз в npm и MCP-реестр
- [CLAUDE.md](CLAUDE.md) — устройство репозитория для AI-агентов

## Лицензия

[MIT](./LICENSE)

Lo que la gente pregunta sobre mcp-mysql-client

¿Qué es gistrec/mcp-mysql-client?

+

gistrec/mcp-mysql-client es mcp servers para el ecosistema de Claude AI. MCP server for one MySQL database — schema inspection, read-only queries and guarded writes for AI agents. Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-08-23.

¿Cómo se instala mcp-mysql-client?

+

Puedes instalar mcp-mysql-client clonando el repositorio (https://github.com/gistrec/mcp-mysql-client) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar gistrec/mcp-mysql-client?

+

Nuestro agente de seguridad ha analizado gistrec/mcp-mysql-client y le ha asignado un Trust Score de 87/100 (tier: Trusted). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene gistrec/mcp-mysql-client?

+

gistrec/mcp-mysql-client es mantenido por gistrec. La última actividad registrada en GitHub es del 2026-08-23, con 0 issues abiertos.

¿Hay alternativas a mcp-mysql-client?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega mcp-mysql-client en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: gistrec/mcp-mysql-client
[![Featured on ClaudeWave](https://claudewave.com/api/badge/gistrec-mcp-mysql-client)](https://claudewave.com/repo/gistrec-mcp-mysql-client)
<a href="https://claudewave.com/repo/gistrec-mcp-mysql-client"><img src="https://claudewave.com/api/badge/gistrec-mcp-mysql-client" alt="Featured on ClaudeWave: gistrec/mcp-mysql-client" width="320" height="64" /></a>

Más MCP Servers

Alternativas a mcp-mysql-client