Skip to main content
Glama
FreePeak

Multi Database MCP Server

MCP-сервер с несколькими базами данных

Лицензия: Массачусетский технологический институт Перейти Отчетная Карточка Перейти к ссылке Участники

Обзор

DB MCP Server предоставляет стандартизированный способ для моделей ИИ одновременно взаимодействовать с несколькими базами данных. Созданный на основе фреймворка FreePeak/cortex , он позволяет помощникам ИИ выполнять SQL-запросы, управлять транзакциями, исследовать схемы и анализировать производительность в различных системах баз данных через унифицированный интерфейс.

Related MCP server: MCP Server

Основные концепции

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

В отличие от традиционных коннекторов баз данных, DB MCP Server может подключаться и взаимодействовать с несколькими базами данных одновременно:

{ "connections": [ { "id": "mysql1", "type": "mysql", "host": "localhost", "port": 3306, "name": "db1", "user": "user1", "password": "password1" }, { "id": "postgres1", "type": "postgres", "host": "localhost", "port": 5432, "name": "db2", "user": "user2", "password": "password2" } ] }

Динамическая генерация инструментов

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

// For a database with ID "mysql1", these tools are generated: query_mysql1 // Execute SQL queries execute_mysql1 // Run data modification statements transaction_mysql1 // Manage transactions schema_mysql1 // Explore database schema performance_mysql1 // Analyze query performance

Чистая Архитектура

Сервер следует принципам чистой архитектуры и состоит из следующих слоев:

  1. Уровень домена : основные бизнес-сущности и интерфейсы

  2. Уровень репозитория : Реализации доступа к данным

  3. Уровень варианта использования : бизнес-логика приложения

  4. Уровень доставки : Внешние интерфейсы (инструменты MCP)

Функции

  • Одновременная поддержка нескольких баз данных : одновременное подключение к нескольким базам данных MySQL и PostgreSQL

  • Генерация инструментов для конкретной базы данных : автоматическое создание специализированных инструментов для каждой подключенной базы данных.

  • Чистая архитектура : модульная конструкция с четким разделением задач

  • Совместимость с OpenAI Agents SDK : полная совместимость для бесшовной интеграции помощника ИИ

  • Инструменты динамической базы данных : выполнение запросов, запуск операторов, управление транзакциями, исследование схем, анализ производительности.

  • Унифицированный интерфейс : единообразные шаблоны взаимодействия между различными типами баз данных

  • Управление соединениями : простая настройка для нескольких соединений с базой данных.

Поддерживаемые базы данных

База данных

Статус

Функции

MySQL

✅ Полная поддержка

Запросы, транзакции, анализ схемы, анализ производительности

PostgreSQL

✅ Полная поддержка (v9.6-17)

Запросы, транзакции, анализ схемы, анализ производительности

TimescaleDB

✅ Полная поддержка

Гипертаблицы, запросы временных рядов, непрерывные агрегаты, сжатие, политики хранения

Варианты развертывания

Сервер DB MCP можно развернуть несколькими способами в зависимости от различных сред и потребностей интеграции:

Развертывание Docker

# Pull the latest image docker pull freepeak/db-mcp-server:latest # Run with mounted config file docker run -p 9092:9092 \ -v $(pwd)/config.json:/app/my-config.json \ -e TRANSPORT_MODE=sse \ -e CONFIG_PATH=/app/my-config.json \ freepeak/db-mcp-server

Примечание : Монтируйте в /app/my-config.json , так как в контейнере есть файл по умолчанию в /app/config.json .

Режим STDIO (интеграция с IDE)

# Run the server in STDIO mode ./bin/server -t stdio -c config.json

Для интеграции Cursor IDE добавьте в .cursor/mcp.json :

{ "mcpServers": { "stdio-db-mcp-server": { "command": "/path/to/db-mcp-server/server", "args": ["-t", "stdio", "-c", "/path/to/config.json"] } } }

Режим SSE (события, отправленные сервером)

# Default configuration (localhost:9092) ./bin/server -t sse -c config.json # Custom host and port ./bin/server -t sse -host 0.0.0.0 -port 8080 -c config.json

Конечная точка клиентского подключения: http://localhost:9092/sse

Установка исходного кода

# Clone the repository git clone https://github.com/FreePeak/db-mcp-server.git cd db-mcp-server # Build the server make build # Run the server ./bin/server -t sse -c config.json

Конфигурация

Файл конфигурации базы данных

