Allows interaction with MongoDB databases through direct queries or automatic SQL-to-MongoDB conversion, supporting document searching, bulk operations, and collection management.
Provides tools for managing MySQL databases, enabling SQL and natural language queries, bulk data operations, and schema inspection with built-in safety confirmations for destructive actions.
Enables interaction with PostgreSQL databases to execute queries, list tables, and retrieve table structures, supporting both SQL and natural language inputs.
Facilitates managing SQLite databases by providing tools to execute SQL queries, explore database schemas, and perform bulk data manipulation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SQL MCP Serverfind the 10 most recent orders in the mysql database"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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):
Примечание: Замените 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
PostgreSQL
SQLite
MongoDB
Способ 2: Параметр config_file (путь к файлу)
Укажите путь к файлу конфигурации. Поддерживаются форматы JSON и TXT.
Пример JSON файла (mysql_config.json):
Пример TXT файла (mysql_config.txt):
Использование config_file:
Или с относительным путём:
Примеры запросов
Создание базы данных (MySQL/PostgreSQL)
Или на естественном языке:
Переключение базы данных
Создание таблицы
Bulk INSERT (множественная вставка)
SELECT с условиями
Или на естественном языке:
Bulk UPDATE (множественное обновление)
Bulk DELETE (множественное удаление)
Примеры для MongoDB
Поиск документов
Bulk INSERT (insertMany)
Bulk UPDATE (updateMany)
Bulk DELETE (deleteMany)
findOneAndUpdate
Запросы на естественном языке
SELECT
"Покажи все пользователи"→ SELECT * FROM users"Покажи имя и email из users"→ SELECT name, email FROM users"все сотрудники где возраст больше 30"→ SELECT * FROM сотрудники WHERE возраст > 30"Покажи первые 10 записей из orders"→ SELECT * FROM orders LIMIT 10
INSERT
"Добавь пользователя имя Иван возраст 25"→ INSERT INTO users (имя, возраст) VALUES ('Иван', 25)"Вставь в таблицу orders запись: товар Ноутбук, цена 50000"→ INSERT INTO orders (товар, цена) VALUES ('Ноутбук', 50000)
UPDATE
"Обнови в users где id=5 установи name Пётр"→ UPDATE users SET name='Пётр' WHERE id=5"Измени статус на active где id 10"→ UPDATE ... SET статус='active' WHERE id=10
DELETE
"Удали из users где id=5"→ DELETE FROM users WHERE id=5"Удали все записи из orders где статус cancelled"→ DELETE FROM orders WHERE статус='cancelled'
CREATE/DROP
"Создай таблицу products с колонками: id INT PRIMARY KEY, name VARCHAR(100)"→ CREATE TABLE products (...)"Создай БД new_database"→ CREATE DATABASE new_database"Удали таблицу old_data"→ DROP TABLE old_data
Защита данных
Операции, изменяющие данные, блокируются по умолчанию и требуют явного подтверждения:
UPDATE- изменение данныхDELETE- удаление данныхDROP- удаление таблиц/коллекцийALTER- изменение структуры
Для выполнения этих операций LLM должен:
Получить ответ
"status": "blocked"Спросить пользователя о подтверждении
После подтверждения повторить запрос с
confirm_changes: true
Конвертация SQL в MongoDB
Сервер автоматически конвертирует SQL запросы в MongoDB операции:
SQL запрос | MongoDB эквивалент |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Архитектура
src/main.py: Точка входа MCP сервера, обработка MCP протоколаsrc/db_connector.py: Управление подключениями и делегирование адаптерамsrc/query_parser.py: Парсер запросов на естественном языкеsrc/adapters/: Адаптеры баз данныхsql_adapter.py: SQLite, MySQL, PostgreSQLmongo_adapter.py: MongoDB
Запуск
Прямой запуск
Через MCP клиент
После настройки MCP клиента сервер автоматически обрабатывает запросы.
SQL MCP Server (English)
MCP (Model Context Protocol) server for executing database queries using natural language. Supports SQLite, MySQL, PostgreSQL, and MongoDB.
Features
Natural Language Queries: Write database queries in plain English or Russian
Multiple Database Support: SQLite, MySQL, PostgreSQL, MongoDB
MCP Protocol: Stdio communication with LLM clients
LLM Integration: Includes prompts to help LLM use the server
SQL Operations: SELECT, INSERT, UPDATE, DELETE, ALTER, CREATE DATABASE
Bulk Operations: Multiple INSERT, UPDATE, DELETE in a single query
Schema Inspection: List tables and table structure
Data Protection: UPDATE, DELETE, DROP, and ALTER require explicit user confirmation
Batch Operations: Single confirmation for multiple modifying operations
Installation
Clone the repository:
git clone https://github.com/Processori7/SQL-MCP.git cd SQL-MCPCreate and activate a virtual environment (recommended):
# Windows python -m venv venv venv\Scripts\activate # Linux/macOS python3 -m venv venv source venv/bin/activateInstall dependencies:
pip install -r requirements.txt
MCP Integration
MCP Client Configuration
Add to your MCP client configuration (e.g., cline_mcp_settings.json):
Note: Replace C:\\path\\to\\SQL-MCP with the actual path to the project folder.
Important for Windows: The -X utf8 flag and PYTHONIOENCODING variable ensure proper handling of non-ASCII characters.
Available Tools
1. execute_query
Executes database queries using natural language or SQL.
Parameters:
db_type(required): Database type -'sqlite','mysql','postgresql', or'mongodb'query(required): Natural language query OR SQL/MongoDB querydb_configorconfig_file(one is required): Database connection settingsconfirm_changes(optional): Confirmation for data modification/deletion operations
2. list_tables
Gets a list of all tables or collections in the database.
Parameters:
db_type(required): Database typedb_configorconfig_file(one is required): Database connection settings
3. get_table_schema
Gets the table schema (columns, types, constraints).
Parameters:
db_type(required): Database type (not supported for MongoDB)table_name(required): Table namedb_configorconfig_file(one is required): Database connection settings
Usage Examples
Connection Configuration
There are two ways to specify connection parameters:
Method 1: db_config parameter (JSON object)
MySQL
PostgreSQL
SQLite
MongoDB
Method 2: config_file parameter (path to file)
Specify the path to a configuration file. JSON and TXT formats are supported.
JSON file example (mysql_config.json):
TXT file example (mysql_config.txt):
Using config_file:
Query Examples
Create Database (MySQL/PostgreSQL)
Create Table
Bulk INSERT
SELECT with Conditions
Bulk UPDATE
Bulk DELETE
MongoDB Examples
Find Documents
Bulk INSERT (insertMany)
Bulk UPDATE (updateMany)
Data Protection
Data-modifying operations are blocked by default and require explicit confirmation:
UPDATE- data modificationDELETE- data deletionDROP- table/collection deletionALTER- structure modification
To execute these operations, the LLM must:
Receive a
"status": "blocked"responseAsk the user for confirmation
After confirmation, retry the query with
confirm_changes: true
SQL to MongoDB Conversion
The server automatically converts SQL queries to MongoDB operations:
SQL Query | MongoDB Equivalent |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Architecture
src/main.py: MCP server entry point, MCP protocol handlingsrc/db_connector.py: Connection management and adapter delegationsrc/query_parser.py: Natural language query parsersrc/adapters/: Database adapterssql_adapter.py: SQLite, MySQL, PostgreSQLmongo_adapter.py: MongoDB
Running
Direct Run
Via MCP Client
After configuring the MCP client, the server automatically handles requests.