1. Conduid
  2. Developer Tools
  3. Umami MCP Server
MCP server · Developer Tools

Umami MCP Server

A lean MCP Server for Umami analytics

64Good

Scored 7 days ago · breakdown

About Umami MCP Server

Umami MCP Server is an MCP server published by Macawls in the Developer Tools category: a lean MCP Server for Umami analytics.

The repository has 35 stars and 6 forks, with the last commit 2 months ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

Install
npx umami-mcp-server
Claude Code
claude mcp add umami-mcp-server -- npx -y umami-mcp-server
npx
npx -y umami-mcp-server

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (8)

get_activeCurrent active visitor count in real-time

Parameters not published.

get_metricsBreakdown by page, referrer, browser, OS, device, country, etc.

Parameters not published.

get_pageviewsPageview and session counts grouped by time unit

Parameters not published.

get_session_activityOrdered pageview/event timeline for a single session

Parameters not published.

get_session_statsAggregated session totals — pageviews, visitors, visits, countries, events

Parameters not published.

get_sessionsList individual visitor sessions, with total count — the sessions session replay records

Parameters not published.

get_statsAggregated statistics — pageviews, visitors, bounces, total time

Parameters not published.

get_websitesList all websites (call this first to get website IDs)

Parameters not published.

Ask AI

✦

Ask AI about Umami MCP Server

Powered by Claude · Grounded in docs

I know everything about Umami MCP Server. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 10 hours ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v1.6.2v1.6.2 · 15 Aug 2026Changelog 4cc1cbaa242a7f18c320664c3711fa39d16faa2b ci: drop Go 1.22 from test matrix (#30) e163eb944409296bf8b691bea73e7087327498d8 fix: validate X-Umami-Host up front with actionable error messages (#31)
v1.6.1v1.6.1 · 13 Aug 2026Changelog 2a7813ca6de22a30a4422ca6765394fe1ab9c83e fix: advertise tool/prompt/resource capabilities in initialize response (#28)
v1.6.0v1.6.0 · 20 Jun 2026Changelog 141a451f0a67d641a3308811e6ff3c166bb90b5f feat: add session tools (get_sessions, get_session_stats, get_session_activity) (#26)
v1.5.0v1.5.0 · 20 Apr 2026Changelog 538050e83bf94efd8d7945fdd33e19e60615e1f8 feat: support Umami Cloud via API key authentication
v1.4.1v1.4.1 · 14 Apr 2026Features Team-based website discovery — New `UMAMI_TEAM_ID` env var for self-hosted instances where websites are assigned to teams. Also supports `X-Umami-Team-Id` header for HTTP transport.

README

Umami MCP Server

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

Prompts

Analytics & Traffic

  • "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?"

User Insights

  • "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?"

Sessions & Replay

  • "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?"

Real-time Monitoring

  • "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"

Content & Campaign Analysis

  • "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"

Quick Start

Option 1: Download Binary

Get the latest release for your platform from Releases

Option 2: Docker

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

Option 3: Go Install

go install github.com/Macawls/umami-mcp-server@latest

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

Setup

Pick one of the two approaches below based on your preference.

Remote (No Install)

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

Credentials are passed via X-Umami-* headers on the initialize request.

Add to your config (%APPDATA%\Claude\claude_desktop_config.json on Windows, ~/Library/Application Support/Claude/claude_desktop_config.json on 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"
    }
  }
}

Add to .vscode/mcp.json:

{
  "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

Add to .cursor/mcp.json:

{
  "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"
      }
    }
  }
}

Add to opencode.json:

{
  "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 to https://umami-mcp.macawls.dev/mcp with credentials in X-Umami-Host, X-Umami-Username, and X-Umami-Password headers.

Local

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

Add to your config (%APPDATA%\Claude\claude_desktop_config.json on Windows, ~/Library/Application Support/Claude/claude_desktop_config.json on 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"
      }
    }
  }
}

Create .vscode/mcp.json:

{
  "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

Add to .cursor/mcp.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 ~/.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 under assistant.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 a command field (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"
      }
    }
  }
}

Available Tools

Tool Description
get_websites List all websites (call this first to get website IDs)
get_stats Aggregated statistics — pageviews, visitors, bounces, total time
get_pageviews Pageview and session counts grouped by time unit
get_metrics Breakdown by page, referrer, browser, OS, device, country, etc.
get_active Current active visitor count in real-time
get_sessions List individual visitor sessions, with total count — the sessions session replay records
get_session_stats Aggregated session totals — pageviews, visitors, visits, countries, events
get_session_activity Ordered pageview/event timeline for a single session

Configuration

Environment Variables

Variable Default Description
UMAMI_URL required Your Umami instance URL (use https://api.umami.is for Umami Cloud)
UMAMI_USERNAME required for self-hosted Umami username
UMAMI_PASSWORD required for self-hosted Umami password
UMAMI_API_KEY required for Umami Cloud API key from your Umami Cloud account (alternative to username/password)
UMAMI_TEAM_ID Team ID for team-based setups
TRANSPORT stdio Transport mode (stdio or http)
PORT 8080 HTTP server port
ALLOWED_ORIGINS * Comma-separated CORS allowed origins
MAX_SESSIONS 1000 Maximum concurrent HTTP sessions

Config File

Instead of environment variables, create a config.yaml file 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

Umami Cloud (the hosted version at cloud.umami.is) does not support username/password authentication. Use an API key from your Umami Cloud account settings and set UMAMI_URL=https://api.umami.is together with UMAMI_API_KEY=.... For HTTP transport, send the X-Umami-Api-Key header instead of X-Umami-Username/X-Umami-Password.

Team Websites

If your Umami instance uses teams and your websites are assigned to a team rather than individual users, get_websites may return an empty list. Set UMAMI_TEAM_ID to fetch websites from your team instead. For HTTP transport, use the X-Umami-Team-Id header.

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

Self-Hosting (HTTP Transport)

The server supports Streamable HTTP for remote deployments. Set TRANSPORT=http to expose a /mcp endpoint:

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

Credentials are passed via X-Umami-* headers on the initialize request. The response includes a Mcp-Session-Id header for subsequent requests.

Docker defaults to HTTP mode:

docker run -p 8080:8080 ghcr.io/macawls/umami-mcp-server

Build from Source

git clone https://github.com/Macawls/umami-mcp-server.git
cd umami-mcp-server
go build -o umami-mcp

Troubleshooting

  • macOS binary won't run: xattr -c umami-mcp-server to 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

License

MIT

README fetched from the repository 10 hours ago. The original is authoritative.

Questions

About Umami MCP Server

How do I install Umami MCP Server?

Run npx umami-mcp-server, then add the server to your MCP client's configuration.

Is Umami MCP Server safe to use with an AI agent?

Its trust score is 64 out of 100 (good). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Umami MCP Server still maintained?

Yes — the latest release is v1.6.2 (15 Aug 2026), and the last commit was 2 months ago. The repository has 35 stars and 2 open issues.