@climactic/umami-mcp
v0.1.2
Published
MCP server for Umami Analytics — query stats, pageviews, metrics, sessions, events, and reports against Umami Cloud or self-hosted.
Readme
@climactic/umami-mcp
An MCP server for Umami Analytics that gives Claude (and any MCP-compatible client) full read/write access to your analytics data. Works with both Umami Cloud and self-hosted instances.
48 tools covering websites, stats, pageviews, metrics, sessions, events, reports (funnel, retention, goals, journey, attribution, UTM, revenue, performance, breakdown), teams, and user admin.
Install
Claude Code (plugin)
# Add the marketplace and install
claude /plugin marketplace add climactic/umami-mcp
claude /plugin install umami-mcp@climacticClaude Desktop / other MCP clients
Add to your mcpServers config:
{
"mcpServers": {
"umami": {
"command": "bunx",
"args": ["@climactic/umami-mcp"],
"env": {
"UMAMI_API_KEY": "your-api-key"
}
}
}
}Local dev
git clone https://github.com/climactic/umami-mcp.git
cd umami-mcp
bun install
UMAMI_API_KEY=your-key bun run index.tsAuth
Set one of these env var combinations:
Umami Cloud:
| Variable | Required | Description |
|---|---|---|
| UMAMI_API_KEY | Yes | API key from Umami Cloud dashboard |
| UMAMI_BASE_URL | No | Override API base (default: https://api.umami.is/v1) |
| UMAMI_DEFAULT_WEBSITE_ID | No | Default website UUID for tools that accept websiteId |
Self-hosted:
| Variable | Required | Description |
|---|---|---|
| UMAMI_BASE_URL | Yes | Your Umami instance URL, e.g. https://umami.example.com |
| UMAMI_USERNAME | Yes | Admin username |
| UMAMI_PASSWORD | Yes | Admin password |
| UMAMI_DEFAULT_WEBSITE_ID | No | Default website UUID |
Tools
umami_whoami— Current authenticated userumami_list_my_websites— Websites accessible to current user
umami_list_websites— List all websitesumami_get_website— Get website detailsumami_create_website— Create a new websiteumami_update_website— Update name/domain/shareIdumami_delete_website— Delete a website permanentlyumami_reset_website— Wipe all data for a website
umami_get_stats— Aggregate stats (pageviews, visitors, bounces, time)umami_get_pageviews— Pageviews + sessions time seriesumami_get_metrics— Top N by dimension (url, referrer, browser, os, country, event, ...)umami_get_active_users— Active users right nowumami_get_realtime— Last-30-minute realtime dataumami_get_daterange— Earliest/latest data timestampsumami_get_events_series— Event counts over time
umami_list_sessions— List sessions in a date rangeumami_get_session— Session detailsumami_get_session_stats— Session-level aggregatesumami_get_session_activity— Activity timeline for a sessionumami_get_session_properties— Custom properties on a sessionumami_list_session_property_values— Value counts for a session property
umami_list_events— List events in a date rangeumami_get_event_stats— Aggregate event statsumami_list_event_data— Events grouped by nameumami_list_event_fields— Event-data field value countsumami_list_event_properties— Event names + property countsumami_list_event_property_values— Value counts for event + propertyumami_send_event— Send a tracking event via/api/send
umami_list_reports— List saved reportsumami_get_report— Fetch a saved reportumami_report_funnel— Funnel conversionumami_report_retention— Retention cohortsumami_report_goal— Goal trackingumami_report_journey— User journeysumami_report_attribution— Attribution (first/last click)umami_report_utm— UTM campaign breakdownumami_report_revenue— Revenue by currencyumami_report_performance— Core Web Vitalsumami_report_breakdown— Breakdown by custom fields
umami_list_teams— List teamsumami_get_team— Team detailsumami_create_team— Create a teamumami_update_team— Update name/access codeumami_delete_team— Delete a teamumami_list_team_members— List team members
umami_list_users— List all users (admin)umami_create_user— Create a userumami_delete_user— Delete a user
Examples
Ask Claude things like:
- "How many pageviews did my site get this week?"
- "What are my top 10 referrers for the last 30 days?"
- "Show me a funnel from / to /checkout to /thank-you"
- "What's the retention look like for January?"
- "Who's on the site right now?"
- "Create a new website for staging.example.com"
Development
bun install
bun test # run test suite
bun run index.ts # start the server (needs env vars)
bunx tsc --noEmit # type check
bunx oxlint # lintSponsors
If this project saves you time, consider supporting its development:
