DBHub

by bytebase
MIT License
13
325
  • 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 es una puerta de enlace de base de datos universal que implementa la interfaz de servidor del Protocolo de Contexto de Modelo (MCP). Esta puerta de enlace permite a los clientes compatibles con MCP conectarse a diferentes bases de datos y explorarlas.

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

Punto final de demostración de SSE

https://demo.dbhub.ai/sse conecta una base de datos de empleados de ejemplo . Puedes usar Cursor o MCP Inspector para verla en acción.

Matriz soportada

Recursos de bases de datos

Nombre del recursoFormato URIPostgreSQLMySQLMariaDBServidor SQLSQLiteOráculo
esquemasdb://schemas
tablas_en_esquemadb://schemas/{schemaName}/tables
estructura_de_tabla_en_esquemadb://schemas/{schemaName}/tables/{tableName}
índices_en_tabladb://schemas/{schemaName}/tables/{tableName}/indexes
procedimientos_en_esquemadb://schemas/{schemaName}/procedures
detalles_del_procedimiento_en_el_esquemadb://schemas/{schemaName}/procedures/{procedureName}

Herramientas de base de datos

HerramientaNombre del comandoPostgreSQLMySQLMariaDBServidor SQLSQLiteOráculo
Ejecutar SQLexecute_sql
Conectores de listalist_connectors

Capacidades rápidas

InmediatoNombre del comandoPostgreSQLMySQLMariaDBServidor SQLSQLiteOráculo
Generar SQLgenerate_sql
Explicar los elementos de la base de datosexplain_db

Instalación

Estibador

# 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"

NGP

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

Nota: El modo de demostración incluye una base de datos de "empleados" de muestra SQLite con tablas para empleados, departamentos, salarios y más.

Escritorio de Claude

// 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"] } } }

Cursor

Uso

Modo de solo lectura

Puede ejecutar DHub en modo de solo lectura, lo que restringe la ejecución de consultas SQL a operaciones de solo lectura:

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

En el modo de solo lectura, únicamente se permiten operaciones SQL de solo lectura .

Esto proporciona una capa adicional de seguridad al conectarse a bases de datos de producción.

Configurar su conexión de base de datos

Puede utilizar DHub en modo de demostración con una base de datos de empleados de muestra para realizar pruebas:

npx @bytebase/dbhub --demo

Para bases de datos reales, se requiere un Nombre de Origen de la Base de Datos (DSN). Puede proporcionarlo de varias maneras:

  • Argumento de línea de comando (máxima prioridad):
    npx @bytebase/dbhub --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"
  • Variable de entorno (segunda prioridad):
    export DSN="postgres://user:password@localhost:5432/dbname?sslmode=disable" npx @bytebase/dbhub
  • Expediente de entorno (tercera prioridad):
    • Para desarrollo: crea .env.local con tu DSN
    • Para producción: crea .env con tu DSN GXP12

[!ADVERTENCIA] Al ejecutar en Docker, use host.docker.internal en lugar de localhost para conectarse a las bases de datos que se ejecutan en su equipo host. Por ejemplo: mysql://user:password@host.docker.internal:3306/dbname

DBHub admite los siguientes formatos de cadenas de conexión de base de datos:

Base de datosFormato DSNEjemplo
MySQLmysql://[user]:[password]@[host]:[port]/[database]mysql://user:password@localhost:3306/dbname
MariaDBmariadb://[user]:[password]@[host]:[port]/[database]mariadb://user:password@localhost:3306/dbname
PostgreSQLpostgres://[user]:[password]@[host]:[port]/[database]postgres://user:password@localhost:5432/dbname?sslmode=disable
Servidor SQLsqlserver://[user]:[password]@[host]:[port]/[database]sqlserver://user:password@localhost:1433/dbname
SQLitesqlite:///[path/to/file] o sqlite::memory:sqlite:///path/to/database.db , sqlite:C:/Users/YourName/data/database.db (windows) o sqlite::memory:
Oráculooracle://[user]:[password]@[host]:[port]/[service_name]oracle://username:password@localhost:1521/service_name
Servidor SQL

Parámetros de consulta adicionales:

autenticación
  • authentication=azure-active-directory-access-token . Solo aplicable al ejecutar desde Azure. Consulte DefaultAzureCredential .

Transporte

  • stdio (predeterminado): para integración directa con herramientas como Claude Desktop:
    npx @bytebase/dbhub --transport stdio --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"
  • sse - para clientes de navegador y red:
    npx @bytebase/dbhub --transport sse --port 5678 --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"

Opciones de línea de comandos

OpciónDescripciónPor defecto
manifestaciónEjecutar en modo de demostración con una base de datos de empleados de muestrafalse
dsnCadena de conexión a la base de datosObligatorio si no está en modo de demostración
transporteModo de transporte: stdio o ssestdio
puertoPuerto del servidor HTTP (solo aplicable cuando se utiliza --transport=sse )8080
solo lecturaRestringir la ejecución de SQL a operaciones de solo lecturafalse

El modo de demostración utiliza una base de datos SQLite en memoria que contiene la base de datos de empleados de ejemplo , que incluye tablas para empleados, departamentos, cargos, salarios, empleados de departamento y gerentes de departamento. La base de datos de ejemplo incluye scripts SQL para la creación de tablas, la carga de datos y las pruebas.

Desarrollo

  1. Instalar dependencias:
    pnpm install
  2. Ejecutar en modo de desarrollo:
    pnpm dev
  3. Construir para producción:
    pnpm build pnpm start --transport stdio --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"

Depurar con MCP Inspector

estudio
# PostgreSQL example TRANSPORT=stdio DSN="postgres://user:password@localhost:5432/dbname?sslmode=disable" npx @modelcontextprotocol/inspector node /path/to/dbhub/dist/index.js
SSE
# Start DBHub with SSE transport pnpm dev --transport=sse --port=8080 # Start the MCP Inspector in another terminal npx @modelcontextprotocol/inspector

Conectarse al punto final del servidor DBHub /sse

Colaboradores

Historia de las estrellas

-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Servidor de base de datos universal MCP que se conecta a MySQL, PostgreSQL, SQLite, DuckDB, etc.

  1. Supported Matrix
    1. Database Resources
    2. Database Tools
    3. Prompt Capabilities
  2. Installation
    1. Docker
    2. NPM
    3. Claude Desktop
    4. Cursor
  3. Usage
    1. Read-only Mode
    2. Configure your database connection
    3. Transport
    4. Command line options
  4. Development
    1. Debug with MCP Inspector
  5. Contributors
    1. Star History

      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