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
145 lines
4.6 KiB
Markdown
145 lines
4.6 KiB
Markdown
# 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
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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:
|
|
|
|
```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:
|
|
```bash
|
|
cat test-results-*.json | jq '.[] | select(.success == false)'
|
|
```
|
|
3. **Extraer solo errores**:
|
|
```bash
|
|
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
|