Umami MCP Server

Integra Umami Analytics con cualquier cliente MCP como Claude Desktop, VS Code y más.

Documentación

Umami MCP Server

Conecta tu Umami Analytics a cualquier cliente MCP: Claude Desktop, VS Code, Cursor, Windsurf, Zed, Smithery y más.

Prompts

Análisis y Tráfico

  • "Dame un informe analítico completo de mi sitio web de los últimos 30 días"
  • "¿Qué páginas están recibiendo más tráfico este mes? Muéstrame las 10 principales"
  • "Analiza los patrones de tráfico de mi sitio web: ¿cuándo recibo más visitantes?"

Información de Usuarios

  • "¿De dónde provienen mis visitantes? Desglósalo por país y ciudad"
  • "¿Qué dispositivos y navegadores usan mis usuarios?"
  • "Muéstrame el recorrido del usuario: ¿qué páginas suelen ver los visitantes en secuencia?"

Sesiones y Reproducción

  • "¿Cuántas sesiones se grabaron el mes pasado? Enumera las más activas"
  • "Guíame a través de la sesión : las páginas y eventos en orden"
  • "¿Qué sesiones grabadas provienen de dispositivos móviles en Suecia?"

Monitoreo en Tiempo Real

  • "¿Cuántas personas están en mi sitio web ahora mismo? ¿Qué páginas están viendo?"
  • "¿Mi sitio web está experimentando algún problema? Verifica si el tráfico ha caído significativamente"

Análisis de Contenido y Campañas

  • "¿Qué publicaciones de blog debería actualizar? Muéstrame artículos con tráfico en declive"
  • "¿Cómo funcionó mi reciente campaña de correo electrónico? Rastrea visitantes desde el UTM de la campaña"
  • "Compara el tráfico de diferentes plataformas de redes sociales"

Inicio Rápido

Opción 1: Descargar Binario

Obtén la última versión para tu plataforma desde Releases

Opción 2: Docker

docker run -i --rm \
  -e UMAMI_URL="https://your-instance.com" \
  -e UMAMI_USERNAME="username" \
  -e UMAMI_PASSWORD="password" \
  ghcr.io/macawls/umami-mcp-server

Opción 3: Instalar con Go

go install github.com/Macawls/umami-mcp-server@latest

Se instala en ~/go/bin/umami-mcp-server (o $GOPATH/bin)

Configuración

Elige una de las dos opciones siguientes según tu preferencia.

Remoto (Sin Instalación)

Hay una instancia alojada disponible en https://umami-mcp.macawls.dev/mcp. Conéctate directamente desde cualquier cliente MCP que admita transporte HTTP: no se necesita binario ni Docker.

Las credenciales se pasan mediante los encabezados X-Umami-* en la solicitud initialize.

Claude Desktop

Agrega a tu configuración (%APPDATA%\Claude\claude_desktop_config.json en Windows, ~/Library/Application Support/Claude/claude_desktop_config.json en macOS):

{
  "mcpServers": {
    "umami": {
      "type": "http",
      "url": "https://umami-mcp.macawls.dev/mcp",
      "headersHelper": "echo X-Umami-Host: https://your-instance.com && echo X-Umami-Username: admin && echo X-Umami-Password: pass"
    }
  }
}
VS Code (GitHub Copilot)

Agrega a .vscode/mcp.json:

{
  "servers": {
    "umami": {
      "type": "http",
      "url": "https://umami-mcp.macawls.dev/mcp",
      "headers": {
        "X-Umami-Host": "https://your-instance.com",
        "X-Umami-Username": "${input:umami-username}",
        "X-Umami-Password": "${input:umami-password}"
      }
    }
  }
}
Claude Code
claude mcp add --transport http \
  --header "X-Umami-Host: https://your-instance.com" \
  --header "X-Umami-Username: admin" \
  --header "X-Umami-Password: pass" \
  umami https://umami-mcp.macawls.dev/mcp
Cursor

Agrega a .cursor/mcp.json:

