MySQL MCP Server Pro
mysql_mcp_server_pro
MCP-сервер для MySQL: выполняет SQL с ролями доступа, ищет таблицы по комментариям и разбирает блокировки, индексы и планы запросов
- 249 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Роль `writer` пропускает `INSERT`, `UPDATE` и `DELETE`; `admin` также пропускает `DROP` и `TRUNCATE`, если это разрешено учетной записи MySQL
- Пароль базы хранится в переменных окружения или файле `.env`
- В режиме HTTP сервер по умолчанию слушает `0.0.0.0`, а проверка OAuth выключена
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add mcp/mysql-mcp-server-proОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Роль `writer` пропускает `INSERT`, `UPDATE` и `DELETE`; `admin` также пропускает `DROP` и `TRUNCATE`, если это разрешено учетной записи MySQL
- Пароль базы хранится в переменных окружения или файле `.env`
- В режиме HTTP сервер по умолчанию слушает `0.0.0.0`, а проверка OAuth выключена
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Сервер дает агенту инструменты для работы с MySQL через MCP. Он выполняет SQL, показывает схему и помогает исследовать медленные запросы. Строку из нескольких выражений сервер делит по точке с запятой и выполняет части последовательно; общей атомарной транзакции для них не обещает. Кроме выполнения запросов, сервер помогает разбираться в базе. `get_table_name` ищет таблицы по их комментариям и описаниям, `get_table_desc` и `get_table_index` показывают структуру и индексы сразу для нескольких таблиц, `get_table_lock` находит блокировки строк и таблиц. `get_db_health_running` оценивает соединения, транзакции и блокировки, а `get_db_health_index_usage` ищет лишние и слабые индексы. `optimize_sql` дает советы по оптимизации на основе плана выполнения, структуры, объема данных и индексов. Есть и `get_chinese_initials` для перевода китайских названий полей в инициалы пиньинь. Встроены шаблоны промптов для анализа проблем MySQL и запросов данных. Новые инструменты добавляют классом-наследником `BaseHandler` в пакете `handles`. Для доступа по HTTP можно включить OAuth 2.0.
Для кого. Для разработчиков и администраторов баз данных, которые просят Claude Code, Cursor или Cline разобраться в схеме MySQL, найти узкое место в запросе или причину блокировки.
Подходит, если
- Нужно найти таблицу по комментарию, когда таблицы называют аббревиатурами: так работает `get_table_name`
- Нужны план выполнения, состояние индексов и рекомендации для тормозящего запроса: этим занимается `optimize_sql`
- Нужно найти блокировку на уровне строки или таблицы, из-за которой завис `UPDATE`, через `get_table_lock`
- Нужен обзор здоровья базы: соединения, транзакции, блокировки и неиспользуемые индексы
- На тестовой базе нужно проверить схему и записанные данные с заранее ограниченными правами пользователя MySQL
Не подходит, если
- Нужна другая СУБД: PostgreSQL, SQLite и другие здесь не поддерживаются
- Нужно технически исключить запись, но учетная запись MySQL имеет широкие права: одной роли `readonly` приложения недостаточно
- Нужен публично открытый сервер: описана защита только OAuth 2.0 с встроенным паролем из файла окружения
- Сервер нужен в продуктиве без ограничений по сети: учетные данные базы лежат в переменных окружения
- Нужна версия с регулярными обновлениями: проект давно не развивается
Пример запроса к агенту
Через MySQL MCP проверь текущее здоровье базы и найди блокировки, а потом предложи оптимизацию для моего запроса с join по двум таблицамMCP
- Транспорт
- stdio, http, sse
- Авторизация
- не нужна
Переменные окружения
MYSQL_HOSTобязательная- Адрес сервера MySQL
MYSQL_PORT- Порт MySQL, обычно 3306
MYSQL_USERобязательная- Пользователь базы
MYSQL_PASSWORDобязательная, секрет- Пароль пользователя базы
MYSQL_DATABASEобязательная- Имя базы данных
MYSQL_ROLE- Роль доступа: readonly, writer или admin, по умолчанию readonly
Ограничения
Нужен Python 3.11 или новее. Роли `readonly`, `writer` и `admin` фильтруют запросы внутри приложения по ключевым словам. Это не полноценный SQL-парсер: права чтения нужно отдельно ограничить через учетную запись MySQL. Изменения данных сервер фиксирует автоматически. Проект давно не обновлялся: последний коммит в репозитории — август 2025.
Без явного режима `stdio` сервер запускает HTTP на всех сетевых интерфейсах, а OAuth по умолчанию выключен. Для первого подключения используйте локальную конфигурацию из раздела установки. При отдельной сетевой настройке замените встроенные значения секретов авторизации. SQL и ответы попадают в контекст модели; журнал ошибок может содержать полный текст запроса.
Как отключить. Удалите блок `mysql` или `mysql_mcp_server_pro` из `mcpServers` в конфигурации клиента и перезапустите клиент. Установленный пакет снимает `pip uninstall mysql_mcp_server_pro`, а лишние права у пользователя MySQL отзовите на стороне базы.
Частые вопросы
Как подключить MySQL MCP Server Pro к Claude Code или Cursor?
Запуск без клонирования: команда `uvx`, аргументы `--from mysql_mcp_server_pro mysql_mcp_server_pro --mode stdio` и переменные `MYSQL_*` в блоке `env` конфигурации клиента. Либо поставьте пакет командой `pip install mysql_mcp_server_pro` и запустите `mysql_mcp_server_pro --mode stdio --envfile /путь/к/.env`, указав свой файл окружения.
Какие права дают роли readonly, writer и admin?
`readonly`: `SELECT`, `SHOW`, `DESCRIBE` и `EXPLAIN`. `writer`: то же плюс `INSERT`, `UPDATE` и `DELETE`. `admin`: еще `CREATE`, `ALTER`, `DROP` и `TRUNCATE`. Роль задается переменной `MYSQL_ROLE`, по умолчанию действует `readonly`.
Как найти таблицу по комментарию?
Агент вызывает `get_table_name` с описанием, и сервер ищет таблицы по их комментариям и описаниям. Это удобно, когда имена таблиц заданы кодами, как в базах с аббревиатурами.
Можно ли сразу открыть HTTP-сервер наружу?
Нет. Сетевой режим требует отдельной настройки авторизации, секретов и доступа к порту. Стандартное подключение из раздела установки использует `stdio`, чтобы не открывать сетевой слушатель.
Как добавить свой инструмент?
Создайте класс в пакете `handles`, унаследуйте его от `BaseHandler` и реализуйте `get_tool_description` и `run_tool`, затем импортируйте класс в `__init__.py`, чтобы сервер его подхватил.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер на Python для работы с MySQL: список таблиц, чтение данных, выполнение SQL и разбор схемы через контролируемый интерфейс
MCP-сервер для доступа агента к MySQL: чтение схемы и запросы, по умолчанию только на чтение, запись включается флагами
Один бинарник MCP-сервера для MySQL, MariaDB, PostgreSQL и SQLite: запросы только на чтение по умолчанию и маскировка ПДн
Один MCP-сервер для SQLite, SQL Server, PostgreSQL и MySQL: агент читает и меняет данные, правит схему и выгружает CSV и JSON
SQL-движок на SQLite с плагинами для приложений, баз и файлов: команда anyquery mcp открывает эти данные Claude, Cursor и другим клиентам MCP
Официальный MCP-сервер MongoDB: запросы и агрегации к базам, управление индексами, кластерами Atlas и локальными развертываниями
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| MySQL MCP Server Pro (эта карточка) | нет | не нужна | 249 | |
| MySQL MCP Server | нет | не нужна | 1 408 | базовый MCP-сервер на Python для MySQL: таблицы, чтение данных и SQL, без разбора блокировок и индексов |
| MCP Server for MySQL | нет | не нужна | 2 209 | по умолчанию только чтение, запись включается флагами, у этого сервера роли и инструменты анализа |
Коротко о README
Проект распространяется по MIT, текущий опубликованный пакет имеет версию 0.2.1. Инструменты можно расширять собственными обработчиками; для этого нужен код на Python.