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.
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 recurso | Formato URI | PostgreSQL | MySQL | MariaDB | Servidor SQL | SQLite | Oráculo |
---|---|---|---|---|---|---|---|
esquemas | db://schemas | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
tablas_en_esquema | db://schemas/{schemaName}/tables | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
estructura_de_tabla_en_esquema | db://schemas/{schemaName}/tables/{tableName} | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
índices_en_tabla | db://schemas/{schemaName}/tables/{tableName}/indexes | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
procedimientos_en_esquema | db://schemas/{schemaName}/procedures | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
detalles_del_procedimiento_en_el_esquema | db://schemas/{schemaName}/procedures/{procedureName} | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
Herramientas de base de datos
Herramienta | Nombre del comando | PostgreSQL | MySQL | MariaDB | Servidor SQL | SQLite | Oráculo |
---|---|---|---|---|---|---|---|
Ejecutar SQL | execute_sql | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Conectores de lista | list_connectors | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Capacidades rápidas
Inmediato | Nombre del comando | PostgreSQL | MySQL | MariaDB | Servidor SQL | SQLite | Oráculo |
---|---|---|---|---|---|---|---|
Generar SQL | generate_sql | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Explicar los elementos de la base de datos | explain_db | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Instalación
Estibador
NGP
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 solo admite el transporte
stdio
https://github.com/orgs/modelcontextprotocol/discussions/16
Cursor
- El cursor admite tanto
stdio
comosse
. - Siga la guía de Cursor MCP y asegúrese de utilizar el modo Agente .
Uso
Conexiones SSL
Puede especificar el modo SSL utilizando el parámetro sslmode
en su cadena DSN:
Base de datos | sslmode=disable | sslmode=require | Comportamiento SSL predeterminado |
---|---|---|---|
PostgreSQL | ✅ | ✅ | Verificación del certificado |
MySQL | ✅ | ✅ | Verificación del certificado |
MariaDB | ✅ | ✅ | Verificación del certificado |
Servidor SQL | ✅ | ✅ | Verificación del certificado |
Oráculo | ✅ | ✅ | N/A (utilizar la configuración del cliente Oracle) |
SQLite | ❌ | ❌ | N/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:
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:
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:
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):
- Variable de entorno (segunda prioridad):
- Expediente de entorno (tercera prioridad):
- Para desarrollo: crea
.env.local
con tu DSN - Para producción: crea
.env
con tu DSN GXP14
- Para desarrollo: crea
[!ADVERTENCIA] Al ejecutar en Docker, use
host.docker.internal
en lugar delocalhost
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 datos | Formato DSN | Ejemplo |
---|---|---|
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 |
Servidor SQL | sqlserver://[user]:[password]@[host]:[port]/[database] | sqlserver://user:password@localhost:1433/dbname?sslmode=disable |
SQLite | sqlite:///[path/to/file] o sqlite::memory: | sqlite:///path/to/database.db , sqlite:C:/Users/YourName/data/database.db (windows) o sqlite::memory: |
Oráculo | oracle://[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
- Descargue e instale Oracle Instant Client para su plataforma
- Establezca la variable de entorno
ORACLE_LIB_DIR
en la ruta de su Oracle Instant Client:
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:
- sse - para clientes de navegador y red:
Opciones de línea de comandos
Opción | Descripción | Por defecto |
---|---|---|
manifestación | Ejecutar en modo de demostración con una base de datos de empleados de muestra | false |
dsn | Cadena de conexión a la base de datos | Obligatorio si no está en modo de demostración |
transporte | Modo de transporte: stdio o sse | stdio |
puerto | Puerto del servidor HTTP (solo aplicable cuando se utiliza --transport=sse ) | 8080 |
solo lectura | Restringir la ejecución de SQL a operaciones de solo lectura | false |
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
- Instalar dependencias:
- Ejecutar en modo de desarrollo:
- Construir para producción:
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:
- Después de clonar el repositorio, configure los ganchos previos a la confirmación:
- 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
SSE
Conectarse al punto final del servidor /sse
DBHub
Colaboradores
Historia de las estrellas
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.
Servidor de base de datos universal MCP que se conecta a MySQL, PostgreSQL, SQLite, DuckDB, etc.
Related Resources
Related MCP Servers
- -securityFlicense-qualityAn 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 -49Python
- -securityAlicense-qualityAn MCP server for MotherDuck and local DuckDB.Last updated -3167PythonMIT License
- -securityAlicense-qualityMCP to access any database accessible via JDBC such as Postgres, Oracle, mysql, mariadb, sqlite etc.Last updated -129Apache 2.0
- AsecurityAlicenseAqualityAn MCP server that provides read-only access to MySQL databases.Last updated -441917JavaScriptMIT License