Umami MCP Server

by macawls

Not rated
GitHub

About

Integrate Umami Analytics with any MCP client like Claude Desktop, VS Code, and more.

Details

Author
macawls
Categories
Productivity, Other
Tags
#analytics

Setup

Install Umami MCP Server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/macawls/umami-mcp-server

Follow the installation instructions in the repository README, then restart your MCP client.

Integrate Umami Analytics with any MCP client like Claude Desktop, VS Code, and more.

Connect your Umami Analytics to any MCP client - Claude Desktop, VS Code, Cursor, Windsurf, Zed, Smithery, and more.

- "Give me a comprehensive analytics report for my website over the last 30 days"
- "Which pages are getting the most traffic this month? Show me the top 10"
- "Analyze my website's traffic patterns - when do I get the most visitors?"

- "Where are my visitors coming from? Break it down by country and city"
- "What devices and browsers are my users using?"
- "Show me the user journey - what pages do visitors typically view in sequence?"

- "How many sessions were recorded last month? List the most active ones"
- "Walk me through what session <!-- --> did — the pages and events in order"
- "Which recorded sessions came from mobile in Sweden?"

- "How many people are on my website right now? What pages are they viewing?"
- "Is my website experiencing any issues? Check if traffic has dropped significantly"

- "Which blog posts should I update? Show me articles with declining traffic"
- "How did my recent email campaign perform? Track visitors from the campaign UTM"
- "Compare traffic from different social media platforms"

Get the latest release for your platform fromReleases

docker run -i --rm \ -e UMAMI_URL="https://your-instance.com" \ -e UMAMI_USERNAME="username" \ -e UMAMI_PASSWORD="password" \ ghcr.io/macawls/umami-mcp-server
go install github.com/Macawls/umami-mcp-server@latest

Installs to~/go/bin/umami-mcp-server(or$GOPATH/bin)

Pickoneof the two approaches below based on your preference.

A hosted instance is available athttps://umami-mcp.macawls.dev/mcp. Connect directly from any MCP client that supports HTTP transport — no binary or Docker needed.

Credentials are passed viaX-Umami-headers on theinitializerequest.

Add to your config (%APPDATA%\Claude\claude_desktop_config.jsonon Windows,~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS):

{ "mcpServers": { "umami": { "type": "http", "url": "https://umami-mcp.macawls.dev/mcp", "headersHelper": "echo X-Umami-Host: https://your-instance.com && echo X-Umami-Username: admin && echo X-Umami-Password: pass" } } }
{ "servers": { "umami": { "type": "http", "url": "https://umami-mcp.macawls.dev/mcp", "headers": { "X-Umami-Host": "https://your-instance.com", "X-Umami-Username": "${input:umami-username}", "X-Umami-Password": "${input:umami-password}" } } } }
claude mcp add --transport http \ --header "X-Umami-Host: https://your-instance.com" \ --header "X-Umami-Username: admin" \ --header "X-Umami-Password: pass" \ umami https://umami-mcp.macawls.dev/mcp
{ "mcpServers": { "umami": { "url": "https://umami-mcp.macawls.dev/mcp", "headers": { "X-Umami-Host": "https://your-instance.com", "X-Umami-Username": "admin", "X-Umami-Password": "pass" } } } }

Add to~/.codeium/windsurf/mcp_config.json:

{ "mcpServers": { "umami": { "serverUrl": "https://umami-mcp.macawls.dev/mcp", "headers": { "X-Umami-Host": "https://your-instance.com", "X-Umami-Username": "admin", "X-Umami-Password": "pass" } } } }
{ "mcp": { "umami": { "type": "remote", "url": "https://umami-mcp.macawls.dev/mcp", "headers": { "X-Umami-Host": "https://your-instance.com", "X-Umami-Username": "admin", "X-Umami-Password": "pass" } } } }

Any MCP client that supports Streamable HTTP can connect tohttps://umami-mcp.macawls.dev/mcpwith credentials inX-Umami-Host,X-Umami-Username, andX-Umami-Passwordheaders.

Run the binary or Docker image locally. Credentials are set via environment variables.

Add to your config (%APPDATA%\Claude\claude_desktop_config.jsonon Windows,~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS):

