Explorador SQL inteligente con IA — acceso de solo lectura, seguro y visual a tus bases de datos.
MonitorSQL es una plataforma web que permite a usuarios autorizados explorar bases de datos SQL de forma solo lectura, consultar información usando lenguaje natural asistido por inteligencia artificial, visualizar resultados con gráficos y exportar datos — todo sin exponer permisos de escritura.
- Equipos de negocio y analistas necesitan consultar datos sin depender de ingenieros.
- Compartir credenciales de base de datos es inseguro.
- Las consultas directas pueden romper la base de datos accidentalmente.
- No existe una capa de auditoría sobre quién consulta qué.
MonitorSQL resuelve esto con un gateway de solo lectura, control de acceso granular y un asistente de IA que traduce preguntas en español a SQL seguro.
- Traduce preguntas en lenguaje natural a consultas SQL seguras.
- Arquitectura Dual-Pass: primero selecciona tablas, luego genera SQL — elimina alucinaciones de tablas inexistentes.
- Memoria de largo plazo: aprende términos de negocio, tablas preferidas y patrones exitosos.
- Memoria de corto plazo: conversaciones multi-turno con contexto.
- Validación automática: solo SELECT, LIMIT obligatorio, verificación de dialecto (MySQL/PostgreSQL).
- Soporte para 7+ proveedores de IA: OpenAI, Anthropic, DeepSeek, Groq, Mistral, Gemini, Cerebras y más.
- Control de temperatura 0.1 para reducir alucinaciones.
- Resumen automático de resultados con IA.
- Conexión a MySQL/MariaDB y PostgreSQL en modo solo lectura.
- Exploración de esquemas, tablas, columnas, tipos de datos y llaves foráneas.
- Vista previa de datos con paginación.
- Editor SQL con autocompletado básico y validación en tiempo real.
- Roles y permisos personalizables por conexión, esquema y tabla.
- Límites por usuario: máximo de filas, consultas por hora, exportaciones por día.
- Permisos individuales:
queries.execute,queries.ai_generate,connections.view,audit.view, etc.
- Tablas interactivas (TanStack Table).
- Gráficos: barras, líneas, donut, KPIs (Chart.js).
- Sugerencias automáticas de tipo de gráfico desde la IA.
- Formatos: CSV, Excel, JSON.
- Exportaciones en background vía Laravel Queues para grandes volúmenes.
- Límites configurables por usuario y caducidad automática de archivos.
- Registro de cada consulta ejecutada: SQL, duración, filas retornadas, IP.
- Bloqueo automático de consultas no válidas.
- Autenticación con Laravel Fortify (2FA, verificación de email, recuperación de contraseña).
- API keys de proveedores IA encriptadas en base de datos.
- Historial completo de consultas ejecutadas con tags y notas.
- Consultas guardadas como favoritos organizadas por categorías.
- Búsqueda y filtrado del historial.
- Test de conexión en vivo.
- Métricas de estado: última prueba, tiempo de respuesta.
- Backups y snapshots de esquema.
| Capa | Tecnología |
|---|---|
| Backend | PHP 8.3+, Laravel 13, Laravel AI SDK, Laravel Fortify |
| Frontend | Vue 3, Inertia.js v3, TypeScript |
| UI | Tailwind CSS v4, shadcn-vue (reka-ui), Lucide icons |
| Visualización | Chart.js, vue-chartjs |
| Base de datos interna | SQLite (dev), PostgreSQL o MySQL (producción) |
| Bases de datos externas | MySQL, MariaDB, PostgreSQL |
| IA | OpenAI, Anthropic (Claude), DeepSeek, Groq, Mistral, Gemini, Cerebras, xAI, OpenRouter |
| Colas | Laravel Queues (database/redis) |
| Testing | PHPUnit 12, 73 tests |
- PHP 8.3 o superior
- Composer 2.x
- Node.js 20+ y pnpm (o npm)
- Base de datos SQLite, MySQL 8 o PostgreSQL 15+ para los datos internos de MonitorSQL
- Extensiones PHP:
pdo_mysql,pdo_pgsql,mbstring,json,xml
# 1. Clonar el repositorio
git clone https://github.com/ecr17dev/MonitorSQL.git
cd monitorsql
# 2. Instalar dependencias PHP
composer install
# 3. Instalar dependencias frontend
pnpm install # o npm install
# 4. Configurar entorno
cp .env.example .env
php artisan key:generate
# 5. Configurar base de datos interna en .env
# Por defecto usa SQLite (database/database.sqlite)
touch database/database.sqlite
# 6. Ejecutar migraciones y seeders
php artisan migrate --seed
# 7. Iniciar el servidor de desarrollo
composer run devEl comando composer run dev inicia simultáneamente:
- Servidor PHP Artisan (
php artisan serve) - Servidor Vite para assets frontend
- Worker de colas para exportaciones
Abre http://localhost:8000 en tu navegador.
| Campo | Valor |
|---|---|
admin@monitorsql.com |
|
| Password | La que definas en DatabaseSeeder |
MonitorSQL soporta múltiples proveedores de IA. Configura al menos uno en tu .env:
# Proveedor principal
AI_DEFAULT_PROVIDER=openai
AI_DEFAULT_MODEL=gpt-4.1-mini
# Fallback (opcional)
AI_FALLBACK_PROVIDER=anthropic
AI_FALLBACK_MODEL=
# Temperatura (0.0-1.0) — menor = menos alucinaciones
AI_TEMPERATURE=0.1
# Claves API
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...También puedes configurar proveedores desde la UI en /settings/ai-providers.
- Ve a Conexiones en el panel lateral.
- Haz clic en Nueva conexión.
- Completa los datos de tu base de datos MySQL o PostgreSQL.
- Usa credenciales con permisos de solo lectura (recomendado:
SELECTúnicamente). - Haz clic en Probar conexión.
- Una vez verificada, la conexión estará disponible para todos los usuarios autorizados.
Usuario → Autenticación (Fortify/2FA)
→ Autorización (Roles/Permisos)
→ Gateway solo lectura
→ Validación SQL (QueryValidationService)
→ Base de datos externa (SELECT only)
→ Auditoría (AuditLog)
Cada consulta pasa por un pipeline de validación que:
- Normaliza y limpia comentarios SQL.
- Rechaza sentencias que no sean SELECT o WITH.
- Bloquea tokens peligrosos (INSERT, UPDATE, DELETE, DROP, etc.).
- Verifica que todas las tablas referenciadas estén en la allowlist.
- Valida compatibilidad de dialecto (no ILIKE en MySQL, etc.).
- Añade LIMIT automático si no está presente.
- Genera hash SHA-256 para auditoría.
El sistema usa dos agentes de IA en secuencia:
- TableSelectorAgent — Dada la pregunta y las tablas permitidas, selecciona las tablas correctas. Si no hay match, responde con sugerencias en vez de inventar.
- SqlQueryAssistant — Recibe solo las tablas confirmadas + su schema real, y genera SQL seguro. No puede alucinar tablas porque solo conoce las verificadas.
- Aliases de términos: "contactos" →
contacts, "ventas" →orders - Tablas preferidas: aprende qué tablas usas más
- Patrones analíticos: CTEs, window functions, agregaciones
- Tracking de alucinaciones: registra tablas inventadas para advertir en futuros prompts
El system prompt de la IA es editable desde la UI (/settings/system-prompt) y soporta:
- Reglas de prioridad P0/P1/P2
- Guardrails anti-alucinaciones
- Ejemplos few-shot
- Adaptación automática al dialecto
| Permiso | Descripción |
|---|---|
connections.view |
Ver lista de conexiones |
connections.create |
Crear/editar conexiones (admin) |
schemas.view |
Explorar esquemas de base de datos |
tables.view |
Ver tablas y columnas |
queries.execute |
Ejecutar consultas SQL |
queries.ai_generate |
Usar el asistente de IA |
queries.export |
Exportar datos |
audit.view |
Ver registros de auditoría |
# Todos los tests
php artisan test --compact
# Tests específicos
php artisan test --compact --filter=testName
# Solo un archivo
php artisan test --compact tests/Feature/Settings/ProfileUpdateTest.phpEl proyecto incluye 73 tests con 329 assertions cubriendo autenticación, permisos, validación SQL y más.
- Conexiones MySQL/PostgreSQL
- Asistente IA con múltiples proveedores
- Control de acceso RBAC
- Auditoría completa
- Exportación CSV/Excel/JSON
- Historial y favoritos
- Memoria IA de largo plazo
- Arquitectura Dual-Pass anti-alucinaciones
- Dashboards personalizables
- Alertas y notificaciones
- API REST pública
- Soporte para SQL Server y Oracle
- Editor SQL avanzado con Monaco Editor
Este proyecto es open source para uso no comercial bajo la licencia Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
No está permitido el uso comercial sin autorización expresa. Si deseas usar MonitorSQL en un entorno comercial, por favor contacta al autor para obtener una licencia comercial.
Las contribuciones son bienvenidas. Por favor:
- Haz fork del repositorio.
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad). - Escribe tests para tus cambios.
- Asegúrate de que todos los tests pasen (
php artisan test --compact). - Ejecuta el formateador (
vendor/bin/pint --format agent). - Envía un Pull Request.
Creado por ecr17dev. MonitorSQL nació de la necesidad de dar acceso seguro a datos sin exponer la base de datos a modificaciones accidentales.
Hecho con Laravel, Vue y mucho cuidado por la seguridad de tus datos.
