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