Umami Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Umami Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
English | 한국어
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.
Use this MCP when you need to:
fetch, no external HTTP librariesnpm install -g @mikusnuz/umami-mcpOr use directly with npx:
npx @mikusnuz/umami-mcp| 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 |
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 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"| 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 |
| 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 |
| 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 |
| Tool | Description |
|---|---|
send_event | Send custom events/pageviews (server-side tracking) |
get_event_values | Event/session property values |
get_event_data_events | Event data events (custom event names and counts) |
get_event_data_fields | Event data fields (property keys and types) |
get_event_data_values | Event data values (aggregated counts for a property) |
get_event_data_stats | Event data statistics summary |
batch_events | Send multiple events in a single batch request |
| Tool | Description |
|---|---|
list_reports | List saved reports |
get_report | Get report details |
create_report | Create and save a report |
update_report | Update an existing report |
delete_report | Delete a saved report |
run_report | Execute a report (funnel, retention, utm, goals, insights, revenue, journey, attribution) |
| Tool | Description |
|---|---|
list_users | List all users |
create_user | Create a new user (username, password, role) |
get_user | Get user details |
update_user | Update user (username, password, or role) |
delete_user | Delete a user |
get_user_websites | List websites a user has access to |
get_user_usage | Get usage statistics for a user |
get_user_teams | List teams a user belongs to |
| Tool | Description |
|---|---|
list_teams | List all teams |
create_team | Create a new team |
get_team | Get team details |
update_team | Update team name |
delete_team | Delete a team |
join_team | Join a team using an access code |
list_team_users | List team members |
get_team_user | Get details of a specific team member |
add_team_user | Add a user to a team |
update_team_user | Update a team member's role |
remove_team_user | Remove a user from a team |
list_team_websites | List websites belonging to a team |
add_team_website | Add a website to a team |
remove_team_website | Remove a website from a team |
| Tool | Description |
|---|---|
get_me | Get current authenticated user profile |
get_my_websites | List current user's websites |
get_my_teams | List current user's teams |
update_my_password | Update current user's password |
verify_auth | Verify authentication token is valid |
get_share | Get shared website data by share ID |
heartbeat | Check if Umami server is healthy |
| Tool | Description |
|---|---|
get_realtime | Real-time data for last 30 minutes (visitors, URLs, referrers, countries, events) |
| Resource | URI | Description |
|---|---|---|
| Websites | umami://websites | All tracked websites |
| Account | umami://me | Current user info |
| Prompt | Description |
|---|---|
site_overview | Comprehensive site analysis (stats + pageviews + top metrics + active visitors) |
traffic_compare | Compare traffic between two date ranges |
Use get_stats to show me the last 7 days of analytics for my main website.Use the traffic_compare prompt to compare last week vs this week for website abc-123.Use send_event to track a "signup" event on my website with data { plan: "pro" }.Use batch_events to send 3 pageview events for different pages on my website.Use heartbeat to check if the Umami server is running.git clone https://github.com/mikusnuz/umami-mcp.git
cd umami-mcp
npm install
npm run buildMIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.