DBHub — это универсальный шлюз базы данных, реализующий интерфейс сервера Model Context Protocol (MCP). Этот шлюз позволяет клиентам, совместимым с MCP, подключаться к различным базам данных и исследовать их.
Демонстрационная конечная точка SSE
https://demo.dbhub.ai/sse подключает образец базы данных сотрудников . Вы можете указать на него Cursor или MCP Inspector, чтобы увидеть его в действии.
Поддерживаемая матрица
Ресурсы базы данных
Имя ресурса | Формат 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 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Установка
Докер
НПМ
Примечание: демонстрационный режим включает в себя встроенный пример базы данных SQLite «employee» с таблицами для сотрудников, отделов, зарплат и т. д.
Клод Десктоп
- Claude Desktop поддерживает только
stdio
-транспорт https://github.com/orgs/modelcontextprotocol/discussions/16
Курсор
- Курсор поддерживает как
stdio
, так иsse
. - Следуйте руководству по Cursor MCP и обязательно используйте режим агента .
Использование
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
, большинство баз данных по умолчанию используют проверку сертификатов, что обеспечивает наивысший уровень безопасности.
Пример использования:
Режим только для чтения
Вы можете запустить DBHub в режиме только для чтения, который ограничивает выполнение SQL-запросов операциями только для чтения:
В режиме «только чтение» разрешены только операции SQL, доступные только для чтения .
Это обеспечивает дополнительный уровень безопасности при подключении к производственным базам данных.
Настройте подключение к базе данных
Вы можете использовать DBHub в демонстрационном режиме с образцом базы данных сотрудников для тестирования:
Для реальных баз данных требуется Database Source Name (DSN). Вы можете предоставить его несколькими способами:
- Аргумент командной строки (наивысший приоритет):
- Переменная окружения (второй приоритет):
- Файл среды (третий приоритет):
- Для разработки: создайте
.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
.
нпх
- Загрузите и установите Oracle Instant Client для вашей платформы
- Установите переменную среды
ORACLE_LIB_DIR
на путь к вашему Oracle Instant Client:
SQL-сервер
Дополнительные параметры запроса:
аутентификация
authentication=azure-active-directory-access-token
. Применимо только при запуске из Azure. См. DefaultAzureCredential .
Транспорт
- stdio (по умолчанию) — для прямой интеграции с такими инструментами, как Claude Desktop:
- sse - для браузерных и сетевых клиентов:
Параметры командной строки
Вариант | Описание | По умолчанию |
---|---|---|
демо | Запустить в демонстрационном режиме с образцом базы данных сотрудников | false |
dsn | Строка подключения к базе данных | Обязательно, если не в демонстрационном режиме |
транспорт | Режим транспорта: stdio или sse | stdio |
порт | Порт HTTP-сервера (применимо только при использовании --transport=sse ) | 8080 |
только для чтения | Ограничить выполнение SQL операциями только для чтения | false |
Демонстрационный режим использует базу данных SQLite в памяти, загруженную образцом базы данных сотрудников , которая включает таблицы для сотрудников, отделов, должностей, зарплат, сотрудников отделов и менеджеров отделов. Образец базы данных включает скрипты SQL для создания таблиц, загрузки данных и тестирования.
Разработка
- Установить зависимости:
- Запустить в режиме разработки:
- Сборка для производства:
Тестирование
Проект использует Vitest для тестирования:
- Запуск тестов:
pnpm test
- Запуск тестов в режиме наблюдения:
pnpm test:watch
Предварительные хуки (для разработчиков)
Проект включает в себя pre-commit hooks для автоматического запуска тестов перед каждым коммитом:
- После клонирования репозитория настройте pre-commit hooks:
- Это гарантирует, что набор тестов будет запускаться автоматически при каждом создании коммита, предотвращая создание коммитов, которые могут нарушить тесты.
Отладка с помощью MCP Inspector
стдио
СШЭ
Подключитесь к конечной точке сервера DBHub /sse
Участники
История Звезды
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Универсальный сервер баз данных MCP, подключающийся к MySQL, PostgreSQL, SQLite, DuckDB и т. д.
Related Resources
Related MCP Servers
- -securityAlicense-qualityMCP to access any database accessible via JDBC such as Postgres, Oracle, mysql, mariadb, sqlite etc.Last updated -129Apache 2.0
- -securityAlicense-qualityAn MCP server that connects to Supabase PostgreSQL databases, exposing table schemas as resources and providing tools for data analysis through SQL queries.Last updated -JavaScriptMIT License
- -securityAlicense-qualityMCP-Server from your Database optimized for LLMs and AI-Agents. Supports PostgreSQL, MySQL, ClickHouse, Snowflake, MSSQL, BigQuery, Oracle Database, SQLite, ElasticSearch, DuckDBLast updated -392GoApache 2.0
- AsecurityAlicenseAqualityMCP server that allows interaction with PocketBase databases, enabling record operations (fetch, list, create, update), file management, and schema migrations through natural language.Last updated -208TypeScriptMIT License