Skip to main content
Glama

DBHub

by bytebase

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.

inspector mcp

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

NGP

# 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

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-escritorio

// 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

cursor

Uso

Conexiones SSL

Puede especificar el modo SSL utilizando el parámetro sslmode en su cadena DSN:

Base de datossslmode=disablesslmode=requireComportamiento SSL predeterminado
PostgreSQLVerificación del certificado
MySQLVerificación del certificado
MariaDBVerificación del certificado
Servidor SQLVerificación del certificado
OráculoN/A (utilizar la configuración del cliente Oracle)
SQLiteN/A (basado en archivos)

Opciones del modo SSL:

  • sslmode=disable : El cifrado SSL/TLS está desactivado. Los datos se transmiten en texto plano.
  • sslmode=require : La conexión está cifrada, pero el certificado del servidor no está verificado. Esto proporciona protección contra el rastreo de paquetes, pero no contra ataques de intermediario. Puede usarlo para una CA autofirmada de confianza.

Sin especificar sslmode , la mayoría de las bases de datos utilizan de manera predeterminada la verificación del certificado, que proporciona el mayor nivel de seguridad.

Ejemplo de uso:

# 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

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 GXP14

[!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?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
Servidor SQLsqlserver://[user]:[password]@[host]:[port]/[database]sqlserver://user:password@localhost:1433/dbname?sslmode=disable
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?sslmode=disable
Oráculo

Si ve el error "NJS-138: las conexiones a esta versión del servidor de base de datos no son compatibles con node-oracledb en modo Thin", debe usar el modo Thick como se describe a continuación.

Estibador

Utilice bytebase/dbhub-oracle-thick en lugar de la imagen de Docker bytebase/dbhub .

npx
  1. Descargue e instale Oracle Instant Client para su plataforma
  2. Establezca la variable de entorno ORACLE_LIB_DIR en la ruta de su 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"
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"

Pruebas

El proyecto utiliza Vitest para realizar pruebas:

  • Ejecutar pruebas: pnpm test
  • Ejecutar pruebas en modo de vigilancia: pnpm test:watch
Ganchos de pre-confirmación (para desarrolladores)

El proyecto incluye ganchos previos a la confirmación para ejecutar pruebas automáticamente antes de cada confirmación:

  1. Después de clonar el repositorio, configure los ganchos previos a la confirmación:
    ./scripts/setup-husky.sh
  2. Esto garantiza que el conjunto de pruebas se ejecute automáticamente cada vez que crea una confirmación, lo que evita confirmaciones que podrían interrumpir las pruebas.

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 /sse DBHub

Colaboradores

Historia de las estrellas

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

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.

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

  1. Matriz soportada
    1. Recursos de bases de datos
    2. Herramientas de base de datos
    3. Capacidades rápidas
  2. Instalación
    1. Estibador
    2. NGP
    3. Escritorio de Claude
    4. Cursor
  3. Uso
    1. Conexiones SSL
    2. Modo de solo lectura
    3. Configurar su conexión de base de datos
    4. Transporte
    5. Opciones de línea de comandos
  4. Desarrollo
    1. Pruebas
    2. Depurar con MCP Inspector
  5. Colaboradores
    1. Historia de las estrellas

      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 -
        49
        Python
      • -
        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
      • A
        security
        A
        license
        A
        quality
        An MCP server that provides read-only access to MySQL databases.
        Last updated -
        4
        419
        17
        JavaScript
        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