Umami MCP Server
Integrate Umami Analytics with any MCP client like Claude Desktop, VS Code, and more.
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?"
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
# Or specific version
go install github.com/Macawls/[email protected]
Installs to ~/go/bin/umami-mcp-server (or $GOPATH/bin)
Configure Your MCP Client
Claude Desktop
Add to your Claude Desktop config:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_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"
}
}
}
}
Docker version
{
"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"
}
}
}
}
Secure prompts
{
"mcpServers": {
"umami": {
"command": "~/go/bin/umami-mcp-server",
"env": {
"UMAMI_URL": "${input:umami_url}",
"UMAMI_USERNAME": "${input:umami_username}",
"UMAMI_PASSWORD": "${input:umami_password}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "umami_url",
"description": "Umami instance URL"
},
{
"type": "promptString",
"id": "umami_username",
"description": "Umami username"
},
{
"type": "promptString",
"id": "umami_password",
"description": "Umami password",
"password": true
}
]
}
Restart Claude Desktop to load the server.
VS Code (GitHub Copilot)
Enable agent mode and add MCP servers to access Umami from Copilot.
For workspace: 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"
}
}
}
}
With secure prompts
{
"inputs": [
{
"type": "promptString",
"id": "umami_url",
"description": "Umami instance URL"
},
{
"type": "promptString",
"id": "umami_username",
"description": "Umami username"
},
{
"type": "promptString",
"id": "umami_password",
"description": "Umami password",
"password": true
}
],
"servers": {
"umami": {
"command": "~/go/bin/umami-mcp-server",
"env": {
"UMAMI_URL": "${input:umami_url}",
"UMAMI_USERNAME": "${input:umami_username}",
"UMAMI_PASSWORD": "${input:umami_password}"
}
}
}
}
Access via: Chat view → Agent mode → Tools button
Other MCP Clients
Cursor, Windsurf, Zed, Cline
Cursor: Ctrl/Cmd + Shift + P → "Cursor Settings" → MCP section
Windsurf: Settings → MCP Settings → Add MCP Server
Config location: %APPDATA%\windsurf\mcp_settings.json (Windows)
Zed: Settings → assistant.mcp_servers
Cline: VS Code Settings → Extensions → Cline → MCP Servers
All use similar JSON format as above. Docker and secure prompts work the same way.
Available Tools
- get_websites - List all your websites
- get_stats - Get visitor statistics
- get_pageviews - View page traffic over time
- get_metrics - See browsers, countries, devices, and more
- get_active - Current active visitors
Remote Usage (No Install)
A hosted instance is available at https://umami-mcp.macawls.dev/mcp. You can connect to it directly from any MCP client that supports HTTP transport — no binary or Docker needed.
Credentials are passed as query parameters:
https://umami-mcp.macawls.dev/mcp?umamiHost=https://your-instance.com&umamiUsername=admin&umamiPassword=pass
Claude Desktop
Add to your config with type: "url":
{
"mcpServers": {
"umami": {
"type": "url",
"url": "https://umami-mcp.macawls.dev/mcp?umamiHost=https://your-instance.com&umamiUsername=admin&umamiPassword=pass"
}
}
}
VS Code (GitHub Copilot)
Add to .vscode/mcp.json:
{
"servers": {
"umami": {
"type": "http",
"url": "https://umami-mcp.macawls.dev/mcp?umamiHost=https://your-instance.com&umamiUsername=admin&umamiPassword=pass"
}
}
}
Other Clients
Any MCP client that supports Streamable HTTP can connect using the URL above.
Transport Modes
The server supports two transport modes, controlled by the TRANSPORT environment variable:
Stdio (default)
Used by local MCP clients like Claude Desktop, VS Code, Cursor, etc. This is the default — no extra configuration needed.
HTTP
The server exposes a /mcp endpoint that speaks Streamable HTTP. Use this for self-hosting or remote deployments.
TRANSPORT=http PORT=9999 ./umami-mcp-server
Credentials are passed as query parameters on the initialize request:
curl -X POST "http://localhost:9999/mcp?umamiHost=https://analytics.example.com&umamiUsername=admin&umamiPassword=pass" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize"}'
The response includes a Mcp-Session-Id header to use for subsequent requests.
Docker
When using Docker, the image defaults to HTTP mode:
docker run -p 8080:8080 ghcr.io/macawls/umami-mcp-server
For local stdio usage with Docker, override the transport:
docker run -i --rm \
-e TRANSPORT=stdio \
-e UMAMI_URL="https://your-instance.com" \
-e UMAMI_USERNAME="username" \
-e UMAMI_PASSWORD="password" \
ghcr.io/macawls/umami-mcp-server
Alternative Configuration
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
Environment variables take priority over the config file.
Build from Source
git clone https://github.com/Macawls/umami-mcp-server.git
cd umami-mcp-server
go build -o umami-mcp
Troubleshooting
Binary won't run
- macOS: Run
xattr -c umami-mcp-serverto remove quarantine - Linux: Run
chmod +x umami-mcp-serverto make executable
Connection errors
- Verify your Umami instance is accessible
- Check your credentials are correct
Tools not showing up
- Check your MCP client logs for errors
- Verify the binary path is absolute
- Try running the binary directly to check for errors
License
MIT
संबंधित सर्वर
Taskeract
Official Taskeract MCP Server for integrating your Taskeract project tasks and load the context of your tasks into your MCP enabled app.
Yonote
Provides API tools to interact with Yonote documents and collections.
Feishu/Lark OpenAPI MCP
Connect AI agents with the Feishu/Lark platform for automation, including document processing, conversation management, and calendar scheduling.
HomeVisto
HomeVisto offers a revolutionary solution by connecting remote property seekers with local "Scouts" who provide live, GPS-verified video tours of properties.
Document Translator
An example MCP server for translating documents, designed for deployment on Cloudflare Workers.
icd10-cpt-crosswalk
MCP server for converting ICD-10 diagnosis codes to CPT procedure codes for medical billing
ffl-mcp
Give AI a "send file" capability via P2P (Local-first)
Kanka
An MCP server for integrating with the Kanka API, a worldbuilding and campaign management tool for tabletop RPGs.
VNC
Remotely control any system running a VNC server, including Windows, Linux, and macOS, through an AI agent.
Date-time Tools
A server for date-time manipulation and timezone conversion.