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.2 KiB
4.2 KiB
MCP Metabase Server
Servidor MCP (Model Context Protocol) para interactuar con Metabase API.
Instalación Rápida
claude mcp add --transport http nucleodocs-metabase https://metabase.nucleoriofrio.com/mcp
Características
Proporciona herramientas MCP para:
- metabase_cards: Listar y buscar cards/questions con soporte para
verbosey paginación - metabase_card_info: Obtener detalles de una card específica
- metabase_execute_card: Ejecutar cards con parámetros dinámicos
- metabase_create_card: Crear nuevas cards/questions
- metabase_update_card: Actualizar nombre y descripción de cards
- metabase_collections: Listar colecciones con soporte para
verbose - metabase_databases: Listar bases de datos con soporte para
verbosey metadata - metabase_dashboards: Listar dashboards
- metabase_dashboard_info: Obtener detalles de un dashboard
Parámetro verbose
Por defecto, las herramientas devuelven respuestas ligeras optimizadas para listados (reducción de ~90-95% en tamaño).
Usa verbose: true para obtener toda la información disponible.
Beneficios:
- ⚡ Respuestas 10-20x más rápidas por defecto
- 💾 Reducción de 90-95% en uso de tokens
- 🎯 Solo pides información detallada cuando la necesitas
Herramientas con soporte verbose:
metabase_cardsmetabase_databasesmetabase_collections
Variables de Entorno
PORT=3000 # Puerto del servidor (default: 3000)
METABASE_URL=http://metabase:3000 # URL de Metabase
METABASE_API_KEY=mb_xxxxxxxxxxxxx # API Key de Metabase (requerida)
Autenticación
Este servidor usa API Keys de Metabase para autenticación.
Crear una API Key en Metabase:
- Ve a Settings → Admin → API Keys
- Crea una nueva API Key
- Copia la key y configúrala como
METABASE_API_KEY
Desarrollo Local
# Instalar dependencias
npm install
# Desarrollo con hot reload
npm run dev
# Build
npm run build
# Producción
npm start
Docker
# Build
docker build -t mcp-metabase-server .
# Run
docker run -p 3000:3000 \
-e METABASE_URL=http://metabase:3000 \
-e METABASE_API_KEY=mb_xxxxx \
mcp-metabase-server
Uso con Claude Code
claude mcp add --transport http nucleodocs-metabase https://metabase.tudominio.com/mcp
Ejemplos de Uso
Listar cards (modo ligero - default)
{
"action": "list",
"pageSize": 20 // Máximo 100
}
// Respuesta: ~600 bytes por 20 cards (solo campos esenciales)
Listar cards (modo verbose - completo)
{
"action": "list",
"pageSize": 20,
"verbose": true // Incluye creator, dataset_query, parameters, etc.
}
// Respuesta: ~240 KB por 20 cards (todos los campos)
Buscar cards por nombre
{
"action": "search",
"query": "ventas"
}
Paginación
{
"action": "list",
"page": 2,
"pageSize": 50
}
// Devuelve página 2 con 50 cards
Ejecutar card con parámetros
{
"card_id": 123,
"parameters": [
{
"type": "date/single",
"target": ["variable", ["template-tag", "fecha_desde"]],
"value": "2025-01-01"
}
]
}
Crear nueva card con SQL nativa
{
"name": "Reporte de Ventas",
"description": "Ventas del último mes",
"dataset_query": {
"type": "native",
"database": 2,
"native": {
"query": "SELECT * FROM ventas WHERE fecha >= {{fecha_desde}}",
"template_tags": {
"fecha_desde": {
"type": "date",
"name": "fecha_desde",
"display_name": "Fecha Desde"
}
}
}
},
"display": "table",
"collection_id": 5
}
API Metabase
Documentación: https://www.metabase.com/docs/latest/api
Endpoints implementados:
GET /api/card- Listar cardsGET /api/card/:id- Obtener cardPOST /api/card/:id/query- Ejecutar cardPOST /api/card- Crear cardPUT /api/card/:id- Actualizar cardGET /api/collection- Listar coleccionesGET /api/database- Listar bases de datosGET /api/database/:id/metadata- Metadata de BDGET /api/dashboard- Listar dashboardsGET /api/dashboard/:id- Obtener dashboard
Licencia
MIT