Skip to main content
Glama

DBHub

by bytebase

DBHub — это универсальный шлюз базы данных, реализующий интерфейс сервера Model Context Protocol (MCP). Этот шлюз позволяет клиентам, совместимым с MCP, подключаться к различным базам данных и исследовать их.

+------------------+ +--------------+ +------------------+ | | | | | | | | | | | | | Claude Desktop +--->+ +--->+ PostgreSQL | | | | | | | | Cursor +--->+ DBHub +--->+ SQL Server | | | | | | | | Other MCP +--->+ +--->+ SQLite | | Clients | | | | | | | | +--->+ MySQL | | | | | | | | | | +--->+ MariaDB | | | | | | | | | | +--->+ Oracle | | | | | | | +------------------+ +--------------+ +------------------+ MCP Clients MCP Server Databases

Демонстрационная конечная точка SSE

https://demo.dbhub.ai/sse подключает образец базы данных сотрудников . Вы можете указать на него Cursor или MCP Inspector, чтобы увидеть его в действии.

mcp-инспектор

Поддерживаемая матрица

Ресурсы базы данных

Имя ресурса

Формат URI

PostgreSQL

MySQL

MariaDB

SQL-сервер

SQLite

Оракул

схемы

db://schemas

таблицы_в_схеме

db://schemas/{schemaName}/tables

структура_таблицы_в_схеме

db://schemas/{schemaName}/tables/{tableName}

индексы_в_таблице

db://schemas/{schemaName}/tables/{tableName}/indexes

процедуры_в_схеме

db://schemas/{schemaName}/procedures

подробности_процедуры_в_схеме

db://schemas/{schemaName}/procedures/{procedureName}

Инструменты базы данных

Инструмент

Имя команды

PostgreSQL

MySQL

MariaDB

SQL-сервер

SQLite

Оракул

Выполнить SQL

execute_sql

Список соединителей

list_connectors

Возможности промпта

Быстрый

Имя команды

PostgreSQL

MySQL

MariaDB

SQL-сервер

SQLite

Оракул

Сгенерировать SQL

generate_sql

Объясните элементы БД

explain_db

Установка

Докер

# PostgreSQL example docker run --rm --init \ --name dbhub \ --publish 8080:8080 \ bytebase/dbhub \ --transport sse \ --port 8080 \ --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"
# Demo mode with sample employee database docker run --rm --init \ --name dbhub \ --publish 8080:8080 \ bytebase/dbhub \ --transport sse \ --port 8080 \ --demo
# Oracle example docker run --rm --init \ --name dbhub \ --publish 8080:8080 \ bytebase/dbhub \ --transport sse \ --port 8080 \ --dsn "oracle://username:password@localhost:1521/service_name"
# Oracle example with thick mode for connecting to 11g or older docker run --rm --init \ --name dbhub \ --publish 8080:8080 \ bytebase/dbhub-oracle-thick \ --transport sse \ --port 8080 \ --dsn "oracle://username:password@localhost:1521/service_name"

НПМ

# PostgreSQL example npx @bytebase/dbhub --transport sse --port 8080 --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"
# Demo mode with sample employee database npx @bytebase/dbhub --transport sse --port 8080 --demo

Примечание: демонстрационный режим включает в себя встроенный пример базы данных SQLite «employee» с таблицами для сотрудников, отделов, зарплат и т. д.

Клод Десктоп

Клод-рабочий стол

// claude_desktop_config.json { "mcpServers": { "dbhub-postgres-docker": { "command": "docker", "args": [ "run", "-i", "--rm", "bytebase/dbhub", "--transport", "stdio", "--dsn", // Use host.docker.internal as the host if connecting to the local db "postgres://user:password@host.docker.internal:5432/dbname?sslmode=disable" ] }, "dbhub-postgres-npx": { "command": "npx", "args": [ "-y", "@bytebase/dbhub", "--transport", "stdio", "--dsn", "postgres://user:password@localhost:5432/dbname?sslmode=disable" ] }, "dbhub-demo": { "command": "npx", "args": ["-y", "@bytebase/dbhub", "--transport", "stdio", "--demo"] } } }

