DBHub

hybrid server

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

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 | | | | | | | | | | +--->+ Other Databases | | | | | | | +------------------+ +--------------+ +------------------+ 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 URIPostgreSQLMySQLServidor SQLSQLite
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 comandoPostgreSQLMySQLServidor SQLSQLite
Ejecutar consultarun_query
Conectores de listalist_connectors

Capacidades rápidas

InmediatoNombre del comandoPostgreSQLMySQLServidor SQLSQLite
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

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

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 GXP10

[!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
PostgreSQLpostgres://[user]:[password]@[host]:[port]/[database]postgres://user:password@localhost:5432/dbname?sslmode=disable
SQLitesqlite:///[path/to/file] o sqlite::memory:sqlite:///path/to/database.db o sqlite::memory:
Servidor SQLsqlserver://[user]:[password]@[host]:[port]/[database]sqlserver://user:password@localhost:1433/dbname
MySQLmysql://[user]:[password]@[host]:[port]/[database]mysql://user:password@localhost:3306/dbname

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

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

Historia de las estrellas

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

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. Configure your database connection
    2. Transport
    3. Command line options
  4. Development
    1. Debug with MCP Inspector
  5. Star History
    ID: a01xnguu8x