Add it to Claude Code
claude mcp add -e "UMAMI_URL=${UMAMI_URL}" umami-mcp -- npx -y @mikusnuz/umami-mcpUMAMI_URL+ 3 optionalMake your agent remember this setup
umami-mcp's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.
npx conare@latestFree · one command · indexes the sessions already on disk. Set up in the browser instead →
What it does
- 66 tools covering full CRUD for websites, analytics, and user management
- Supports both self-hosted (JWT) and Umami Cloud (API key) authentication
- Includes 2 resources for website lists and account info
- Provides 2 pre-built prompts for site overview and traffic comparison
- Zero dependencies using native fetch for lightweight performance
Tools 8
list_websitesList all tracked websitesget_websiteGet website details by IDcreate_websiteCreate a new websiteget_statsSummary statistics including pageviews, visitors, and bounce rateget_pageviewsPageview and session counts over timeget_metricsAggregated metrics such as top pages, browsers, and countriesget_active_visitorsGet current active visitor countsend_eventSend custom events or pageviewsEnvironment Variables
UMAMI_URLrequiredYour Umami instance URLUMAMI_USERNAMELogin username for self-hosted instancesUMAMI_PASSWORDLogin password for self-hosted instancesUMAMI_API_KEYAPI key for Umami CloudTry it
Original README from mikusnuz/umami-mcp
English | 한국어
umami-mcp
Full-coverage Model Context Protocol (MCP) server for Umami Analytics API v2.
Unlike existing Umami MCP implementations (read-only, ≤5 tools), this server provides 66 tools, 2 resources, and 2 prompts covering the entire Umami API — websites CRUD, stats, sessions, events, event-data, session-data, reports, user management, teams, realtime, account, and more.
When to Use
Use this MCP when you need to:
- "Show me website analytics for the last 7 days" — get stats, pageviews, and metrics with date filters
- "Which pages got the most views this month?" — query aggregated metrics by URL
- "Compare traffic between two date ranges" — use the traffic_compare prompt or get_stats with different ranges
- "Set up a new website in Umami" — create and configure tracked websites
- "Get real-time active visitors" — check active visitors and real-time data
- "Export analytics report" — create, run, and retrieve reports (funnel, retention, UTM, goals, revenue, attribution)
- "Track a custom event from the server" — send events or batch events programmatically
- "Manage team access to analytics" — create teams, add users and websites to teams
Features
- 66 Tools — Full CRUD for websites, detailed analytics, session tracking, event sending & event-data queries, report management (including attribution), user/team administration, team-website management, account management, batch events, and realtime monitoring
- 2 Resources — Quick access to website list and account info
- 2 Prompts — Pre-built analytics workflows (site overview, traffic comparison)
- Dual Auth — Self-hosted (username/password → JWT) and Umami Cloud (API key)
- Lazy Config — Server starts without credentials; auth is checked on first API call
- Zero Dependencies — Uses native
fetch, no external HTTP libraries
Installation
npm install -g @mikusnuz/umami-mcp
Or use directly with npx:
npx @mikusnuz/umami-mcp
Configuration
Environment Variables
| Variable | Required | Description |
|---|---|---|
UMAMI_URL |
Yes | Your Umami instance URL (e.g. https://analytics.example.com) |
UMAMI_USERNAME |
For self-hosted | Login username |
UMAMI_PASSWORD |
For self-hosted | Login password |
UMAMI_API_KEY |
For Umami Cloud | API key from Umami Cloud dashboard |
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"umami": {
"command": "npx",
"args": ["-y", "@mikusnuz/umami-mcp"],
"env": {
"UMAMI_URL": "https://analytics.example.com",
"UMAMI_USERNAME": "admin",
"UMAMI_PASSWORD": "your-password"
}
}
}
}
Claude Code
claude mcp add umami -- npx -y @mikusnuz/umami-mcp
# Set environment variables
export UMAMI_URL="https://analytics.example.com"
export UMAMI_USERNAME="admin"
export UMAMI_PASSWORD="your-password"
Tools (66)
Websites (9)
| Tool | Description |
|---|---|
list_websites |
List all tracked websites |
get_website |
Get website details by ID |
create_website |
Create a new website |
update_website |
Update website configuration |
delete_website |
Delete a website |
get_active_visitors |
Get current active visitor count |
reset_website |
Reset all analytics data for a website |
transfer_website |
Transfer website ownership to another user |
get_website_reports |
Get all reports for a website |
Stats & Analytics (9)
| Tool | Description |
|---|---|
get_stats |
Summary statistics (pageviews, visitors, bounce rate, etc.) |
get_pageviews |
Pageview/session counts over time |
get_metrics |
Aggregated metrics (top pages, browsers, countries, etc.) |
get_events |
Event data over time |
get_sessions |
Session listing with filters |
get_daterange |
Available data date range |
get_event_series |
Event metrics over time (event series) |
get_session_stats |
Summarized session statistics |
get_sessions_weekly |
Weekly session data |
Sessions (5)
| Tool | Description |
|---|---|
get_session |
Session details |
get_session_activity |
Session activity log |
get_session_properties |
Session custom properties |
get_session_data_properties |
Session data property names and types |
get_session_data_values |
Session data aggregated values |
Events (7)
| Tool | Description |
|---|---|
send_event |
Send custom events/pageviews (server-side tracki |