umami-mcp-server
Provides read-only tools, prompts, and resources to interact with Umami Analytics API, enabling retrieval of website stats, events, sessions, reports, and composite analytics like traffic sources, visitor demographics, and engagement scores.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@umami-mcp-servershow me pageviews for the last 7 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
61 read-only tools, 4 prompts, and 3 resources over MCP. Built on the official TypeScript SDK. Runs with npx — no install required.
Quick start
npx umami-mcp-serverOr install globally:
npm install -g umami-mcp-serverRelated MCP server: Umami MCP Server
Setup
Claude Code
claude mcp add -e UMAMI_API_KEY=your-api-key umami -- npx -y umami-mcp-serverOr add to .mcp.json in your project root:
{
"mcpServers": {
"umami": {
"command": "npx",
"args": ["-y", "umami-mcp-server"],
"env": {
"UMAMI_API_KEY": "your-api-key"
}
}
}
}Claude Desktop
Settings > Developer > Edit Config > claude_desktop_config.json:
{
"mcpServers": {
"umami": {
"command": "npx",
"args": ["-y", "umami-mcp-server"],
"env": {
"UMAMI_API_KEY": "your-api-key"
}
}
}
}Cursor
.cursor/mcp.json:
{
"mcpServers": {
"umami": {
"command": "npx",
"args": ["-y", "umami-mcp-server"],
"env": {
"UMAMI_API_KEY": "your-api-key"
}
}
}
}VS Code (Copilot)
settings.json:
{
"mcp": {
"servers": {
"umami": {
"command": "npx",
"args": ["-y", "umami-mcp-server"],
"env": {
"UMAMI_API_KEY": "your-api-key"
}
}
}
}
}ChatGPT
ChatGPT supports MCP servers via remote connection (requires a publicly accessible URL).
Deploy this server behind a public HTTPS endpoint with SSE transport (e.g. using mcp-remote or a tunnel like ngrok)
In ChatGPT, go to Settings > Connectors > Advanced > Developer Mode
Add the server URL
ChatGPT cannot connect to localhost directly. You need a public URL or tunnel.
Available for ChatGPT Pro, Team, Enterprise, and Edu plans.
OpenAI Codex / Windsurf / Zed
Same pattern — command npx, args ["-y", "umami-mcp-server"], plus environment variables.
Smithery
npx -y @smithery/cli install umami-mcp-server --client claudeSelf-hosted Umami
Replace the env block in any config above:
{
"UMAMI_URL": "https://your-umami-instance.com",
"UMAMI_USERNAME": "admin",
"UMAMI_PASSWORD": "your-password"
}Environment variables
Variable | Required | Description |
| Cloud | API key from Umami Cloud Settings > API Keys |
| No | API base URL (default: |
| Self-hosted | Umami instance URL |
| Self-hosted | Login username |
| Self-hosted | Login password |
Set UMAMI_API_KEY for Cloud, or UMAMI_URL + UMAMI_USERNAME + UMAMI_PASSWORD for self-hosted. Auto-detected.
Tools
Website stats (11)
Tool | Description |
| List all tracked websites with IDs and creation dates |
| Get details for a specific website |
| Aggregated stats: pageviews, visitors, visits, bounces, total time |
| Time-series pageview and session data by time unit |
| Breakdown by path, referrer, browser, OS, device, country, etc. |
| Per-item stats: pageviews, visitors, bounces, time on page |
| Current active visitors |
| Available data date range for a website |
| Last 30 minutes: visitors, URLs, referrers, events, totals |
| List public share pages for a website |
| Get a share page by ID |
Events (9)
Tool | Description |
| Event details within a time range (paginated, searchable) |
| Event data over time with timezone support |
| Aggregated event statistics |
| Event data for a specific event |
| Event names, properties, and counts |
| Event property and value counts |
| Event name and property counts |
| Counts for a specific event/property combination |
| Aggregated totals: events, properties, records |
Sessions (8)
Tool | Description |
| Session list with browser, OS, device, country (paginated) |
| Session aggregates: pageviews, visitors, countries, events |
| Heatmap: 7 days x 24 hours of session activity |
| Details for an individual session |
| Activity history (pages, events) for a session |
| Custom properties for a session |
| Session data counts by property name |
| Session data counts for a specific property |
Reports (11)
Tool | Description |
| List saved reports (optionally filter by website) |
| Get a saved report by ID |
| Funnel analysis: conversion and drop-off through steps |
| Visitor return frequency over time |
| User navigation flow from a start page through N steps |
| UTM campaign breakdown: source, medium, campaign, term, content |
| Pageview and event goal tracking |
| Revenue data by date range and currency |
| Core Web Vitals: LCP, INP, CLS, FCP, TTFB |
| Marketing attribution by source |
| Segment data by multiple dimensions |
Teams (4)
Tool | Description |
| List all teams |
| Team details |
| Team members and roles |
| Websites belonging to a team |
Auth (2)
Tool | Description |
| Verify authentication token and get user info |
| Current authenticated user details |
Composite tools (16)
Tools that combine multiple API calls and return computed insights.
Tool | Description |
| Two periods side-by-side with growth/decline % |
| Country, browser, OS, device, language in one call |
| Referrers, channels, and domains combined |
| Session info + activity + properties in one call |
| Event names + values + time series in one call |
| Stats + active + top pages + sources + countries |
| UTM + attribution combined |
| Expanded page metrics + Core Web Vitals |
| 3-period trend with acceleration/deceleration detection |
| Engagement score (0–100) from bounce rate, time, pages/visit |
| Per-page role analysis: entry door, exit door, passthrough |
| Referrers + channels + landing pages + UTM unified |
| Worst bounce rates by page, source, and device |
| Peak/dead hours, best day, publishing window recommendation |
| Country → region → city hierarchy with share % |
| Current traffic vs historical average, spike/drop detection |
All tools are read-only.
Resources
URI | Description |
| All tracked websites |
| All teams |
| All saved reports |
Prompts
Prompt | Description | Default |
| Full analytics report | 30 days |
| Most visited pages | 7 days, top 10 |
| Visitors by country, device, browser, OS | 30 days |
| Current active visitors | — |
Example queries
"What are my top 20 pages this month?"
"Show me visitor trends for the last 90 days"
"Which countries are my visitors from?"
"How many people are on my site right now?"
"What day and hour do I get the most traffic?"
"Which pages have the highest bounce rate?"
"Compare this month's traffic to last month"
"What's my engagement score for the last 30 days?"
"Where are visitors dropping off in my signup funnel?"
"Is my traffic right now above or below normal?"
How it works
Implements MCP over stdio (JSON-RPC 2.0). Handles initialize, tools/list, tools/call, prompts/list, prompts/get, resources/list, resources/read. Makes authenticated requests to the Umami API and returns structured JSON.
No background processes, no polling, no state beyond the auth token.
Compatibility
Client | Method | Status |
Claude Code |
| Supported |
Claude Desktop |
| Supported |
Cursor |
| Supported |
VS Code (Copilot) |
| Supported |
OpenAI Codex |
| Supported |
ChatGPT | Remote URL + SSE transport | Requires public endpoint |
Windsurf / Zed |
| Supported |
Smithery |
| Supported |
Requirements
Node.js >= 18
Umami Cloud account or self-hosted instance
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/frontedu/umami-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server