Курсор

курсор

Использование

SSL-соединения

Вы можете указать режим SSL с помощью параметра sslmode в строке DSN:

База данных

sslmode=disable

sslmode=require

Поведение SSL по умолчанию

PostgreSQL

Проверка сертификата

MySQL

Проверка сертификата

MariaDB

Проверка сертификата

SQL-сервер

Проверка сертификата

Оракул

N/A (используйте конфигурацию клиента Oracle)

SQLite

N/A (на основе файлов)

Параметры режима SSL:

  • sslmode=disable : Все шифрование SSL/TLS отключено. Данные передаются в открытом виде.

  • sslmode=require : Соединение зашифровано, но сертификат сервера не проверен. Это обеспечивает защиту от перехвата пакетов, но не от атак типа «человек посередине». Вы можете использовать это для доверенного самоподписанного CA.

Если не указать sslmode , большинство баз данных по умолчанию используют проверку сертификатов, что обеспечивает наивысший уровень безопасности.

Пример использования:

# Disable SSL postgres://user:password@localhost:5432/dbname?sslmode=disable # Require SSL without certificate verification postgres://user:password@localhost:5432/dbname?sslmode=require # Standard SSL with certificate verification (default) postgres://user:password@localhost:5432/dbname

Режим только для чтения

Вы можете запустить DBHub в режиме только для чтения, который ограничивает выполнение SQL-запросов операциями только для чтения:

# Enable read-only mode npx @bytebase/dbhub --readonly --dsn "postgres://user:password@localhost:5432/dbname"

В режиме «только чтение» разрешены только операции SQL, доступные только для чтения .

Это обеспечивает дополнительный уровень безопасности при подключении к производственным базам данных.

Настройте подключение к базе данных

Вы можете использовать DBHub в демонстрационном режиме с образцом базы данных сотрудников для тестирования:

npx @bytebase/dbhub --demo

Для реальных баз данных требуется Database Source Name (DSN). Вы можете предоставить его несколькими способами:

  • Аргумент командной строки (наивысший приоритет):

    npx @bytebase/dbhub --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"
  • Переменная окружения (второй приоритет):

    export DSN="postgres://user:password@localhost:5432/dbname?sslmode=disable" npx @bytebase/dbhub
  • Файл среды (третий приоритет):

    • Для разработки: создайте .env.local с вашим DSN

    • Для производства: создайте .env с вашим DSN GXP14

[!WARNING] При работе в Docker используйте host.docker.internal вместо localhost для подключения к базам данных, запущенным на вашем хост-компьютере. Например: mysql://user:password@host.docker.internal:3306/dbname

DBHub поддерживает следующие форматы строк подключения к базе данных:

База данных

Формат DSN

Пример

MySQL

mysql://[user]:[password]@[host]:[port]/[database]

mysql://user:password@localhost:3306/dbname?sslmode=disable

MariaDB

mariadb://[user]:[password]@[host]:[port]/[database]

mariadb://user:password@localhost:3306/dbname?sslmode=disable

PostgreSQL

postgres://[user]:[password]@[host]:[port]/[database]

postgres://user:password@localhost:5432/dbname?sslmode=disable

SQL-сервер

sqlserver://[user]:[password]@[host]:[port]/[database]

sqlserver://user:password@localhost:1433/dbname?sslmode=disable

SQLite

sqlite:///[path/to/file]

или

sqlite::memory:

sqlite:///path/to/database.db

,

sqlite:C:/Users/YourName/data/database.db (windows)

или

sqlite::memory:

Оракул

oracle://[user]:[password]@[host]:[port]/[service_name]

oracle://username:password@localhost:1521/service_name?sslmode=disable

Оракул

Если вы видите ошибку «NJS-138: соединения с этой версией сервера базы данных не поддерживаются node-oracledb в тонком режиме», вам необходимо использовать толстый режим, как описано ниже.

Докер

