VOOZH about

URL: https://glama.ai/mcp/servers/FreePeak/db-mcp-server?locale=ru-RU

⇱ MCP-сервер с несколькими базами данных by FreePeak | Glama


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

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

Обзор

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

Related MCP server: KatCoder MySQL 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 .

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
<1hResponse time
Release cycle
1Releases (12mo)
Commit activity
Issues opened vs closed

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