Многобазовый сервер MCP (от Legion AI)
Сервер, который помогает людям получать доступ к данным в базах данных и выполнять запросы с помощью Legion Query Runner с интеграцией Model Context Protocol (MCP) Python SDK.
Начните генерацию здесь
Этот инструмент предоставлен Legion AI . Чтобы использовать полноценный и мощный инструмент аналитики данных AI, посетите сайт. Напишите нам, если вы хотите, чтобы мы поддерживали какую-то одну базу данных.
Конец поколения здесь
Почему стоит выбрать базу данных MCP
Database MCP выделяется среди других решений для доступа к базам данных по нескольким веским причинам:
Унифицированный интерфейс для работы с несколькими базами данных : подключайтесь к PostgreSQL, MySQL, SQL Server и другим базам данных через единый согласованный API — нет необходимости изучать различные клиентские библиотеки для каждого типа базы данных.
Интеграция с поддержкой искусственного интеллекта : разработан специально для взаимодействия с помощниками на базе искусственного интеллекта через протокол контекста модели (MCP), позволяющий выполнять операции с базами данных на естественном языке.
Обнаружение схемы с нулевой конфигурацией : автоматически обнаруживает и предоставляет схемы базы данных без ручной настройки или сопоставления.
Инструменты, не зависящие от базы данных : находите таблицы, исследуйте схемы и выполняйте запросы с помощью одного и того же набора инструментов независимо от базовой технологии базы данных.
Безопасное управление учетными данными : обеспечивает безопасную обработку данных аутентификации базы данных, отделяя учетные данные от кода приложения.
Простое развертывание : работает с современными средами разработки ИИ, такими как LangChain, FastAPI и другими, с минимальной настройкой.
Расширяемый дизайн : легко добавляйте пользовательские инструменты и подсказки для улучшения функциональности в конкретных случаях использования.
Независимо от того, создаете ли вы ИИ-агенты, которым необходим доступ к базе данных, или просто хотите унифицированный интерфейс для нескольких баз данных, Database MCP предоставляет оптимизированное решение, которое значительно сокращает время разработки и сложность.
Related MCP server: MySQL MCP Server
Функции
Поддержка нескольких баз данных — одновременное подключение к нескольким базам данных
Доступ к базе данных через Legion Query Runner
Поддержка протокола контекста модели (MCP) для помощников на основе искусственного интеллекта
Раскройте операции с базой данных как ресурсы, инструменты и подсказки MCP
Несколько вариантов развертывания (автономный сервер MCP, интеграция FastAPI)
Выполнение запроса и обработка результатов
Гибкая настройка с помощью переменных среды, аргументов командной строки или настроек MCP JSON
Выбор базы данных пользователем для многобазовых настроек
Поддерживаемые базы данных
База данных | Код DB_TYPE |
PostgreSQL | стр. |
Красное смещение | красное смещение |
CockroachDB | таракан |
MySQL | mysql |
RDS MySQL | rds_mysql |
Microsoft SQL-сервер | mssql |
Большой запрос | bigquery |
Oracle БД | оракул |
SQLite | sqlite |
Мы используем библиотеку Legion Query Runner в качестве коннекторов. Вы можете найти больше информации в их api doc .
Что такое МКП?
Model Context Protocol (MCP) — это спецификация для поддержания контекста в приложениях ИИ. Этот сервер использует MCP Python SDK для:
Использовать операции с базами данных в качестве инструментов для помощников на основе искусственного интеллекта
Предоставить схемы баз данных и метаданные в качестве ресурсов
Генерировать полезные подсказки для операций с базой данных
Включить взаимодействие с базами данных с отслеживанием состояния
Установка и настройка
Требуемые параметры
Для конфигурации с одной базой данных:
DB_TYPE : Код типа базы данных (см. таблицу выше)
DB_CONFIG : строка конфигурации JSON для подключения к базе данных
Для конфигурации с несколькими базами данных:
DB_CONFIGS : JSON-массив конфигураций базы данных, каждая из которых содержит:
db_type : Код типа базы данных
конфигурация : Конфигурация подключения к базе данных
описание : понятное для человека описание базы данных
Формат конфигурации зависит от типа базы данных. Подробности конфигурации для конкретной базы данных см. в документации API.
Методы установки
Вариант 1: Использование УФ (рекомендуется)
При использовании uv , не требуется специальной установки. Мы будем использовать uvx для прямого запуска database-mcp .
Пример конфигурации UV (одна база данных):
REPLACE DB_TYPE and DB_CONFIG with your connection info.
{
"mcpServers": {
"database-mcp": {
"command": "uvx",
"args": [
"database-mcp"
],
"env": {
"DB_TYPE": "pg",
"DB_CONFIG": "{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"dbname\"}"
},
"disabled": true,
"autoApprove": []
}
}
}Пример конфигурации UV (несколько баз данных):
{
"mcpServers": {
"database-mcp": {
"command": "uvx",
"args": [
"database-mcp"
],
"env": {
"DB_CONFIGS": "[{\"id\":\"pg_main\",\"db_type\":\"pg\",\"configuration\":{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"postgres\"},\"description\":\"PostgreSQL Database\"},{\"id\":\"mysql_data\",\"db_type\":\"mysql\",\"configuration\":{\"host\":\"localhost\",\"port\":3306,\"user\":\"root\",\"password\":\"pass\",\"database\":\"mysql\"},\"description\":\"MySQL Database\"}]"
},
"disabled": true,
"autoApprove": []
}
}
}Вариант 2: использование PIP
Установка через pip:
pip install database-mcpПример конфигурации PIP (одна база данных):
{
"mcpServers": {
"database": {
"command": "python",
"args": [
"-m", "database_mcp",
"--repository", "path/to/git/repo"
],
"env": {
"DB_TYPE": "pg",
"DB_CONFIG": "{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"dbname\"}"
}
}
}
}Запуск сервера
Режим производства
python mcp_server.pyМетоды конфигурации
Переменные среды (единая база данных)
export DB_TYPE="pg" # or mysql, postgresql, etc.
export DB_CONFIG='{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
uv run src/database_mcp/mcp_server.pyПеременные среды (несколько баз данных)
export DB_CONFIGS='[{"id":"pg_main","db_type":"pg","configuration":{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"},"description":"PostgreSQL Database"},{"id":"mysql_users","db_type":"mysql","configuration":{"host":"localhost","port":3306,"user":"root","password":"pass","database":"mysql"},"description":"MySQL Database"}]'
uv run src/database_mcp/mcp_server.pyЕсли вы не укажете идентификатор, система сгенерирует его автоматически на основе типа и описания базы данных:
export DB_CONFIGS='[{"db_type":"pg","configuration":{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"},"description":"PostgreSQL Database"},{"db_type":"mysql","configuration":{"host":"localhost","port":3306,"user":"root","password":"pass","database":"mysql"},"description":"MySQL Database"}]'
# IDs will be generated as something like "pg_postgres_0" and "my_mysqldb_1"
uv run src/database_mcp/mcp_server.pyАргументы командной строки (одна база данных)
python mcp_server.py --db-type pg --db-config '{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'Аргументы командной строки (несколько баз данных)
python mcp_server.py --db-configs '[{"id":"pg_main","db_type":"pg","configuration":{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"},"description":"PostgreSQL Database"},{"id":"mysql_users","db_type":"mysql","configuration":{"host":"localhost","port":3306,"user":"root","password":"pass","database":"mysql"},"description":"MySQL Database"}]'Обратите внимание, что вы можете указать собственные идентификаторы для каждой базы данных с помощью поля id или позволить системе сгенерировать их на основе типа и описания базы данных.
Поддержка нескольких баз данных
При подключении к нескольким базам данных необходимо указать, какую базу данных использовать для каждого запроса:
Используйте инструмент
list_databasesдля просмотра доступных баз данных с их идентификаторами.Используйте
get_database_infoдля просмотра сведений о схеме баз данных.Используйте
find_tableдля поиска таблицы во всех базах данных.Предоставьте параметр
db_idтаким инструментам, какexecute_query,get_table_columnsи т. д.
Подключения к базе данных управляются внутренне как словарь объектов DbConfig , причем каждая база данных имеет уникальный идентификатор. Информация о схеме представлена в виде списка объектов таблиц, где каждая таблица содержит свое имя и информацию о столбцах.
Подсказка select_database помогает пользователям пройти процесс выбора базы данных.
Представление схемы
Схемы базы данных представлены в виде списка объектов таблиц, где каждая таблица содержит информацию о своих столбцах:
[
{
"name": "users",
"columns": [
{"name": "id", "type": "integer"},
{"name": "username", "type": "varchar"},
{"name": "email", "type": "varchar"}
]
},
{
"name": "orders",
"columns": [
{"name": "id", "type": "integer"},
{"name": "user_id", "type": "integer"},
{"name": "product_id", "type": "integer"},
{"name": "quantity", "type": "integer"}
]
}
]Такое представление упрощает программный доступ к информации таблиц и столбцов, сохраняя при этом четкую иерархическую структуру.
Раскрытые возможности MCP
Ресурсы
Ресурс | Описание |
| Получить схемы для одной или всех настроенных баз данных |
Инструменты
Инструмент | Описание |
| Выполнить SQL-запрос и вернуть результаты в виде таблицы разметки |
| Выполнить SQL-запрос и вернуть результаты в формате JSON |
| Получить имена столбцов для определенной таблицы |
| Получить типы столбцов для определенной таблицы |
| Получить недавнюю историю запросов |
| Список всех доступных подключений к базе данных |
| Получите подробную информацию о базе данных, включая схему |
| Найдите, какая база данных содержит определенную таблицу |
| Получите подробное описание таблицы, включая названия и типы столбцов. |
| Получить выборку данных из таблицы |
Все инструменты, специфичные для баз данных (например, execute_query , get_table_columns и т. д.), требуют параметр db_id для указания, какую базу данных использовать.
Подсказки
Быстрый | Описание |
| Создать SQL-запрос к базе данных |
| Объясните, что делает SQL-запрос |
| Оптимизируйте SQL-запрос для повышения производительности |
| Помогите пользователю выбрать, какую базу данных использовать |
Разработка
Использование MCP-инспектора
запустите это, чтобы запустить инспектор
npx @modelcontextprotocol/inspector uv run src/database_mcp/mcp_server.pyзатем в поле ввода команды задайте что-то вроде
run src/database_mcp/mcp_server.py --db-type pg --db-config '{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'Тестирование
uv pip install -e ".[dev]"
pytestИздательский
# Clean up build artifacts
rm -rf dist/ build/
# Remove any .egg-info directories if they exist
find . -name "*.egg-info" -type d -exec rm -rf {} + 2>/dev/null || true
# Build the package
uv run python -m build
# Upload to PyPI
uv run python -m twine upload dist/*Лицензия
Этот репозиторий лицензирован по GPL