{
  "mcpServers": {
    "umami": {
      "url": "https://umami-mcp.macawls.dev/mcp",
      "headers": {
        "X-Umami-Host": "https://your-instance.com",
        "X-Umami-Username": "admin",
        "X-Umami-Password": "pass"
      }
    }
  }
}
Windsurf

Agrega a ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "umami": {
      "serverUrl": "https://umami-mcp.macawls.dev/mcp",
      "headers": {
        "X-Umami-Host": "https://your-instance.com",
        "X-Umami-Username": "admin",
        "X-Umami-Password": "pass"
      }
    }
  }
}
OpenCode

Agrega a opencode.json:

{
  "mcp": {
    "umami": {
      "type": "remote",
      "url": "https://umami-mcp.macawls.dev/mcp",
      "headers": {
        "X-Umami-Host": "https://your-instance.com",
        "X-Umami-Username": "admin",
        "X-Umami-Password": "pass"
      }
    }
  }
}
Otros Clientes

Cualquier cliente MCP que admita Streamable HTTP puede conectarse a https://umami-mcp.macawls.dev/mcp con credenciales en los encabezados X-Umami-Host, X-Umami-Username y X-Umami-Password.

Local

Ejecuta el binario o la imagen de Docker localmente. Las credenciales se configuran mediante variables de entorno.

Claude Desktop

Agrega a tu configuración (%APPDATA%\Claude\claude_desktop_config.json en Windows, ~/Library/Application Support/Claude/claude_desktop_config.json en macOS):

{
  "mcpServers": {
    "umami": {
      "command": "~/go/bin/umami-mcp-server",
      "env": {
        "UMAMI_URL": "https://your-umami-instance.com",
        "UMAMI_USERNAME": "your-username",
        "UMAMI_PASSWORD": "your-password"
      }
    }
  }
}
VS Code (GitHub Copilot)

Crea .vscode/mcp.json:

{
  "servers": {
    "umami": {
      "command": "~/go/bin/umami-mcp-server",
      "env": {
        "UMAMI_URL": "https://your-umami-instance.com",
        "UMAMI_USERNAME": "your-username",
        "UMAMI_PASSWORD": "your-password"
      }
    }
  }
}
Claude Code
claude mcp add \
  umami-mcp-server \
  -e UMAMI_URL="https://your-umami-instance.com" \
  -e UMAMI_USERNAME="your-username" \
  -e UMAMI_PASSWORD="your-password" \
  -- ~/go/bin/umami-mcp-server
Cursor

Agrega a .cursor/mcp.json:

{
  "mcpServers": {
    "umami": {
      "command": "~/go/bin/umami-mcp-server",
      "env": {
        "UMAMI_URL": "https://your-umami-instance.com",
        "UMAMI_USERNAME": "your-username",
        "UMAMI_PASSWORD": "your-password"
      }
    }
  }
}
Windsurf

Agrega a ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "umami": {
      "command": "~/go/bin/umami-mcp-server",
      "env": {
        "UMAMI_URL": "https://your-umami-instance.com",
        "UMAMI_USERNAME": "your-username",
        "UMAMI_PASSWORD": "your-password"
      }
    }
  }
}
Zed

Agrega a tu configuración de Zed en assistant.mcp_servers:

{
  "umami": {
    "command": "~/go/bin/umami-mcp-server",
    "env": {
      "UMAMI_URL": "https://your-umami-instance.com",
      "UMAMI_USERNAME": "your-username",
      "UMAMI_PASSWORD": "your-password"
    }
  }
}
Docker

Para clientes que usan un campo command (Claude Desktop, Cursor, etc.):

{
  "mcpServers": {
    "umami": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "UMAMI_URL",
        "-e", "UMAMI_USERNAME",
        "-e", "UMAMI_PASSWORD",
        "ghcr.io/macawls/umami-mcp-server"
      ],
      "env": {
        "UMAMI_URL": "https://your-umami-instance.com",
        "UMAMI_USERNAME": "your-username",
        "UMAMI_PASSWORD": "your-password"
      }
    }
  }
}

