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-инспектор

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

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

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

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

Проект использует 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 -
    129
    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 -
    JavaScript
    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 -
    392
    Go
    Apache 2.0
    • Linux
  • A
    security
    A
    license
    A
    quality
    MCP server that allows interaction with PocketBase databases, enabling record operations (fetch, list, create, update), file management, and schema migrations through natural language.
    Last updated -
    20
    8
    TypeScript
    MIT License
    • Linux
    • Apple

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