Agregar servidor MCP Metabase
Some checks failed
build-and-deploy / build-and-deploy (push) Failing after 9s
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:
155
mcp-metabase-server/README.md
Normal file
155
mcp-metabase-server/README.md
Normal 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
|
||||
Reference in New Issue
Block a user