All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 21s
Mejoras implementadas:
- Parámetro verbose en metabase_cards, metabase_databases, metabase_collections
- Paginación en metabase_cards (page, pageSize)
- Funciones helper para filtrado de campos (filterCardFields, filterDatabaseFields, filterCollectionFields)
- Corrección de bug en metabase_databases con include_tables (API devuelve {data: []} en lugar de array directo)
Resultados:
- Reducción 94.7% en tamaño de respuestas de cards (60KB → 3KB por 5 cards)
- Reducción 90.2% en tamaño de respuestas de databases (2KB → 198 bytes)
- 100% de pruebas exitosas (9/9)
Documentación:
- Agregado ANALISIS-RESULTADOS.md con análisis detallado
- Agregado SPEC-VERBOSE.md con especificación técnica
- Agregado README-TESTING.md con guía de pruebas
- Actualizado README.md con ejemplos de uso de verbose y paginación
- Actualizado .gitignore para excluir scripts de prueba con API keys
4.6 KiB
4.6 KiB
Guía de Pruebas - MCP Metabase
Este documento explica cómo ejecutar el script de pruebas completo del MCP Metabase.
Script de Pruebas
El script test-tools.ts ejecuta todas las herramientas del MCP Metabase y genera un reporte completo con:
- Todas las respuestas sin filtrar
- Tiempos de ejecución
- Estado de éxito/fallo
- Salida en JSON estructurado
Requisitos
- Node.js y npm instalados
- API Key de Metabase
Obtener la API Key
Opción 1: Desde Metabase UI
- Ir a https://metabase.nucleoriofrio.com
- Settings → Admin → API Keys
- Crear o copiar una API Key existente
Opción 2: Desde el contenedor en producción
docker inspect nucleodocs-mcp-metabase | grep METABASE_API_KEY
Opción 3: Desde Gitea Actions Secrets
La API key está guardada como secret en Gitea con el nombre METABASE_API_KEY.
Ejecución
cd mcp-metabase-server
# Instalar dependencias si no lo has hecho
npm install
# Ejecutar con la API key como variable de entorno
METABASE_API_KEY=tu-api-key-aqui tsx test-tools.ts
Salida
El script generará:
- Consola: Resumen en tiempo real de cada prueba
- Archivo JSON:
test-results-{timestamp}.jsoncon todos los resultados completos
Ejemplo de salida en consola:
═══════════════════════════════════════════════════
🚀 Iniciando pruebas del MCP Metabase
═══════════════════════════════════════════════════
Metabase URL: https://metabase.nucleoriofrio.com
Timestamp: 2025-10-28T...
🧪 Probando: metabase_collections
Lista todas las colecciones disponibles
Parámetros: {}
✅ Éxito (234ms)
🧪 Probando: metabase_dashboards
Lista todos los dashboards
Parámetros: {}
✅ Éxito (156ms)
...
═══════════════════════════════════════════════════
📊 Resumen de Resultados
═══════════════════════════════════════════════════
✅ Exitosas: 8
❌ Fallidas: 2
📝 Total: 10
💾 Resultados guardados en: test-results-1730149234567.json
────────────────────────────────────────────────────
Herramienta Estado Tiempo
────────────────────────────────────────────────────
metabase_collections ✅ 234ms
metabase_dashboards ✅ 156ms
metabase_databases ❌ 89ms
...
────────────────────────────────────────────────────
Estructura del archivo JSON:
[
{
"toolName": "metabase_collections",
"description": "Lista todas las colecciones disponibles",
"params": {},
"success": true,
"data": { ... }, // Respuesta completa de la API
"timestamp": "2025-10-28T...",
"executionTime": 234
},
...
]
Herramientas probadas
metabase_collections- Lista coleccionesmetabase_dashboards- Lista dashboardsmetabase_databases- Lista bases de datos (sin metadata)metabase_databases_with_metadata- Lista bases de datos (con metadata)metabase_cards_search- Buscar cardsmetabase_cards_list_limited- Listar cards (limitado a 10)metabase_card_info- Obtener info de card específicametabase_execute_card- Ejecutar card con parámetrosmetabase_update_card- Actualizar card (test)metabase_update_card_revert- Revertir cambio de prueba
Análisis de Resultados
Una vez generado el archivo JSON, puedes:
- Ver respuestas completas: Abre el JSON en un editor
- Filtrar resultados grandes: Usa
jqpara filtrar:cat test-results-*.json | jq '.[] | select(.success == false)' - Extraer solo errores:
cat test-results-*.json | jq '.[] | select(.success == false) | {tool: .toolName, error: .error}'
Próximos pasos
Después de revisar los resultados completos, se puede:
- Identificar qué respuestas son demasiado grandes
- Implementar filtros y paginación
- Crear un reporte resumido automático
- Agregar más pruebas específicas