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.
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.
- `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
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.
One command plus a key — go install github.com/Macawls/umami-mcp-server@latest, then supply credentials
