umami-analytics-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UMAMI_API_KEY | No | Umami Cloud API key (selects Cloud mode). | |
| UMAMI_API_URL | No | Self-hosted instance base URL, e.g. https://stats.example.com (/api appended). | |
| UMAMI_TEAM_ID | No | Scope website listings to a team (optional). | |
| MCP_AUTH_TOKEN | No | Shared-secret bearer required by remote endpoints. | |
| UMAMI_PASSWORD | No | Login password for self-hosted. | |
| UMAMI_USERNAME | No | Login username for self-hosted. | |
| UMAMI_CLOUD_REGION | No | us or eu (optional regional base URL for Cloud). | |
| UMAMI_ENABLE_ADMIN | No | 1 to expose user-management tools (self-hosted only). | |
| UMAMI_ENABLE_WRITE | No | 1 to expose create/update + send_event tools. | |
| UMAMI_DEFAULT_TIMEZONE | No | IANA tz for time-series tools (default UTC). | UTC |
| UMAMI_ALLOW_DESTRUCTIVE | No | 1 to also expose delete/reset tools. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_websitesA | List every website you can access (including team sites). CALL THIS FIRST — every other tool needs a website ID from here. Returns id, name, domain, createdAt. |
| get_websiteA | Fetch one website's metadata (name, domain, share settings, createdAt) by ID. |
| get_website_daterangeA | Return the earliest and latest timestamps for which a website has analytics data. Use this to choose a valid window before querying stats/metrics. |
| get_statsA | Aggregate metrics for a website over a date range: pageviews, visitors (unique sessions), visits, bounces (single-pageview sessions), and totaltime (seconds). Includes a previous-period |
| get_pageviewsB | Pageviews and sessions over time, bucketed by |
| get_active_visitorsA | Current real-time active visitor count for a website (visitors in the last few minutes). |
| get_realtimeA | Richer real-time snapshot for a website (recent events/sessions/series). Availability varies by Umami version; falls back gracefully. |
| get_metricsC | Top-N breakdown of a website by a single dimension ( |
| get_website_valuesA | List the distinct values seen for a column over a date range — useful to discover valid filter values (e.g. all browsers or countries) before filtering other queries. |
| get_eventsA | Custom-event activity over time for a website, bucketed by |
| get_event_dataA | Explore custom event properties. |
| list_sessionsB | Paginated list of individual visitor sessions over a date range (id, browser, os, device, geo, screen, visits, views, firstAt/lastAt). Supports search + filters. |
| get_sessionA | Fetch a single visitor session's details by session ID. |
| get_session_activityB | Ordered pageview/event timeline for a single session (createdAt, urlPath, referrer, eventType, eventName) — effectively a data-level session replay. |
| get_session_statsA | Aggregate session totals over a date range: pageviews, visitors, visits, countries, events — a session-centric overview. |
| get_session_propertiesA | List the custom properties attached to a single session (set via identify calls). |
| report_funnelA | Conversion funnel across an ordered list of steps. Each step is { type: 'path' | 'event', value }. |
| report_retentionA | Cohort retention over the selected period (how many users return on subsequent days). |
| report_journeyA | Most common navigation paths through the site, up to |
| report_goalsB | Progress toward one or more goals. Each goal is { type: 'event' | 'path', value }. Computed per goal against Umami's /reports/goal endpoint. |
| report_attributionA | Conversion attribution. |
| report_revenueA | Revenue analytics over the period (requires revenue events configured in Umami). |
| report_utmC | Breakdown of traffic by UTM parameters (source, medium, campaign, content, term). |
| report_breakdownC | Multi-dimensional breakdown across one or more fields (e.g. ['country','browser']). |
| list_reportsA | List saved reports (funnels, goals, journeys, etc.), optionally scoped to a website. |
| get_reportA | Fetch a saved report's full definition (type, parameters) by ID. |
| list_segmentsA | List saved segments and cohorts defined for a website. |
| get_segmentA | Fetch a single segment/cohort definition by ID. |
| list_teamsA | List teams you belong to (id, name, role). Available on both Cloud and self-hosted. |
| get_teamA | Fetch a single team's metadata by ID. |
| get_team_membersA | List members of a team and their roles (team-owner, team-manager, team-member, team-view-only). |
| get_meA | Return the authenticated account's profile: id, username, role, isAdmin, and teams. Credentials/tokens are stripped from the response. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| analytics_report | Full traffic report for a website over N days. |
| traffic_overview | Quick traffic snapshot. |
| top_pages | Most-visited pages. |
| acquisition_channels | Where traffic comes from. |
| realtime_check | Who's on the site right now. |
| funnel_analysis | Conversion funnel across steps. |
| retention_analysis | Returning-visitor retention. |
| audience_insights | Who the visitors are. |
| compare_periods | This period vs the previous. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| websites | All accessible websites |
| me | Authenticated profile (sanitized) |
TDQS
Scored across 32 tools
Most tools have distinct purposes, but the high number (32) and some similar-sounding names (e.g., get_events vs get_metrics for events, get_realtime vs get_active_visitors) may cause confusion. Descriptions are clear enough to differentiate, but an agent might misselect without careful reading.
All tools follow a consistent verb_noun pattern in snake_case: get_*, list_*, report_*. This is a predictable and clear naming scheme that helps an agent quickly grasp the tool's action and subject.
With 32 tools, the surface is heavy. While the analytics domain is broad and many tools serve distinct analytical needs, the count exceeds the 'heavy' threshold (16-25). Some tools could potentially be consolidated (e.g., report_* tools share similar structure).
The tool set covers the full analytics lifecycle: website and team metadata, time-series data, event tracking, session details, real-time, saved reports, segments, and various report types (funnels, goals, retention, etc.). It includes utility tools like get_website_daterange and get_website_values for validation. No obvious gaps for a read-only analytics server.