
This is a comprehensive wrapper around the Umami Analytics API v2 that gives Claude full programmatic access to your web analytics. You get 66 tools covering everything from basic stats queries (pageviews, sessions, metrics) to CRUD operations on websites, event tracking, report generation (funnel, retention, UTM, attribution), and team management. It handles both self-hosted Umami instances with username/password auth and Umami Cloud with API keys. Includes two prompts for common workflows like site overviews and traffic comparisons. Reach for this when you want to query analytics data conversationally, automate report generation, or manage your Umami setup without opening the dashboard. Built with zero dependencies using native fetch.
English | 한국어
Model Context Protocol server for the current Umami Analytics v3.3 API. It supports self-hosted username/password authentication and Umami Cloud API keys, and exposes analytics, collection, administration, and newer v3 feature families such as boards, links, pixels, segments, session replay, shares, exports, performance, and revenue.
This version intentionally does not claim every private Umami route. Its tools track the documented API and the public v3.3.1 server contracts.
npm install -g @mikusnuz/umami-mcp
Or run it directly:
npx -y @mikusnuz/umami-mcp
{
"mcpServers": {
"umami": {
"command": "npx",
"args": ["-y", "@mikusnuz/umami-mcp"],
"env": {
"UMAMI_URL": "https://analytics.example.com",
"UMAMI_USERNAME": "admin",
"UMAMI_PASSWORD": "your-password"
}
}
}
}
UMAMI_URL is the instance origin. A trailing /api is accepted, but is not
required.
{
"mcpServers": {
"umami": {
"command": "npx",
"args": ["-y", "@mikusnuz/umami-mcp"],
"env": {
"UMAMI_API_KEY": "your-cloud-api-key"
}
}
}
}
Cloud management calls default to https://api.umami.is/v1; tool paths are
translated from self-hosted /api/... paths to Cloud /v1/... paths. Set
UMAMI_URL to https://api.umami.is/v1/us or
https://api.umami.is/v1/eu when an explicit Cloud region is required.
| Variable | When required | Description |
|---|---|---|
UMAMI_URL | Self-hosted | Instance origin; optional for Cloud |
UMAMI_USERNAME | Self-hosted | Login username |
UMAMI_PASSWORD | Self-hosted | Login password |
UMAMI_API_KEY | Cloud | Bearer API key |
UMAMI_COLLECTOR_URL | Optional | Separate host for public collection/share/heartbeat/recorder routes |
For Cloud, the collector defaults to https://cloud.umami.is. For self-hosted
Umami it defaults to UMAMI_URL.
Management and analytics tools send a bearer token. The client logs in to a self-hosted instance lazily and caches the returned JWT; Cloud uses the API key as the bearer credential.
The public collection routes do not require credentials:
send_event, send_identify, send_performancebatch_events (raw JSON array, up to 500 items)heartbeat, get_share, get_recorder_configIf self-hosted login reports that two-factor authentication is required, call
complete_two_factor_login with a current TOTP or backup code, then retry the
original tool. Setup and policy tools are also exposed for self-hosted Umami.
Umami Cloud does not expose /me/password, /users, or /users/* through an
API key. Those tools are for self-hosted instances.
| Area | Representative tools |
|---|---|
| Websites | list_websites, CRUD, reset, transfer to user/team, replay configuration |
| Analytics | get_stats, get_pageviews, get_metrics, get_events, get_sessions, event series |
| Event/session data | event values, fields, properties, values, session activity |
| Collection | event/pageview, identify, performance, raw batch, link/pixel events |
| Reports | saved-report CRUD and run_report for attribution, breakdown, funnel, goal, heatmap, journey, performance, retention, revenue, and UTM |
| Boards | list, CRUD, clone, and team boards |
| Links and pixels | list, CRUD, charts, and collection events |
| Segments | segment/cohort list and CRUD |
| Replay | recorder config, replay list/detail, saved replays, session replays |
| Shares and export | public share resolution, managed website shares, update/delete, CSV ZIP export |
| Revenue | stats, chart, metrics, and revenue sessions |
| Users and teams | current admin-user and team membership/transfer routes |
| 2FA | login completion, enrollment, disable, and admin enforcement policies |
| Realtime | get_realtime |
Use MCP tools/list for the complete, machine-readable list and schemas.
{ "type": "event" } with no event name; the old
pageview type is no longer valid./api/batch receives the event objects as a raw array, not
{ "events": [...] }. The tool returns Umami's processed, errors, and
per-item details fields and marks partial failures as an MCP error result.User-Agent header as required by
Umami; send_event and batch items may also supply the visitor's
userAgent and trusted server-side ip in the payload.path; the old url metric was
removed. Host aggregation uses hostname.minute, hour, day, month, and year.get_event_series and get_sessions_weekly require an IANA timezone.list_reports requires websiteId; report execution sends
{ websiteId, type, filters, parameters }.transfer_website; the removed
team-website POST/DELETE routes are not exposed.npm install
npm test
npm test builds the TypeScript server, checks Cloud/self-hosted URL and auth
behavior, verifies raw public batch requests and the 2FA login flow, and
validates key MCP schemas.
MIT
UMAMI_URL*Your Umami instance URL
UMAMI_USERNAMELogin username (for self-hosted)
UMAMI_PASSWORDsecretLogin password (for self-hosted)
UMAMI_API_KEYsecretAPI key (for Umami Cloud)
adelaidasofia/substack-mcp