Some checks failed
build-and-deploy / build-and-deploy (push) Failing after 12s
- Usar registerTool con 3 argumentos (nombre, metadata, handler)
- InputSchema y outputSchema como objetos planos con propiedades Zod
- Handlers retornan {content, structuredContent} o {content, isError}
- Transport sin endpoint, usar sessionIdGenerator: undefined
- Corregir tipo HeadersInit a Record<string, string>
- Soluciona errores de TypeScript en el build
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
- 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
- metabase_databases: Listar bases de datos (con opción de incluir metadata)
- metabase_dashboards: Listar dashboards
- metabase_dashboard_info: Obtener detalles de un dashboard
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 todas las cards
{
"action": "list"
}
Buscar cards por nombre
{
"action": "search",
"query": "ventas"
}
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