Создайте файл config.json с подключениями к вашей базе данных:

{ "connections": [ { "id": "mysql1", "type": "mysql", "host": "mysql1", "port": 3306, "name": "db1", "user": "user1", "password": "password1", "query_timeout": 60, "max_open_conns": 20, "max_idle_conns": 5, "conn_max_lifetime_seconds": 300, "conn_max_idle_time_seconds": 60 }, { "id": "postgres1", "type": "postgres", "host": "postgres1", "port": 5432, "name": "db1", "user": "user1", "password": "password1" } ] }

Параметры командной строки

# Basic syntax ./bin/server -t <transport> -c <config-file> # SSE transport options ./bin/server -t sse -host <hostname> -port <port> -c <config-file> # Inline database configuration ./bin/server -t stdio -db-config '{"connections":[...]}' # Environment variable configuration export DB_CONFIG='{"connections":[...]}' ./bin/server -t stdio

Доступные инструменты

Для каждой подключенной базы данных DB MCP Server автоматически генерирует следующие специализированные инструменты:

Инструменты запроса

Название инструмента

Описание

query_<db_id>

Выполнять запросы SELECT и получать результаты в виде табличного набора данных

execute_<db_id>

Выполнение операторов манипулирования данными (INSERT, UPDATE, DELETE)

transaction_<db_id>

Начало, фиксация и откат транзакций

Инструменты схемы

Название инструмента

Описание

schema_<db_id>

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

generate_schema_<db_id>

Генерация SQL или кода из схемы базы данных

Инструменты производительности

Название инструмента

Описание

performance_<db_id>

Анализируйте производительность запросов и получайте предложения по оптимизации

Инструменты TimescaleDB

Для баз данных PostgreSQL с расширением TimescaleDB доступны следующие дополнительные специализированные инструменты:

Название инструмента

Описание

timescaledb_<db_id>

Выполнение общих операций TimescaleDB

create_hypertable_<db_id>

Преобразовать стандартную таблицу в гипертаблицу TimescaleDB

list_hypertables_<db_id>

Список всех гипертаблиц в базе данных

time_series_query_<db_id>

Выполнение оптимизированных запросов временных рядов с сегментированием

time_series_analyze_<db_id>

Анализировать закономерности временных рядов данных

continuous_aggregate_<db_id>

Создавайте материализованные представления, которые автоматически обновляются

refresh_continuous_aggregate_<db_id>

Обновлять непрерывные агрегаты вручную

Подробную документацию по инструментам TimescaleDB см. в TIMESCALEDB_TOOLS.md .

Примеры

Запрос к нескольким базам данных

-- Query the first database query_mysql1("SELECT * FROM users LIMIT 10") -- Query the second database in the same context query_postgres1("SELECT * FROM products WHERE price > 100")

Управление транзакциями

-- Start a transaction transaction_mysql1("BEGIN") -- Execute statements within the transaction execute_mysql1("INSERT INTO orders (customer_id, product_id) VALUES (1, 2)") execute_mysql1("UPDATE inventory SET stock = stock - 1 WHERE product_id = 2") -- Commit or rollback transaction_mysql1("COMMIT") -- OR transaction_mysql1("ROLLBACK")

Изучение схемы базы данных

-- Get all tables in the database schema_mysql1("tables") -- Get columns for a specific table schema_mysql1("columns", "users") -- Get constraints schema_mysql1("constraints", "orders")

Поиск неисправностей

Распространенные проблемы

  • Ошибки подключения : проверьте сетевое подключение и учетные данные базы данных.

  • Ошибки прав доступа : убедитесь, что у пользователя базы данных есть соответствующие права доступа.

  • Проблемы с тайм-аутом : проверьте настройку query_timeout в вашей конфигурации.

Журналы

Включите подробное ведение журнала для устранения неполадок:

./bin/server -t sse -c config.json -v

Внося вклад

Мы приветствуем вклад в проект DB MCP Server! Чтобы внести вклад:

  1. Форк репозитория

  2. Создайте ветку функций ( git checkout -b feature/amazing-feature )

  3. Зафиксируйте свои изменения ( git commit -m 'feat: add amazing feature' )

  4. Отправить в ветку ( git push origin feature/amazing-feature )

  5. Открыть запрос на извлечение

Подробные инструкции см. в нашем файле CONTRIBUTING.md .

Лицензия

Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE .

-
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/FreePeak/db-mcp-server'

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