MCP Migration Advisor
Análisis de riesgos de migración de bases de datos para Flyway y Liquibase. Detecta cambios peligrosos en el esquema —riesgos de bloqueo, pérdida de datos, operaciones destructivas— antes de que lleguen a producción.
Documentación
MCP Migration Advisor
Servidor MCP para análisis de riesgo de migraciones de bases de datos. Detecta cambios de esquema peligrosos antes de que lleguen a producción.
¿Por qué esta herramienta?
Los fallos de migración de bases de datos causan interrupciones. Esta herramienta analiza tus migraciones de Flyway y Liquibase antes de que se ejecuten — detectando operaciones destructivas, riesgos de bloqueo y patrones de pérdida de datos.
A diferencia de MigrationPilot (solo PG, análisis de SQL crudo), esta herramienta analiza changelogs de Liquibase en XML y YAML de forma nativa — extrayendo changeSets, detectando conflictos entre IDs de changeSet y validando la completitud de los rollbacks. Funciona con múltiples tipos de bases de datos, no solo PostgreSQL.
Características
- Análisis de riesgo de bloqueo: Detecta operaciones DDL que adquieren bloqueos pesados de tabla (bloqueos ACCESS EXCLUSIVE, SHARE)
- Detección de pérdida de datos: Encuentra eliminaciones de columnas, cambios de tipo que truncan, TRUNCATE/DELETE sin WHERE
- Puntuación de riesgo: Calcula una puntuación de riesgo de 0-100 según la gravedad de los problemas detectados
- Soporte de Flyway: Analiza nombres de archivos de migración V__.sql y R__.sql
- Soporte de Liquibase: Analiza changelogs XML y YAML con extracción de changeSets
- Detección de conflictos: Identifica IDs de changeSet duplicados y problemas de orden
- Validación de rollback: Comprueba la completitud del rollback para cada changeSet
- Recomendaciones accionables: Cada riesgo incluye una alternativa segura específica
Nivel Pro
Genera informes de diagnóstico exportables (HTML + PDF) con una clave de licencia Pro.
- Informe completo de análisis de volcado de hilos JVM con recomendaciones accionables
- Exportación a PDF para compartir con tu equipo
- Soporte prioritario
$9.00/mes — Obtener licencia Pro
La clave de licencia Pro activa la herramienta MCP generate_report en mcp-jvm-diagnostics.
Instalación
npx mcp-migration-advisor
O instalar globalmente:
npm install -g mcp-migration-advisor
Configuración de Claude Desktop
Añade a ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"migration-advisor": {
"command": "npx",
"args": ["-y", "mcp-migration-advisor"]
}
}
}
Demo rápida
Prueba estos prompts en Claude:
- "Analiza esta migración para detectar riesgos: ALTER TABLE users DROP COLUMN email;" — Devuelve puntuación de riesgo (0-100), riesgos de bloqueo, advertencias de pérdida de datos y alternativas seguras
- "Genera un rollback para esta migración: CREATE TABLE orders (...); CREATE INDEX idx_orders_user ON orders(user_id);" — Produce DDL inverso en el orden correcto
- "Puntúa este changelog de Liquibase: [pegar XML]" — Analiza los changeSets y calcula el riesgo general
Herramientas
analyze_migration
Análisis completo de un archivo de migración SQL. Devuelve riesgos de bloqueo, análisis de pérdida de datos y recomendaciones.
Parámetros:
filename— Nombre del archivo de migración (p. ej.,V2__add_user_email.sql)sql— El contenido SQL
analyze_liquibase
Análisis completo de un changelog XML de Liquibase. Analiza los changeSets y aplica el mismo análisis de riesgo de bloqueo y pérdida de datos.
Parámetros:
xml— El contenido del changelog XML de Liquibase
analyze_liquibase_yaml
Análisis completo de un changelog YAML de Liquibase. Analiza los changeSets del formato YAML y aplica el mismo análisis de riesgo de bloqueo y pérdida de datos. Soporta todos los tipos de cambio estándar: createTable, dropTable, addColumn, dropColumn, modifyDataType, createIndex, renameTable, renameColumn y más.
Parámetros:
yaml— El contenido del changelog YAML de Liquibase
score_risk
Puntuación de riesgo rápida (0-100) con veredicto (RIESGO BAJO/MODERADO/ALTO).
Parámetros:
filename— Nombre del archivo de migraciónsql— El contenido SQL
generate_rollback
Genera DDL inverso para deshacer una migración SQL. Produce SQL de rollback con advertencias para operaciones irreversibles.
Parámetros:
filename— Nombre del archivo de migraciónsql— El contenido SQL
Invierte automáticamente:
- CREATE TABLE → DROP TABLE
- ADD COLUMN → ALTER TABLE ... DROP COLUMN
- CREATE INDEX → DROP INDEX (conserva CONCURRENTLY)
- ADD CONSTRAINT → DROP CONSTRAINT
- SET NOT NULL → DROP NOT NULL
- RENAME → RENAME inverso
Advierte sobre operaciones irreversibles:
- DROP TABLE, DROP COLUMN (pérdida de datos)
- Cambios de tipo de columna (tipo original desconocido)
- DROP INDEX, DROP CONSTRAINT (definición original desconocida)
Incluye la declaración de limpieza schema_history de Flyway.
detect_conflicts
Detecta conflictos entre dos archivos de migración SQL. Identifica modificaciones en la misma tabla, cambios en la misma columna, riesgos de contención de bloqueos y dependencias de eliminación que podrían causar fallos si se aplican de forma concurrente o en el orden incorrecto.
Parámetros:
filename_a— Nombre del primer archivo de migración (p. ej.,V3__add_email.sql)sql_a— Contenido SQL de la primera migraciónfilename_b— Nombre del segundo archivo de migración (p. ej.,V4__modify_users.sql)sql_b— Contenido SQL de la segunda migración
Detecta:
- Conflictos en la misma columna (CRÍTICO) — ambas migraciones modifican la misma columna en la misma tabla
- Dependencias de eliminación (CRÍTICO) — una migración elimina una tabla que la otra modifica, causando fallos dependientes del orden
- Contención de bloqueos (ADVERTENCIA) — ambas migraciones requieren bloqueos exclusivos en la misma tabla, arriesgando tiempos de espera de bloqueo
Devuelve un informe de conflictos con niveles de gravedad, tablas/columnas afectadas y si las migraciones pueden ejecutarse de forma segura de manera concurrente.
Qué detecta
| Patrón | Gravedad | Por qué es peligroso |
|---|---|---|
| NOT NULL sin DEFAULT | CRÍTICO | Reescritura completa de la tabla con bloqueo ACCESS EXCLUSIVE |
| Cambio de tipo de columna | CRÍTICO | Reescritura de tabla, riesgo de truncamiento de datos |
| CREATE INDEX (no CONCURRENTLY) | ALTO | El bloqueo SHARE bloquea todas las escrituras |
| DROP TABLE CASCADE | CRÍTICO | Elimina todos los objetos dependientes |
| DROP COLUMN | ALTO | Pérdida de datos irreversible |
| SET NOT NULL | ALTO | Escaneo completo de la tabla con bloqueo |
| Restricción FOREIGN KEY | MEDIO | Bloquea ambas tablas para validación |
| TRUNCATE / DELETE sin WHERE | Pérdida de datos CERTERA | Todas las filas se eliminan permanentemente |
Limitaciones y problemas conocidos
- Solo análisis estático: Analiza el texto SQL sin conectividad a la base de datos. No puede comprobar tamaños reales de tablas, recuentos de filas ni el esquema existente para calibrar el riesgo.
- Centrado en PostgreSQL: Las recomendaciones de riesgo de bloqueo son principalmente para PostgreSQL. Los comportamientos de bloqueo de MySQL y SQLite difieren y pueden no estar completamente cubiertos.
- DDL complejo: Los procedimientos almacenados, disparadores y SQL dinámico dentro de las migraciones se clasifican como "OTRO" y reciben una evaluación de riesgo genérica.
- Soporte de Liquibase: Maneja changeSets XML y YAML estándar. El formato JSON de Liquibase y los tipos de cambio personalizados no son compatibles.
- Limitaciones de rollback: Los rollbacks generados automáticamente no pueden revertir DROP TABLE, DROP COLUMN ni cambios de tipo (los datos se pierden). Estos producen advertencias en lugar de SQL de rollback.
- Transacciones de múltiples declaraciones: El analizador divide por punto y coma. Las declaraciones que contienen punto y coma dentro de cadenas o bloques entre comillas de dólar pueden dividirse incorrectamente.
- Sin ejecución: El asesor analiza pero nunca ejecuta migraciones. Todas las recomendaciones son de carácter consultivo.
- DDL específico de base de datos: El analizador se dirige a la sintaxis DDL de PostgreSQL/MySQL. Oracle PL/SQL o SQL Server T-SQL pueden no reconocerse completamente.
Parte del conjunto MCP Java Backend
- mcp-db-analyzer — Análisis de esquema de PostgreSQL/MySQL/SQLite
- mcp-spring-boot-actuator — Salud, métricas y análisis de beans de Spring Boot
- mcp-jvm-diagnostics — Análisis de volcados de hilos y registros GC
- mcp-redis-diagnostics — Diagnósticos de memoria, slowlog y clientes de Redis
Licencia
MIT
Fin de vida útil: 2026-05-10.
Este servidor MCP ya no se mantiene ni se distribuye. La Corporación
ha cambiado a actores del marketplace de Apify. Consulta
irrationalways en Apify y
irrcorp/bzp-poland-tenders para el trabajo actual de la Corporación.
El paquete npm se ha retirado de la publicación. El repositorio está archivado solo como referencia histórica.