Labsco
MCP SERVER

Umami MCP Server

by Macawls

Ask your Umami analytics questions directly — traffic, sources, devices, live visitors and recorded sessions.

SEO, Web & Product Analytics
Summary
Analytics questions answered without opening the dashboard.

It covers both halves of the picture — the aggregate numbers and the individual session timelines — so a question like "which of my posts is losing traffic and what do those visitors do next" can be answered in one pass.

What it is

A single Go binary that speaks to a Umami instance, self-hosted or Cloud, and exposes the analytics surface as tools. It runs over stdio locally, or as a Streamable HTTP service with credentials passed in headers, and there is a hosted instance you can point at without installing anything.

What you get
  • `get_websites` — the websites you have, which is where the IDs for everything else come from
  • `get_stats` — pageviews, visitors, bounces and total time for a period
  • `get_pageviews` — pageview and session counts grouped by time unit
  • `get_metrics` — the breakdown by page, referrer, browser, OS, device or country
  • `get_active` — how many people are on the site right now
  • `get_sessions` — individual visitor sessions with a total count, the same ones session replay records
  • `get_session_stats` — aggregated session totals across pageviews, visitors, visits, countries and events
  • `get_session_activity` — the ordered pageview and event timeline for one session
Requirements

For a self-hosted Umami: `UMAMI_URL` plus `UMAMI_USERNAME` and `UMAMI_PASSWORD`. Umami Cloud does not accept username and password — use `UMAMI_API_KEY` with `UMAMI_URL` set to `https://api.umami.is`. If your websites belong to a team rather than to you, `get_websites` comes back empty until you set `UMAMI_TEAM_ID`. Install by downloading a release binary, `go install`, or the container image; a `config.yaml` next to the binary works instead of environment variables, which take priority over it. `TRANSPORT=http` exposes a `/mcp` endpoint on `PORT`, default 8080, where credentials arrive as `X-Umami-*` headers on the initialize request. On macOS, `xattr -c` clears the quarantine flag if the binary will not start.

Setup effort

One command plus a key — go install github.com/Macawls/umami-mcp-server@latest, then supply credentials