Implementar parámetro verbose y paginación en MCP Metabase
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
This commit is contained in:
2025-10-28 16:42:12 -06:00
parent 834682519a
commit 4cbaee3fbd
6 changed files with 992 additions and 23 deletions

View File

@@ -0,0 +1,144 @@
# 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