DBHub

by bytebase
MIT License
12
403
  • Linux
  • Apple

Integrations

  • Provides Docker container deployment options for running the DBHub server with configurable database connections and transport options.

  • Supports connecting to DuckDB databases to explore tables, access schema information, and perform read-only SQL queries with safety measures.

  • Provides access to MySQL databases for browsing tables, viewing schema information, and executing read-only SQL queries with safety protections.

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, чтобы увидеть его в действии.

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

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

Имя ресурсаФормат URIPostgreSQLMySQLMariaDBSQL-сервер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}

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

ИнструментИмя командыPostgreSQLMySQLMariaDBSQL-серверSQLiteОракул
Выполнить SQLexecute_sql
Список соединителейlist_connectors

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

БыстрыйИмя командыPostgreSQLMySQLMariaDBSQL-серверSQLiteОракул
Сгенерировать SQLgenerate_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=disablesslmode=requireПоведение SSL по умолчанию
PostgreSQLПроверка сертификата
MySQLПроверка сертификата
MariaDBПроверка сертификата
SQL-серверПроверка сертификата
ОракулN/A (используйте конфигурацию клиента Oracle)
SQLiteN/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Пример
MySQLmysql://[user]:[password]@[host]:[port]/[database]mysql://user:password@localhost:3306/dbname?sslmode=disable
MariaDBmariadb://[user]:[password]@[host]:[port]/[database]mariadb://user:password@localhost:3306/dbname?sslmode=disable
PostgreSQLpostgres://[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
SQLitesqlite:///[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 вместо образа docker 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 или ssestdio
портПорт 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"

Отладка с помощью 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
    F
    license
    -
    quality
    An MCP server that provides safe, read-only access to SQLite databases through MCP. This server is built with the FastMCP framework, which enables LLMs to explore and query SQLite databases with built-in safety features and query validation.
    Last updated -
    21
    Python
  • -
    security
    A
    license
    -
    quality
    MCP to access any database accessible via JDBC such as Postgres, Oracle, mysql, mariadb, sqlite etc.
    Last updated -
    103
    Apache 2.0
  • A
    security
    A
    license
    A
    quality
    An MCP server that provides read-only access to MySQL databases.
    Last updated -
    4
    695
    17
    JavaScript
    MIT License
    • Linux
    • Apple

View all related MCP servers

ID: a01xnguu8x