Skip to main content
Glama
chenkumi

easy-mysql-mcp

by chenkumi

easy-mysql-mcp

Легковесный сервер Model Context Protocol (MCP), который позволяет ИИ-ассистентам проверять и запрашивать базу данных MySQL через безопасный структурированный интерфейс инструментов.

Этот проект использует Node.js, TypeScript, официальный SDK MCP и mysql2/promise. Он работает через stdio, поэтому его можно напрямую использовать в MCP-клиентах, таких как Claude Desktop.

Функции

  • Пул соединений MySQL на базе mysql2/promise

  • Инструмент для выполнения запросов только для чтения для получения данных

  • Инструмент выполнения для операторов изменения данных

  • Инструменты обнаружения схемы для таблиц, представлений, индексов и триггеров

  • Проверка плана выполнения запроса с помощью EXPLAIN

  • Проверка текущего пользователя и привилегий

  • Защита stdout для предотвращения засорения протокола stdio логами, не относящимися к MCP

Требования

  • Node.js 18 или новее

  • npm

  • Доступная база данных, совместимая с MySQL

Установка

Запустите сервер напрямую с помощью npx:

npx -y easy-mysql-mcp

Для локальной разработки после клонирования репозитория:

cd easy-mysql-mcp
npm install
npm run build

Конфигурация

Настройте сервер с помощью переменных окружения. Вы можете предоставить их через конфигурацию вашего MCP-клиента или создав локальный файл .env.

Переменная

Обязательно

По умолчанию

Описание

MYSQL_HOST

Да

-

Имя хоста или IP-адрес MySQL

MYSQL_PORT

Нет

3306

Порт MySQL

MYSQL_USER

Да

-

Имя пользователя MySQL

MYSQL_PASSWORD

Да

-

Пароль MySQL

MYSQL_DATABASE

Да

-

База данных/схема по умолчанию

MYSQL_CONNECTION_LIMIT

Нет

10

Максимальное количество активных соединений в пуле

MYSQL_MAX_IDLE

Нет

10

Максимальное количество простаивающих соединений в пуле

MYSQL_IDLE_TIMEOUT

Нет

60000

Тайм-аут простаивающего соединения в миллисекундах

MYSQL_QUEUE_LIMIT

Нет

0

Максимальное количество запросов на соединение в очереди, где 0 означает без ограничений

MYSQL_WAIT_FOR_CONNECTIONS

Нет

true

Ожидает ли пул, когда все соединения заняты

MYSQL_ENABLE_KEEP_ALIVE

Нет

true

Включен ли TCP keep-alive

MYSQL_KEEP_ALIVE_INITIAL_DELAY

Нет

0

Начальная задержка TCP keep-alive в миллисекундах

Пример .env:

MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database

Использование

Настройте ваш MCP-клиент для запуска пакета через npx.

Для локальной разработки сначала соберите исходный код TypeScript:

npm run build

Запустите MCP-сервер:

npm start

Сервер обменивается данными через stdio и обычно запускается MCP-клиентом, а не вручную.

Пример для Claude Desktop

Добавьте сервер в ваш claude_desktop_config.json:

{
  "mcpServers": {
    "easy-mysql-mcp": {
      "command": "npx",
      "args": ["-y", "easy-mysql-mcp"],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "root",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "your_database"
      }
    }
  }
}

Перезапустите Claude Desktop после обновления конфигурации.

Доступные инструменты

Инструмент

Описание

mysql_query

Выполнение SQL-запроса, предназначенного для получения данных, например SELECT

mysql_execute

Выполнение оператора изменения данных, например INSERT, UPDATE или DELETE

explain_query

Запуск EXPLAIN для SQL-запроса и возврат плана выполнения

list_tables

Список базовых таблиц в текущей базе данных, включая приблизительное количество строк и комментарии

list_views

Список представлений в текущей базе данных

describe_table

Показать информацию о столбцах для одной или нескольких таблиц

describe_index

Показать индексы для таблицы

list_triggers

Список триггеров в текущей базе данных

get_current_privileges

Показать текущего пользователя MySQL и его права

Примечания по безопасности

  • Используйте выделенного пользователя MySQL с минимальными правами, необходимыми вашему ассистенту.

  • Отдавайте предпочтение учетным данным базы данных только для чтения, если вам нужна только проверка и отчетность.

  • Будьте осторожны с mysql_execute, так как это может изменить данные.

  • Не добавляйте файлы .env или реальные учетные данные базы данных в GitHub.

  • Проверяйте сгенерированный SQL перед запуском на производственных данных.

Разработка

npm run dev

Это запускает TypeScript в режиме наблюдения.

Для создания производственной сборки:

npm run build

Структура проекта

src/
  db.ts       MySQL pool and query helpers
  index.ts    MCP server and tool registration
  proxy.ts    stdout protection for stdio-based MCP transport

Лицензия

ISC

Install Server
F
license - not found
A
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chenkumi/easy-mysql-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server