OmniSQL MCP
OmniSQL MCP
Servidor MCP universal de bases de datos: da a los asistentes de IA acceso de lectura/escritura a tus bases de datos usando conexiones ya guardadas en el espacio de trabajo de tu cliente de BD local (compatible con DBeaver).
Esto es un fork de srthkdev/omnisql-mcp que añade soporte de túnel SSH / host de salto. No está publicado en npm — compílalo desde este repositorio (consulta Instalación).
Soporte de bases de datos
Compatible de forma nativa (controlador directo, rápido):
PostgreSQL (mediante
pg)MySQL / MariaDB (mediante
mysql2)SQL Server / MSSQL (mediante
mssql)SQLite (mediante la CLI
sqlite3)Trino / Presto (mediante
trino-client)
Compatible con Postgres (enrutado automáticamente a través del controlador pg):
CockroachDB, TimescaleDB, Amazon Redshift, YugabyteDB, AlloyDB, Supabase, Neon, Citus
Otras bases de datos: recurre a una CLI externa configurada mediante OMNISQL_CLI_PATH. Los resultados varían según la CLI.
Related MCP server: DBHub
Características
Reutiliza las conexiones ya configuradas en el espacio de trabajo de tu cliente de BD local: no hay que configurarlas de nuevo.
Soporte automático de túnel SSH / host de salto: se conecta de forma transparente a través del mismo túnel SSH y perfil de puerta de enlace/host de salto configurado en la conexión (incluidos servidores de salto encadenados), sin necesidad de configurar un túnel aparte.
Ejecución nativa de consultas para PostgreSQL, MySQL/MariaDB, SQLite, SQL Server, Trino/Presto.
Pool de conexiones con tamaño y tiempos de espera configurables (el pooling no se aplica a SQLite ni a Trino/Presto, que no mantienen conexión por consulta).
Soporte de transacciones (BEGIN/COMMIT/ROLLBACK).
Análisis del plan de ejecución de consultas (EXPLAIN).
Comparación de esquemas entre conexiones con generación de scripts de migración.
Modo de solo lectura con restricción de solo SELECT en
execute_query.Lista blanca de conexiones para restringir qué bases de datos son accesibles.
Filtrado de herramientas para deshabilitar operaciones específicas.
Validación de consultas para bloquear operaciones peligrosas (DROP DATABASE, TRUNCATE, DELETE/UPDATE sin WHERE).
Exportación de datos a CSV/JSON.
Apagado ordenado con limpieza del pool de conexiones.
Requisitos
Node.js 18+
Un cliente de BD local (compatible con DBeaver) con al menos una conexión configurada.
Instalación
Este fork no está publicado en npm: compílalo desde el código fuente:
git clone https://github.com/sangameshBB/omnisql-mcp.git
cd omnisql-mcp
npm install
npm run buildLuego enlaza el servidor compilado para que el comando omnisql-mcp apunte a él:
npm install -g .No ejecutes
npm install -g omnisql-mcppor sí solo. Eso instala el paquete original upstream desde el registro de npm, que no tiene soporte de túnel SSH / host de salto. Debes clonar este repositorio y compilarlo localmente, y luego ejecutarnpm install -g .desde dentro de la carpeta clonada como se muestra arriba.
Configuración
Claude Desktop
Añade a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp"
}
}
}Claude Code
Añade a ~/.claude/settings.json:
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp"
}
}
}Cursor
Añade en Configuración de Cursor > Servidores MCP:
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp"
}
}
}Sin instalación global
Si prefieres no ejecutar npm install -g ., apunta tu cliente MCP directamente al punto de entrada compilado:
{
"mcpServers": {
"omnisql": {
"command": "node",
"args": ["/absolute/path/to/omnisql-mcp/dist/index.js"]
}
}
}Variables de entorno
Variable | Descripción | Por defecto |
| Ruta a la CLI del cliente de BD externo (se usa como respaldo para controladores no compatibles) | Sin definir |
| Ruta al directorio del espacio de trabajo del cliente de BD local | Predeterminado del SO |
| Tiempo de espera de consulta (ms) |
|
| Habilitar registro de depuración |
|
| Deshabilitar todas las operaciones de escritura |
|
| Lista blanca separada por comas de IDs o nombres de conexión | Todos |
| Herramientas a deshabilitar separadas por comas | Ninguna |
| Mínimo de conexiones por pool |
|
| Máximo de conexiones por pool |
|
| Tiempo de espera de conexión inactiva (ms) |
|
| Tiempo de espera de adquisición de conexión (ms) |
|
| Contraseña SSH de respaldo si no se puede leer desde el espacio de trabajo | Sin definir |
| Frase de contraseña de respaldo para la clave privada SSH | Sin definir |
| Ruta de respaldo al archivo de clave privada SSH | Sin definir |
Modo de solo lectura
Bloquea todas las operaciones de escritura. La herramienta execute_query solo permite sentencias SELECT, EXPLAIN, SHOW y DESCRIBE. Las herramientas de transacciones están completamente deshabilitadas.
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp",
"env": {
"OMNISQL_READ_ONLY": "true"
}
}
}
}Lista blanca de conexiones
Restringe qué conexiones del espacio de trabajo son visibles. Acepta IDs de conexión o nombres para mostrar, separados por comas:
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp",
"env": {
"OMNISQL_ALLOWED_CONNECTIONS": "dev-postgres,staging-mysql"
}
}
}
}Deshabilitar herramientas específicas
{
"mcpServers": {
"omnisql": {
"command": "omnisql-mcp",
"env": {
"OMNISQL_DISABLED_TOOLS": "drop_table,alter_table,write_query"
}
}
}
}Herramientas disponibles
Gestión de conexiones
list_connections- Lista todas las conexiones de bases de datosget_connection_info- Obtiene los detalles de la conexióntest_connection- Prueba la conectividad
Operaciones de datos
execute_query- Ejecuta consultas de solo lectura (solo SELECT, EXPLAIN, SHOW, DESCRIBE)write_query- Ejecuta INSERT/UPDATE/DELETEexport_data- Exporta a CSV/JSON
Gestión de esquemas
list_tables- Lista tablas y vistasget_table_schema- Obtiene la estructura de la tablacreate_table- Crea tablasalter_table- Modifica tablasdrop_table- Elimina tablas (requiere confirmación)
Transacciones
begin_transaction- Inicia una nueva transacciónexecute_in_transaction- Ejecuta una consulta dentro de una transaccióncommit_transaction- Confirma una transacciónrollback_transaction- Revierte una transacción
Análisis de consultas
explain_query- Analiza el plan de ejecución de la consultacompare_schemas- Compara esquemas entre dos conexionesget_pool_stats- Obtiene estadísticas del pool de conexiones
Túnel SSH / Host de salto
get_ssh_tunnel_info- Inspecciona el perfil de túnel SSH / host de salto asociado a una conexión (censurado, sin secretos)
Otros
get_database_stats- Estadísticas de la base de datosappend_insight- Almacena notas de análisislist_insights- Recupera notas almacenadas
Seguridad
Aplicación de solo lectura:
execute_querysolo acepta sentencias de solo lectura (SELECT, EXPLAIN, SHOW, DESCRIBE, PRAGMA). Las operaciones de escritura deben usarwrite_query.Validación de consultas: bloquea DROP DATABASE, DROP SCHEMA, TRUNCATE, DELETE/UPDATE sin WHERE, GRANT, REVOKE y sentencias de gestión de usuarios.
Lista blanca de conexiones: restringe qué conexiones se exponen mediante
OMNISQL_ALLOWED_CONNECTIONS.Filtrado de herramientas: deshabilita cualquier herramienta mediante
OMNISQL_DISABLED_TOOLS.Saneamiento de entradas: los IDs de conexión y los identificadores SQL se sanean para prevenir inyecciones.
Recomendación: para uso en producción, utiliza también un usuario de solo lectura a nivel de base de datos como defensa en profundidad.
Soporte de formatos de espacio de trabajo
Compatible con ambos formatos de configuración escritos por clientes de BD compatibles con DBeaver:
Legado: configuración XML en
.metadata/.plugins/org.jkiss.dbeaver.core/Moderno: configuración JSON en
General/.dbeaver/
Las credenciales se descifran automáticamente desde el credentials-config.json del espacio de trabajo.
Soporte de túnel SSH / host de salto
Si una conexión tiene un túnel SSH (controlador de red) configurado en tu cliente de BD — incluidos uno o más servidores de salto / hosts de puerta de enlace encadenados — cada consulta nativa, test_connection, transacción y conexión del pool se enruta de forma transparente a través de él. No se requiere configuración de túnel aparte: el servidor abre un reenvío de puerto local a través de la misma cadena de saltos SSH que usaría tu cliente de BD y conecta el controlador nativo (pg, mysql2, mssql) a ese punto final local.
Admite autenticación por contraseña, clave pública y agente SSH en cada salto.
Admite servidores de salto encadenados (
localhost -> jump host(s) -> final SSH host -> database).Los túneles se abren una vez por conexión y se reutilizan entre consultas; se cierran al apagar.
Usa
get_ssh_tunnel_infopara inspeccionar el perfil de túnel/host de salto de una conexión (host, puerto, tipo de autenticación, número de servidores de salto) sin exponer ningún secreto.Si no se puede recuperar una contraseña o frase de contraseña de clave desde el almacén de credenciales cifrado del espacio de trabajo, establece
OMNISQL_SSH_PASSWORD,OMNISQL_SSH_PASSPHRASEoOMNISQL_SSH_PRIVATE_KEY_PATHcomo respaldo.
Soporte de Trino / Presto
Las conexiones Trino funcionan a través de HTTPS/HTTP (autenticación básica) usando el mismo host/usuario/contraseña ya guardados para la conexión. Algunas notas específicas de Trino:
El catálogo/esquema son opcionales. Si la conexión no tiene un catálogo/esquema predeterminado configurado (algo común al explorar varios catálogos en DBeaver), las consultas deben calificar completamente las tablas como
catalog.schema.table.list_tablesyget_table_schemano dependen del catálogo por diseño (mediantesystem.jdbc.tables/system.jdbc.columns), por lo que funcionan sin un catálogo predeterminado, pero en un clúster grande con varios catálogos esto escanea los metadatos de todos los catálogos, lo que puede ser lento y puede devolver filas duplicadas si el mismo nombre de tabla existe en más de un catálogo/esquema. Para una búsqueda rápida y sin ambigüedades, usaexecute_queryconDESCRIBE catalog.schema.tableen su lugar.El túnel SSH (arriba) funciona igual para las conexiones Trino que para cualquier otro controlador.
Trino no tiene un modelo de sesión/transacción persistente en este servidor:
begin_transactiony el pool de conexiones no están disponibles para conexiones Trino (igual que SQLite).
Desarrollo
git clone https://github.com/sangameshBB/omnisql-mcp.git
cd omnisql-mcp
npm install
npm run build
npm test
npm run lintLicencia
MIT
Maintenance
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables connecting to and querying multiple database types (PostgreSQL, MySQL, SQLite) through a unified interface. Supports managing multiple concurrent database connections with connection pooling and SQL query execution through MCP tools.528MIT
- AlicenseNot gradedqualityNot gradedmaintenanceA universal database gateway MCP server that enables AI assistants to connect to and query multiple databases (PostgreSQL, MySQL, MariaDB, SQL Server, SQLite) with support for schema exploration, SQL execution, and secure connections via SSH tunnels.14
- AlicenseNot gradedqualityDmaintenanceProvides universal database operations for AI assistants through MCP, supporting 40+ databases including PostgreSQL, MySQL, MongoDB, Redis, and SQLite with built-in introspection tools for schema exploration.29MIT
- AlicenseNot gradedqualityDmaintenanceEnables SQL agents to connect to any SQLAlchemy-supported database via MCP, providing read-only SQL querying, automatic table summarization, and column content search.4Apache 2.0
Related MCP Connectors
GibsonAI MCP server: manage your databases with natural language
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/sangamkotalwar/omnisql-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server