mcp-database-universal
MCP Database Server
Интерфейс рассуждений для баз данных для ИИ-агентов, поддерживающих MCP — не тонкая обёртка над SQL.
mcp-database-universal предоставляет ИИ-агентам набор из 7 инструментов рассуждений для безопасного исследования и запросов к базе данных, понимания её схемы и структуры данных, выполнения вопросов на естественном языке и визуализации связей — всё без раскрытия внутренних деталей подключения.
Возможности
7 инструментов рассуждений, предназначенных для ИИ-агентов: проверка подключения, список таблиц, просмотр таблицы, выполнение параметризованных SQL-запросов, вопросы на естественном языке, профилирование данных и построение ER-диаграммы.
Мультидвижок: SQLite (встроенный) плюс опционально PostgreSQL, MySQL и MSSQL.
Безопасность прежде всего: только чтение по умолчанию, параметризованные запросы, проверка операторов, ограничения по строкам/времени/объёму вывода.
Вывод, удобный для LLM: типы переведены,
NULLобработаны, результаты отформатированы в Markdown-таблицах с контекстом.Интроспекция схемы: автоматическое обнаружение таблиц, столбцов, индексов, внешних ключей и связей.
Запросы на естественном языке: перевод вопросов на обычном языке в SQL и возврат результатов.
Related MCP server: database-explorer-mcp
Поддерживаемые движки
Движок | Требование | Дополнительная установка |
SQLite | встроенный | — |
PostgreSQL | psycopg |
|
MySQL | PyMySQL |
|
MSSQL | pyodbc + ODBC-драйвер |
|
все | — |
|
Установка
pip install mcp-database-universal
# With optional engines:
pip install "mcp-database-universal[postgres]"
pip install "mcp-database-universal[mysql]"
pip install "mcp-database-universal[mssql]"
# or everything:
pip install "mcp-database-universal[all]"Быстрый старт
Запустите сервер через STDIO (транспорт по умолчанию для MCP-клиентов):
DATABASE_URL=sqlite:///app.db python -m mcp_database_universalURL-адреса подключения:
sqlite:///path/to/db.db SQLite (file)
sqlite:///:memory: SQLite (in-memory)
postgresql://user:pass@host:5432/db PostgreSQL
mysql://user:pass@host:3306/db MySQL
mssql://user:pass@host:1433/db MSSQL (uses ODBC Driver 18)Docker
docker build -t mcp-db .
# Mount a SQLite database read-only:
docker run --rm -i \
-v /host/path/app.db:/data/app.db:ro \
-e DATABASE_URL=sqlite:////data/app.db \
mcp-db
# Or in-memory:
docker run --rm -i -e DATABASE_URL=sqlite:///:memory: mcp-dbКонфигурация
Вся конфигурация выполняется через переменные окружения.
Переменная | По умолчанию | Описание |
| (обязательно) | URL-адрес подключения к базе данных. |
|
| Принудительный режим только для чтения (блокирует запись, даже если |
|
| Разрешить записывающие операторы, когда |
|
| Максимальное количество строк, возвращаемых за запрос. |
|
| Таймаут запроса в секундах. |
|
| Ограничение размера полезной нагрузки результата. |
|
| Количество примеров строк, показываемых в статистике таблиц/столбцов. |
|
| Top-N распределение значений в профилировании. |
| — | API-ключ для режима |
| — | API-ключ для режима |
Инструменты
Инструмент | Описание |
| Проверка подключения к БД; сообщает движок, версию, имя, размер, количество таблиц. |
| Обзор всех таблиц с количеством строк, столбцов, связями внешних ключей. |
| Полная структура одной таблицы: столбцы, типы, индексы, внешние ключи, примеры данных. |
| Выполнение безопасного параметризованного SQL-запроса и получение результатов в Markdown. |
| Вопрос на естественном языке; получение сгенерированного SQL и результатов. |
| Профиль данных: распределения, доля NULL, связи, размеры. |
| Mermaid ER-диаграмма связей таблиц. |
Пример: query с параметрами
{
"sql": "SELECT * FROM users WHERE id = :id AND active = :active",
"params": "{\"id\": 42, \"active\": true}"
}Параметры используют плейсхолдеры :name; передайте значения в виде JSON-строки в params.
Пример: natural_query
question: "How many users are there?"
-> SELECT COUNT(*) FROM users
question: "Show me all orders"
-> SELECT * FROM orders LIMIT 100Рабочий пример на небольшой демонстрационной базе данных находится в examples/ вместе с готовыми фрагментами конфигурации для распространённых MCP-клиентов.
Конфигурация MCP-клиента
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"database": {
"command": "python",
"args": ["-m", "mcp_database_universal"],
"env": {"DATABASE_URL": "sqlite:///C:/data/app.db"}
}
}
}Cursor / другие клиенты на основе CLI
{
"mcpServers": {
"database": {
"command": "uvx",
"args": ["mcp-database-universal"],
"env": {"DATABASE_URL": "sqlite:///C:/data/app.db"}
}
}
}Примечание для Windows: асинхронный драйвер Postgres требует цикла событий Windows selector. Пакет автоматически устанавливает эту политику на
win32, поэтому дополнительная настройка не требуется.
Разработка
pip install -e ".[dev]"
pytestИнтеграционные тесты для PostgreSQL/MySQL используют Docker Compose и автоматически пропускаются, если серверы недоступны:
docker compose -f tests/integration/docker-compose.yml up -d
pytestМодель безопасности
Сервер по умолчанию только для чтения; операторы
INSERT/UPDATE/DELETE/DROP/ALTERи другие записывающие операторы блокируются.Запись возможна только когда оператор явно задаёт
DATABASE_READ_ONLY=falseиDATABASE_WRITE_ENABLED=true.Результаты запросов ограничены количеством строк, таймаутом и размером вывода — предотвращаются неконтролируемые запросы.
Лицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
- OleanderOAuthdev.oleander
The all-in-one data stack for agents. Upload files, run SQL, evolve tables, and render charts.
Query Postgres, MySQL, SQL Server, Oracle, BigQuery, ClickHouse and Redshift from your AI client.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceConnect AI agents to SQL databases (SQLite, PostgreSQL, MySQL) with a unified interface for querying data, exploring schemas, inserting rows, and exporting results to CSV. Includes safety features like dangerous query blocking and write guards.5 npm40 PyPIMIT
- AlicenseAqualityDmaintenanceEnables AI assistants to connect to and interact with PostgreSQL, MySQL, SQLite, and MongoDB databases through natural language, supporting schema exploration, query execution, data export, and more.13MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with PostgreSQL or MySQL databases using natural language. Supports SQL queries, schema discovery, and pre-built aggregations without writing SQL.139 npmMIT
- AlicenseAqualityDmaintenanceEnables AI agents to securely query databases (PostgreSQL, SQLite, MySQL, DuckDB) with read-only defaults and multi-layer SQL injection prevention.81MIT