{ "mcpServers": { "umami": { "command": "~/go/bin/umami-mcp-server", "env": { "UMAMI_URL": "https://your-umami-instance.com", "UMAMI_USERNAME": "your-username", "UMAMI_PASSWORD": "your-password" } } } }
{ "servers": { "umami": { "command": "~/go/bin/umami-mcp-server", "env": { "UMAMI_URL": "https://your-umami-instance.com", "UMAMI_USERNAME": "your-username", "UMAMI_PASSWORD": "your-password" } } } }
claude mcp add \ umami-mcp-server \ -e UMAMI_URL="https://your-umami-instance.com" \ -e UMAMI_USERNAME="your-username" \ -e UMAMI_PASSWORD="your-password" \ -- ~/go/bin/umami-mcp-server
{ "mcpServers": { "umami": { "command": "~/go/bin/umami-mcp-server", "env": { "UMAMI_URL": "https://your-umami-instance.com", "UMAMI_USERNAME": "your-username", "UMAMI_PASSWORD": "your-password" } } } }

Add to~/.codeium/windsurf/mcp_config.json:

{ "mcpServers": { "umami": { "command": "~/go/bin/umami-mcp-server", "env": { "UMAMI_URL": "https://your-umami-instance.com", "UMAMI_USERNAME": "your-username", "UMAMI_PASSWORD": "your-password" } } } }

Add to your Zed settings underassistant.mcp_servers:

{ "umami": { "command": "~/go/bin/umami-mcp-server", "env": { "UMAMI_URL": "https://your-umami-instance.com", "UMAMI_USERNAME": "your-username", "UMAMI_PASSWORD": "your-password" } } }

For clients that use acommandfield (Claude Desktop, Cursor, etc.):

{ "mcpServers": { "umami": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "UMAMI_URL", "-e", "UMAMI_USERNAME", "-e", "UMAMI_PASSWORD", "ghcr.io/macawls/umami-mcp-server" ], "env": { "UMAMI_URL": "https://your-umami-instance.com", "UMAMI_USERNAME": "your-username", "UMAMI_PASSWORD": "your-password" } } } }

Instead of environment variables, create aconfig.yamlfile next to the binary:

umami_url: https://your-umami-instance.com username: your-username password: your-password team_id: your-team-id # optional

For Umami Cloud, use an API key instead:

umami_url: https://api.umami.is api_key: your-api-key

Environment variables take priority over the config file.

Umami Cloud (the hosted version atcloud.umami.is) does not support username/password authentication. Use an API key from your Umami Cloud account settings and setUMAMI_URL=https://api.umami.istogether withUMAMI_API_KEY=.... For HTTP transport, send theX-Umami-Api-Keyheader instead ofX-Umami-Username/X-Umami-Password.

If your Umami instance uses teams and your websites are assigned to a team rather than individual users,get_websitesmay return an empty list. SetUMAMI_TEAM_IDto fetch websites from your team instead. For HTTP transport, use theX-Umami-Team-Idheader.

You can find your team ID in your Umami dashboard underSettings > Teams.

The server supports Streamable HTTP for remote deployments. SetTRANSPORT=httpto expose a/mcpendpoint:

TRANSPORT=http PORT=9999 ./umami-mcp-server

Credentials are passed viaX-Umami-headers on theinitializerequest. The response includes aMcp-Session-Idheader for subsequent requests.

docker run -p 8080:8080 ghcr.io/macawls/umami-mcp-server
git clone https://github.com/Macawls/umami-mcp-server.git cd umami-mcp-server go build -o umami-mcp

- macOS binary won't run:xattr -c umami-mcp-serverto remove quarantine
- Linux binary won't run:chmod +x umami-mcp-server
- Connection errors: Verify your Umami instance is accessible and credentials are correct
- Tools not showing up: Check your MCP client logs, verify the binary path is absolute

An MCP server for ActivityWatch, allowing interaction with your personal time tracking data.

Provides structured access to ActivityWatch time tracking data for AI assistants.

Monitor team productivity, usage, and spending for AI assistants using the Cursor Admin API.

Manage events, reporting, and analytics on Eventbrite.

Access fathom ai api endpoints via mcp server and llm.

Synthesize customer feedback from GitHub Issues, Hacker News, and App Store — extract pain points, sentiment trends, and search feedback via x402 micropayments

Manage forms, handle responses, and access analytics using the Fillout.io API.

Track startup engineering acceleration from public GitHub data

Generates interactive sprint analytics and executive dashboards by connecting Jira data to Claude AI. Provides insights on burndown, velocity, and goal progress.

Access Office 365 Calendar data, providing workday insights and productivity analytics.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.