Herramientas Disponibles

HerramientaDescripción
get_websitesLista todos los sitios web (llama a esto primero para obtener los IDs de los sitios)
get_statsEstadísticas agregadas: pageviews, visitantes, rebotes, tiempo total
get_pageviewsConteos de pageviews y sesiones agrupados por unidad de tiempo
get_metricsDesglose por página, referente, navegador, sistema operativo, dispositivo, país, etc.
get_activeConteo actual de visitantes activos en tiempo real
get_sessionsLista sesiones individuales de visitantes, con conteo total: los registros de reproducción de sesiones
get_session_statsTotales de sesiones agregadas: pageviews, visitantes, visitas, países, eventos
get_session_activityLínea de tiempo ordenada de pageviews/eventos para una sola sesión

Configuración

Variables de Entorno

VariablePredeterminadoDescripción
UMAMI_URLrequeridoLa URL de tu instancia de Umami (usa https://api.umami.is para Umami Cloud)
UMAMI_USERNAMErequerido para autoalojadoNombre de usuario de Umami
UMAMI_PASSWORDrequerido para autoalojadoContraseña de Umami
UMAMI_API_KEYrequerido para Umami CloudClave API de tu cuenta de Umami Cloud (alternativa a nombre de usuario/contraseña)
UMAMI_TEAM_IDID de equipo para configuraciones basadas en equipos
TRANSPORTstdioModo de transporte (stdio o http)
PORT8080Puerto del servidor HTTP
ALLOWED_ORIGINS*Orígenes permitidos de CORS separados por comas
MAX_SESSIONS1000Máximo de sesiones HTTP concurrentes

Archivo de Configuración

En lugar de variables de entorno, crea un archivo config.yaml junto al binario:

umami_url: https://your-umami-instance.com
username: your-username
password: your-password
team_id: your-team-id  # optional

Para Umami Cloud, usa una clave API en su lugar:

umami_url: https://api.umami.is
api_key: your-api-key

Las variables de entorno tienen prioridad sobre el archivo de configuración.

Umami Cloud

Umami Cloud (la versión alojada en cloud.umami.is) no admite autenticación con nombre de usuario/contraseña. Usa una clave API desde la configuración de tu cuenta de Umami Cloud y establece UMAMI_URL=https://api.umami.is junto con UMAMI_API_KEY=.... Para transporte HTTP, envía el encabezado X-Umami-Api-Key en lugar de X-Umami-Username/X-Umami-Password.

Sitios Web de Equipo

Si tu instancia de Umami usa equipos y tus sitios web están asignados a un equipo en lugar de usuarios individuales, get_websites puede devolver una lista vacía. Establece UMAMI_TEAM_ID para obtener sitios web de tu equipo. Para transporte HTTP, usa el encabezado X-Umami-Team-Id.

Puedes encontrar tu ID de equipo en tu panel de Umami en Configuración > Equipos.

Autoalojamiento (Transporte HTTP)

El servidor admite Streamable HTTP para implementaciones remotas. Establece TRANSPORT=http para exponer un endpoint /mcp:

TRANSPORT=http PORT=9999 ./umami-mcp-server

Las credenciales se pasan mediante los encabezados X-Umami-* en la solicitud initialize. La respuesta incluye un encabezado Mcp-Session-Id para solicitudes posteriores.

Docker usa el modo HTTP por defecto:

docker run -p 8080:8080 ghcr.io/macawls/umami-mcp-server

Compilar desde el Código Fuente

git clone https://github.com/Macawls/umami-mcp-server.git
cd umami-mcp-server
go build -o umami-mcp

Solución de Problemas

  • El binario de macOS no se ejecuta: xattr -c umami-mcp-server para eliminar la cuarentena
  • El binario de Linux no se ejecuta: chmod +x umami-mcp-server
  • Errores de conexión: Verifica que tu instancia de Umami sea accesible y que las credenciales sean correctas
  • Las herramientas no aparecen: Revisa los registros de tu cliente MCP, verifica que la ruta del binario sea absoluta

Licencia

MIT