umami-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UMAMI_URL | Yes | Your Umami instance URL (e.g. https://analytics.example.com) | |
| UMAMI_API_KEY | No | API key from Umami Cloud dashboard | |
| UMAMI_PASSWORD | No | Login password for self-hosted instances | |
| UMAMI_USERNAME | No | Login username for self-hosted instances |
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_websitesC | List all websites tracked in Umami |
| get_websiteA | Get details of a specific website by ID |
| create_websiteC | Create a new website to track in Umami |
| update_websiteC | Update an existing website's configuration |
| delete_websiteB | Delete a website from Umami |
| get_active_visitorsB | Get the number of currently active visitors on a website |
| reset_websiteB | Reset a website by removing all its analytics data (irreversible) |
| transfer_websiteB | Transfer a website to a user or team using the current Umami transfer endpoint |
| get_website_reportsB | Get all reports associated with a specific website |
| get_website_chartsC | Get chart data for up to 20 websites |
| get_statsB | Get summary statistics for a website (pageviews, visitors, visits, bounces, totaltime) |
| get_pageviewsC | Get pageview and session counts over time for a website |
| get_metricsC | Get aggregated metrics for a website (e.g. top pages, browsers, countries, devices, OS, events) |
| get_eventsC | List event rows for a website with current Umami v3 filters and pagination |
| get_sessionsC | Get session data for a website |
| get_daterangeB | Get the date range of available data for a website |
| get_event_seriesC | Get event metrics over time (event series data) for a website |
| get_session_statsB | Get summarized session statistics for a website (total sessions, unique visitors, etc.) |
| get_sessions_weeklyC | Get weekly session data for a website |
| get_sessionC | Get details of a specific session |
| get_session_activityA | Get activity log for a specific session (pages visited, events fired) |
| get_session_propertiesC | Get custom properties attached to a specific session |
| get_session_data_propertiesC | Get session data property names and their data types for a website |
| get_session_data_valuesC | Get session data values (aggregated counts for session properties) for a website |
| send_eventB | Send a custom event or pageview to Umami (useful for server-side tracking) |
| get_event_valuesC | Get event or session property values for a website |
| get_event_data_eventsC | Get event data events (custom event names and counts) for a website |
| get_event_data_fieldsB | Get event data fields (property keys and their data types) for a website |
| get_event_data_propertiesB | Get custom-event property names and their data types for a website |
| get_event_data_by_idB | Get the custom data attached to one event |
| get_event_data_valuesC | Get event data values (aggregated counts for a specific property) for a website |
| get_event_data_statsC | Get event data statistics (summary counts) for a website |
| batch_eventsA | Send multiple events or pageviews in a single batch request |
| send_identifyC | Attach custom session data or a distinct ID through Umami's public collection API |
| send_performanceC | Send Core Web Vitals through Umami's public collection API |
| list_reportsB | List saved reports for a website |
| get_reportB | Get details of a specific saved report |
| create_reportC | Create and save a new report |
| update_reportC | Update an existing saved report |
| delete_reportC | Delete a saved report |
| run_reportC | Execute a current Umami v3 report and return its result |
| list_usersA | List all users (admin only) |
| create_userB | Create a new user (admin only) |
| get_userB | Get details of a specific user (admin only) |
| update_userB | Update a user's username, password, or role (admin only) |
| delete_userB | Delete a user (admin only) |
| get_user_websitesB | Get the list of websites a user has access to (admin only) |
| get_user_teamsB | Get the list of teams a user belongs to (admin only) |
| list_teamsC | List all teams |
| create_teamC | Create a new team |
| get_teamC | Get details of a specific team |
| update_teamB | Update a team's name or access code |
| delete_teamC | Delete a team |
| join_teamB | Join a team using an access code |
| list_team_usersC | List all members of a team |
| add_team_userC | Add a user to a team |
| update_team_userC | Update a team member's role |
| get_team_userC | Get details of a specific team member |
| remove_team_userC | Remove a user from a team |
| list_team_websitesC | List all websites that belong to a team |
| get_realtimeB | Get real-time data for a website (last 30 minutes). Returns current visitors, active URLs, referrers, countries, and events. |
| get_meA | Get the currently authenticated user's profile information |
| get_my_websitesC | Get the list of websites belonging to the current user |
| get_my_teamsA | Get the list of teams the current user belongs to |
| update_my_passwordA | Update the current user's password (self-hosted Umami only; Cloud API keys cannot call this route) |
| verify_authB | Verify the current authentication token is valid |
| get_shareA | Resolve a public Umami share by its slug without authentication |
| heartbeatA | Check if the Umami server is running and healthy |
| complete_two_factor_loginA | Complete a pending self-hosted Umami login after a tool reports that 2FA is required |
| list_annotationsC | List website annotations (Umami 3.4+) |
| get_annotationC | Get a website annotation (Umami 3.4+) |
| create_annotationC | Add a dated note to a website's charts (Umami 3.4+) |
| update_annotationB | Replace an annotation's date, note and all-day flag (Umami 3.4+) |
| delete_annotationC | Delete a website annotation (Umami 3.4+) |
| list_boardsC | List Umami v3 boards |
| create_boardC | Create an Umami board |
| get_boardC | Get an Umami board |
| update_boardD | Update an Umami board |
| delete_boardC | Delete an Umami board |
| clone_boardC | Clone an Umami board |
| list_team_boardsC | List boards belonging to a team |
| list_linksC | List tracked links |
| create_linkC | Create a tracked link |
| get_linkC | Get a tracked link |
| update_linkC | Update a tracked link |
| delete_linkC | Delete a tracked link |
| get_link_chartsC | Get chart data for up to 20 tracked links |
| list_pixelsC | List tracking pixels |
| create_pixelC | Create a tracking pixel |
| get_pixelC | Get a tracking pixel |
| update_pixelC | Update a tracking pixel |
| delete_pixelC | Delete a tracking pixel |
| get_pixel_chartsC | Get chart data for up to 20 tracking pixels |
| send_link_or_pixel_eventC | Send a public collection event for a tracked link or pixel |
| list_team_linksC | List tracked links belonging to a team |
| list_team_pixelsC | List tracking pixels belonging to a team |
| get_two_factor_statusB | Get self-hosted Umami 2FA status |
| initiate_two_factor_setupB | Start self-hosted Umami 2FA setup |
| confirm_two_factor_setupB | Confirm self-hosted Umami 2FA setup and receive one-time backup codes |
| cancel_two_factor_setupB | Cancel pending self-hosted Umami 2FA setup |
| disable_two_factorC | Disable self-hosted Umami 2FA when policy permits |
| set_global_two_factor_requirementA | Require or stop requiring 2FA globally (self-hosted admin only) |
| set_user_two_factor_requirementA | Require or stop requiring 2FA for a user (self-hosted admin only) |
| get_user_two_factor_statusA | Get a user's 2FA enrollment status (self-hosted admin only) |
| reset_user_two_factorA | Reset a user's 2FA enrollment and backup codes (self-hosted admin only) |
| set_team_two_factor_requirementA | Require or stop requiring 2FA for a team (self-hosted owner/manager only) |
| list_segmentsC | List saved segments or cohorts for a website |
| create_segmentC | Create a saved segment or cohort |
| get_segmentC | Get a saved segment or cohort |
| update_segmentC | Update a saved segment or cohort |
| delete_segmentC | Delete a saved segment or cohort |
| get_recorder_configC | Get public session-replay and heatmap recorder configuration |
| list_replaysC | List session replays for a website |
| get_replayC | Get reconstructed events for one session replay |
| list_saved_replaysC | List saved session replays |
| set_replay_savedC | Save or unsave a session replay (name is used when saving) |
| get_replay_saved_statusC | Check whether one session replay is saved |
| list_session_replaysC | List replay recordings linked to one session |
| list_entity_sharesC | List shares for a website, link, pixel, or board |
| create_shareC | Create a share for a website, link, pixel, or board |
| list_website_sharesC | List shares created for a website |
| create_website_shareD | Create a website share |
| get_share_by_idC | Get a managed share by internal ID |
| update_shareC | Update a managed share |
| delete_shareC | Delete a managed share |
| export_websiteB | Export website analytics as a base64-encoded ZIP of CSV files |
| get_revenue_statsC | Get revenue summary and comparison |
| get_revenue_chartC | Get revenue chart data |
| get_revenue_metricsC | Get revenue metrics by dimension |
| get_revenue_sessionsC | List sessions with revenue data |
| list_admin_teamsC | List every team (self-hosted admin only) |
| list_admin_websitesC | List every website (self-hosted admin only) |
| delete_sessionC | Delete one session (self-hosted relational storage only) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| site_overview | Comprehensive overview of a website's analytics — fetches stats, pageviews, top pages, and active visitors |
| traffic_compare | Compare traffic between two date ranges to identify trends |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| websites | List of all websites tracked in Umami |
| account | Current authenticated Umami user info |
TDQS
Scored across 133 tools
The surface contains many closely related analytics-query tools whose boundaries are hard to infer from names alone: get_stats, get_pageviews, get_metrics, get_events, get_sessions, get_session_stats, get_sessions_weekly, get_event_series, get_realtime, and get_active_visitors all risk misselection. The get_event_data_* family (stats, values, fields, properties, events, by_id) is especially overlapping, and multiple share/replay tools have similarly ambiguous scopes.
Almost all tools use snake_case with a verb-first pattern (list_websites, create_report, delete_segment, get_revenue_stats), which is predictable. There are minor deviations such as heartbeat, batch_events, send_identify, and export_website, but they remain readable and do not undermine the convention.
At 133 tools this is far beyond a well-scoped MCP surface, even for a feature-rich analytics platform. The enormous set mixes core analytics, admin, 2FA, sharing, replays, revenue, and reporting into one overloaded interface, making tool selection difficult.
Coverage is broad and lifecycle-complete for most entities: websites, users, teams, reports, annotations, boards, links, pixels, segments, shares, and replays all have create/get/update/delete-style operations. Minor gaps may exist around some interactions, but the domain surface is substantially covered.