Natural language and SQL querying for SQLite, MySQL, PostgreSQL, and MongoDB.
SQL MCP Сервер
MCP (Model Context Protocol) сервер для выполнения запросов к базам данных на естественном языке. Поддерживает SQLite, MySQL, PostgreSQL и MongoDB.
Возможности
- Запросы на естественном языке: Пишите запросы к БД на русском языке
- Поддержка нескольких БД: SQLite, MySQL, PostgreSQL, MongoDB
- MCP протокол: Stdio-коммуникация с LLM клиентами
- Интеграция с LLM: Включает промпты для помощи LLM в использовании сервера
- SQL операции: SELECT, INSERT, UPDATE, DELETE, ALTER, CREATE DATABASE
- Bulk операции: Множественные INSERT, UPDATE, DELETE за один запрос
- Просмотр схемы: Список таблиц и структура таблиц
- Защита данных: UPDATE, DELETE, DROP и ALTER требуют явного подтверждения пользователя
- Пакетные операции: Одно подтверждение для нескольких изменяющих операций
Установка
Клонируйте репозиторий:
git clone https://github.com/Processori7/SQL-MCP.git cd SQL-MCPСоздайте и активируйте виртуальное окружение (рекомендуется):
# Windows python -m venv venv venv\Scripts\activate # Linux/macOS python3 -m venv venv source venv/bin/activateУстановите зависимости:
pip install -r requirements.txt
Интеграция с MCP
Настройка MCP клиента
Добавьте в конфигурацию вашего MCP клиента (например, cline_mcp_settings.json):
{
"mcpServers": {
"sql-stdio": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "python",
"args": ["-X", "utf8", "-m", "src.main"],
"env": {
"PYTHONPATH": "C:\\path\\to\\SQL-MCP",
"PYTHONIOENCODING": "utf-8"
}
}
}
}
Примечание: Замените C:\\path\\to\\SQL-MCP на реальный путь к папке проекта.
Важно для Windows: Флаг -X utf8 и переменная PYTHONIOENCODING обеспечивают корректную работу с кириллицей.
Доступные инструменты
1. execute_query
Выполняет запросы к базе данных на естественном языке или SQL.
Параметры:
db_type(обязательный): Тип БД -'sqlite','mysql','postgresql'или'mongodb'query(обязательный): Запрос на русском языке ИЛИ SQL/MongoDB запросdb_configилиconfig_file(один из них обязателен): Настройки подключения к БДconfirm_changes(опциональный): Подтверждение для операций изменения/удаления данных
2. list_tables
Получает список всех таблиц или коллекций в базе данных.
Параметры:
db_type(обязательный): Тип базы данныхdb_configилиconfig_file(один из них обязателен): Настройки подключения к БД
3. get_table_schema
Получает схему таблицы (колонки, типы, ограничения).
Параметры:
db_type(обязательный): Тип БД (не поддерживается для MongoDB)table_name(обязательный): Имя таблицыdb_configилиconfig_file(один из них обязателен): Настройки подключения к БД
Примеры использования
Конфигурации подключения
Есть два способа указать параметры подключения:
Способ 1: Параметр db_config (JSON объект)
MySQL
{
"host": "localhost",
"port": 3306,
"user": "root",
"password": "mypassword",
"database": "mydb"
}
PostgreSQL
{
"host": "localhost",
"port": 5432,
"user": "postgres",
"password": "mypassword",
"dbname": "mydb"
}
SQLite
{
"db_name": "mydata.db"
}
MongoDB
{
"uri": "mongodb://localhost:27017",
"database_name": "mydb"
}
Способ 2: Параметр config_file (путь к файлу)
Укажите путь к файлу конфигурации. Поддерживаются форматы JSON и TXT.
Пример JSON файла (mysql_config.json):
{
"host": "localhost",
"port": 3306,
"user": "root",
"password": "mypassword",
"database": "mydb"
}
Пример TXT файла (mysql_config.txt):
# Конфигурация MySQL
host=localhost
port=3306
user=root
password=mypassword
database=mydb
Использование config_file:
{
"db_type": "mysql",
"query": "SELECT * FROM users",
"config_file": "C:/configs/mysql_config.json"
}
Или с относительным путём:
{
"db_type": "mysql",
"query": "SHOW TABLES",
"config_file": "mysql_config.txt"
}
Примеры запросов
Создание базы данных (MySQL/PostgreSQL)
{
"db_type": "mysql",
"query": "CREATE DATABASE my_new_db",
"db_config": {"host": "localhost", "port": 3306, "user": "root", "password": ""}
}
Или на естественном языке:
{
"db_type": "mysql",
"query": "Создай БД my_new_db",
"db_config": {"host": "localhost", "port": 3306, "user": "root", "password": ""}
}
Переключение базы данных
{
"db_type": "mysql",
"query": "USE my_new_db",
"db_config": {"host": "localhost", "port": 3306, "user": "root", "password": "", "database": "my_new_db"}
}
Создание таблицы
{
"db_type": "mysql",
"query": "CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100), age INT)",
"db_config
Tools (3)
execute_queryExecutes queries against a database using natural language or SQL/MongoDB syntax.list_tablesRetrieves a list of all tables or collections in the database.get_table_schemaRetrieves the schema of a specific table including columns, types, and constraints.Environment Variables
PYTHONPATHrequiredPath to the SQL-MCP project directoryPYTHONIOENCODINGEncoding setting, recommended as utf-8 for Windows compatibilityConfiguration
{"mcpServers": {"sql-stdio": {"disabled": false, "timeout": 60, "type": "stdio", "command": "python", "args": ["-X", "utf8", "-m", "src.main"], "env": {"PYTHONPATH": "C:\\path\\to\\SQL-MCP", "PYTHONIOENCODING": "utf-8"}}}}