Skip to main content
Glama

Многобазовый сервер 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 или позволить системе сгенерировать их на основе типа и описания базы данных.

Поддержка нескольких баз данных

При подключении к нескольким базам данных необходимо указать, какую базу данных использовать для каждого запроса:

  1. Используйте инструмент list_databases для просмотра доступных баз данных с их идентификаторами.

  2. Используйте get_database_info для просмотра сведений о схеме баз данных.

  3. Используйте find_table для поиска таблицы во всех базах данных.

  4. Предоставьте параметр 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

Ресурсы

Ресурс

Описание

resource://schema/{database_id}

Получить схемы для одной или всех настроенных баз данных

Инструменты

Инструмент

Описание

execute_query

Выполнить SQL-запрос и вернуть результаты в виде таблицы разметки

execute_query_json

Выполнить SQL-запрос и вернуть результаты в формате JSON

get_table_columns

Получить имена столбцов для определенной таблицы

get_table_types

Получить типы столбцов для определенной таблицы

get_query_history

Получить недавнюю историю запросов

list_databases

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

get_database_info

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

find_table

Найдите, какая база данных содержит определенную таблицу

describe_table

Получите подробное описание таблицы, включая названия и типы столбцов.

get_table_sample

Получить выборку данных из таблицы

Все инструменты, специфичные для баз данных (например, execute_query , get_table_columns и т. д.), требуют параметр db_id для указания, какую базу данных использовать.

Подсказки

Быстрый

Описание

sql_query

Создать SQL-запрос к базе данных

explain_query

Объясните, что делает SQL-запрос

optimize_query

Оптимизируйте SQL-запрос для повышения производительности

select_database

Помогите пользователю выбрать, какую базу данных использовать

Разработка

Использование 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

-
security - not tested
A
license - permissive license
-
quality - not tested

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/TheRaLabs/legion-mcp'

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