Files
nucleoDocs/mcp-metabase-server/README-TESTING.md
josedario87 4cbaee3fbd
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 21s
Implementar parámetro verbose y paginación en MCP Metabase
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
2025-10-28 16:42:12 -06:00

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

  1. Node.js y npm instalados
  2. API Key de Metabase

Obtener la API Key

Opción 1: Desde Metabase UI

  1. Ir a https://metabase.nucleoriofrio.com
  2. Settings → Admin → API Keys
  3. 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á:

  1. Consola: Resumen en tiempo real de cada prueba
  2. Archivo JSON: test-results-{timestamp}.json con 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

  1. metabase_collections - Lista colecciones
  2. metabase_dashboards - Lista dashboards
  3. metabase_databases - Lista bases de datos (sin metadata)
  4. metabase_databases_with_metadata - Lista bases de datos (con metadata)
  5. metabase_cards_search - Buscar cards
  6. metabase_cards_list_limited - Listar cards (limitado a 10)
  7. metabase_card_info - Obtener info de card específica
  8. metabase_execute_card - Ejecutar card con parámetros
  9. metabase_update_card - Actualizar card (test)
  10. metabase_update_card_revert - Revertir cambio de prueba

Análisis de Resultados

Una vez generado el archivo JSON, puedes:

  1. Ver respuestas completas: Abre el JSON en un editor
  2. Filtrar resultados grandes: Usa jq para filtrar:
    cat test-results-*.json | jq '.[] | select(.success == false)'
    
  3. 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:

  1. Identificar qué respuestas son demasiado grandes
  2. Implementar filtros y paginación
  3. Crear un reporte resumido automático
  4. Agregar más pruebas específicas