Implementar parámetro verbose y paginación en MCP Metabase
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 21s
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:
144
mcp-metabase-server/README-TESTING.md
Normal file
144
mcp-metabase-server/README-TESTING.md
Normal 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
|
||||
Reference in New Issue
Block a user