Agregar servidor MCP Metabase
Some checks failed
build-and-deploy / build-and-deploy (push) Failing after 9s

- Implementado mcp-metabase-server con TypeScript
- 9 herramientas para interactuar con Metabase API
- Soporta listar/buscar cards, ejecutar queries con parámetros
- Soporta crear y actualizar cards
- Autenticación con API Key
- Agregado servicio al docker-compose.yml
- Configurado en Traefik sin autenticación Authentik
- Actualizado README con documentación completa
- Variables y secrets configurados en Gitea
This commit is contained in:
2025-10-28 10:49:18 -06:00
parent b57ac8de83
commit 5c6fd8fef3
9 changed files with 658 additions and 0 deletions

View File

@@ -0,0 +1,155 @@
# MCP Metabase Server
Servidor MCP (Model Context Protocol) para interactuar con Metabase API.
## Instalación Rápida
```bash
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
```bash
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:
1. Ve a Settings → Admin → API Keys
2. Crea una nueva API Key
3. Copia la key y configúrala como `METABASE_API_KEY`
## Desarrollo Local
```bash
# Instalar dependencias
npm install
# Desarrollo con hot reload
npm run dev
# Build
npm run build
# Producción
npm start
```
## Docker
```bash
# 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
```bash
claude mcp add --transport http nucleodocs-metabase https://metabase.tudominio.com/mcp
```
## Ejemplos de Uso
### Listar todas las cards
```typescript
{
"action": "list"
}
```
### Buscar cards por nombre
```typescript
{
"action": "search",
"query": "ventas"
}
```
### Ejecutar card con parámetros
```typescript
{
"card_id": 123,
"parameters": [
{
"type": "date/single",
"target": ["variable", ["template-tag", "fecha_desde"]],
"value": "2025-01-01"
}
]
}
```
### Crear nueva card con SQL nativa
```typescript
{
"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 cards
- `GET /api/card/:id` - Obtener card
- `POST /api/card/:id/query` - Ejecutar card
- `POST /api/card` - Crear card
- `PUT /api/card/:id` - Actualizar card
- `GET /api/collection` - Listar colecciones
- `GET /api/database` - Listar bases de datos
- `GET /api/database/:id/metadata` - Metadata de BD
- `GET /api/dashboard` - Listar dashboards
- `GET /api/dashboard/:id` - Obtener dashboard
## Licencia
MIT