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
| Herramienta | Descripción |
|---|---|
get_websites | Lista todos los sitios web (llama a esto primero para obtener los IDs de los sitios) |
get_stats | Estadísticas agregadas: pageviews, visitantes, rebotes, tiempo total |
get_pageviews | Conteos de pageviews y sesiones agrupados por unidad de tiempo |
get_metrics | Desglose por página, referente, navegador, sistema operativo, dispositivo, país, etc. |
get_active | Conteo actual de visitantes activos en tiempo real |
get_sessions | Lista sesiones individuales de visitantes, con conteo total: los registros de reproducción de sesiones |
get_session_stats | Totales de sesiones agregadas: pageviews, visitantes, visitas, países, eventos |
get_session_activity | Línea de tiempo ordenada de pageviews/eventos para una sola sesión |
Configuración
Variables de Entorno
| Variable | Predeterminado | Descripción |
|---|---|---|
UMAMI_URL | requerido | La URL de tu instancia de Umami (usa https://api.umami.is para Umami Cloud) |
UMAMI_USERNAME | requerido para autoalojado | Nombre de usuario de Umami |
UMAMI_PASSWORD | requerido para autoalojado | Contraseña de Umami |
UMAMI_API_KEY | requerido para Umami Cloud | Clave API de tu cuenta de Umami Cloud (alternativa a nombre de usuario/contraseña) |
UMAMI_TEAM_ID | ID de equipo para configuraciones basadas en equipos | |
TRANSPORT | stdio | Modo de transporte (stdio o http) |
PORT | 8080 | Puerto del servidor HTTP |
ALLOWED_ORIGINS | * | Orígenes permitidos de CORS separados por comas |
MAX_SESSIONS | 1000 | Má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-serverpara 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