Используйте образ docker bytebase/dbhub-oracle-thick вместо bytebase/dbhub .

нпх
  1. Загрузите и установите Oracle Instant Client для вашей платформы

  2. Установите переменную среды ORACLE_LIB_DIR на путь к вашему Oracle Instant Client:

# Set environment variable to Oracle Instant Client directory export ORACLE_LIB_DIR=/path/to/instantclient_19_8 # Then run DBHub npx @bytebase/dbhub --dsn "oracle://username:password@localhost:1521/service_name"

SQL-сервер

Дополнительные параметры запроса:

аутентификация

  • authentication=azure-active-directory-access-token . Применимо только при запуске из Azure. См. DefaultAzureCredential .

Транспорт

  • stdio (по умолчанию) — для прямой интеграции с такими инструментами, как Claude Desktop:

    npx @bytebase/dbhub --transport stdio --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"
  • sse - для браузерных и сетевых клиентов:

    npx @bytebase/dbhub --transport sse --port 5678 --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"

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

Вариант

Описание

По умолчанию

демо

Запустить в демонстрационном режиме с образцом базы данных сотрудников

false

dsn

Строка подключения к базе данных

Обязательно, если не в демонстрационном режиме

транспорт

Режим транспорта:

stdio

или

sse

stdio

порт

Порт HTTP-сервера (применимо только при использовании

--transport=sse

)

8080

только для чтения

Ограничить выполнение SQL операциями только для чтения

false

Демонстрационный режим использует базу данных SQLite в памяти, загруженную образцом базы данных сотрудников , которая включает таблицы для сотрудников, отделов, должностей, зарплат, сотрудников отделов и менеджеров отделов. Образец базы данных включает скрипты SQL для создания таблиц, загрузки данных и тестирования.

Разработка

  1. Установить зависимости:

    pnpm install
  2. Запустить в режиме ��азработки:

    pnpm dev
  3. Сборка для производства:

    pnpm build pnpm start --transport stdio --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"

Тестирование

Проект использует Vitest для тестирования:

  • Запуск тестов: pnpm test

  • Запуск тестов в режиме наблюдения: pnpm test:watch

Предварительные хуки (для разработчиков)

Проект включает в себя pre-commit hooks для автоматического запуска тестов перед каждым коммитом:

  1. После клонирования репозитория настройте pre-commit hooks:

    ./scripts/setup-husky.sh
  2. Это гарантирует, что набор тестов будет запускаться автоматически при каждом создании коммита, предотвращая создание коммитов, которые могут нарушить тесты.

Отладка с помощью MCP Inspector

стдио

# PostgreSQL example TRANSPORT=stdio DSN="postgres://user:password@localhost:5432/dbname?sslmode=disable" npx @modelcontextprotocol/inspector node /path/to/dbhub/dist/index.js

СШЭ

# Start DBHub with SSE transport pnpm dev --transport=sse --port=8080 # Start the MCP Inspector in another terminal npx @modelcontextprotocol/inspector

Подключитесь к конечной точке сервера DBHub /sse

Участники

История Звезды

Звездная история диаграммы

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    MCP to access any database accessible via JDBC such as Postgres, Oracle, mysql, mariadb, sqlite etc.
    Last updated -
    167
    Apache 2.0
  • -
    security
    A
    license
    -
    quality
    An MCP server that connects to Supabase PostgreSQL databases, exposing table schemas as resources and providing tools for data analysis through SQL queries.
    Last updated -
    1
    MIT License
  • -
    security
    A
    license
    -
    quality
    MCP-Server from your Database optimized for LLMs and AI-Agents. Supports PostgreSQL, MySQL, ClickHouse, Snowflake, MSSQL, BigQuery, Oracle Database, SQLite, ElasticSearch, DuckDB
    Last updated -
    474
    Apache 2.0
    • Linux
  • -
    security
    A
    license
    -
    quality
    Open source MCP server specializing in easy, fast, and secure tools for Databases.
    Last updated -
    10,444
    Apache 2.0
    • Linux

View all related MCP servers

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/bytebase/dbhub'

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