Umami分析服务器

Umami MCP Server是一个连接Umami分析服务与多种MCP客户端的中间件,提供网站流量统计、用户行为分析和实时监控功能。

  • by Macawls
  • Go
  • 混合部署
  • 35 星标
  • 更新于
在 GitHub 查看 Macawls/umami-mcp-server

使用说明

Umami MCP服务器

将您的Umami Analytics连接到任何MCP客户端-Claude Desktop、VS Code、Cursor、Windsurf、Zed、Smithery等。

提示

分析和流量

  • “给我一份过去30天我网站的综合分析报告”
  • “本月哪些页面的流量最大?显示前10名”
  • “分析我网站的流量模式——我什么时候能吸引最多的访问者?”

用户洞察

  • “我的访客来自哪里?按国家和城市分列”
  • “我的用户使用哪些设备和浏览器?”
  • “向我展示用户旅程——访问者通常按顺序查看哪些页面?”

会话和重播

  • “上个月录制了多少次会话?列出最活跃的会话”
  • “带我走过什么环节 按顺序排列页面和事件”
  • “哪些录制的会话来自瑞典的移动设备?”

实时监控

  • “现在我的网站上有多少人?他们正在查看哪些页面?”
  • “我的网站是否遇到任何问题?检查流量是否大幅下降”

内容和活动分析

  • “我应该更新哪些博客文章?显示流量下降的文章”
  • “我最近的电子邮件活动表现如何?跟踪活动UTM的访问者”
  • “比较来自不同社交媒体平台的流量”

快速开始

选项1:下载二进制文件

从以下网址获取您平台的最新版本 发布

选项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

选项3:去安装

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

安装到 ~/go/bin/umami-mcp-server (或 $GOPATH/bin)

设置

挑选 一 根据您的喜好,选择以下两种方法。

远程(无需安装)

托管实例位于 https://umami-mcp.macawls.dev/mcp.直接从任何支持HTTP传输的MCP客户端连接,无需二进制文件或Docker。

凭证通过传递 X-Umami-* 标题上 initialize 请求。

Claude Desktop

添加到您的配置(%APPDATA%\Claude\claude_desktop_config.json 在Windows上, ~/Library/Application Support/Claude/claude_desktop_config.json 在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"
    }
  }
}
VS Code (GitHub Copilot)

添加 .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 Code
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
Cursor

添加 .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"
      }
    }
  }
}
Windsurf

添加 ~/.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"
      }
    }
  }
}
OpenCode

添加 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"
      }
    }
  }
}
Other Clients

任何支持Streamable HTTP的MCP客户端都可以连接到 https://umami-mcp.macawls.dev/mcp 凭据在 X-Umami-Host, X-Umami-Username,以及 X-Umami-Password 标题。

本地

在本地运行二进制或Docker镜像。凭据是通过环境变量设置的。

Claude Desktop

添加到您的配置(%APPDATA%\Claude\claude_desktop_config.json 在Windows上, ~/Library/Application Support/Claude/claude_desktop_config.json 在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"
      }
    }
  }
}
VS Code (GitHub Copilot)

创建 .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 Code
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
Cursor

添加 .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"
      }
    }
  }
}
Windsurf

添加 ~/.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"
      }
    }
  }
}
Zed

添加到Zed设置下 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"
    }
  }
}
Docker

对于使用 command 字段(克劳德桌面、光标等):

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

可用工具

工具 说明
get_websites 列出所有网站(首先调用此命令以获取网站ID)
get_stats 汇总统计数据——页面浏览量、访问者、跳出次数、总时间
get_pageviews 按时间单位分组的页面浏览量和会话计数
get_metrics 按页面、推荐人、浏览器、操作系统、设备、国家等分类。
get_active 实时当前活跃访客数
get_sessions 列出单个访问者会话,包括总计数——会话会话重播记录
get_session_stats 会议总计----页面浏览量、访客、访问量、国家、活动
get_session_activity 单个会话的有序页面浏览量/事件时间线

配置

环境变量

变量 默认值 描述
UMAMI_URL 必需的 您的Umami实例URL(使用 https://api.umami.is Umami Cloud)
UMAMI_USERNAME 需要自托管 Umami用户名
UMAMI_PASSWORD 需要自托管 Umami密码
UMAMI_API_KEY Umami Cloud需要 Umami Cloud帐户中的API密钥(用户名/密码的替代方案)
UMAMI_TEAM_ID 团队ID 基于团队的设置
TRANSPORT stdio 运输方式(stdio 或 http)
PORT 8080 HTTP服务器端口
ALLOWED_ORIGINS * 逗号分隔的CORS允许来源
MAX_SESSIONS 1000 最大并发HTTP会话数

配置文件

创建一个 config.yaml 二进制文件旁边的文件:

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

对于Umami Cloud,请改用API密钥:

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

环境变量优先于配置文件。

Umami云

Umami Cloud(托管版本位于 cloud.umami.is)不支持用户名/密码身份验证。使用Umami Cloud帐户设置和设置中的API密钥 UMAMI_URL=https://api.umami.is 连同 UMAMI_API_KEY=...。对于HTTP传输,发送 X-Umami-Api-Key 标题而不是 X-Umami-Username/X-Umami-Password.

团队网站

如果您的Umami实例使用团队,并且您的网站被分配给团队而不是个人用户, get_websites 可能返回一个空列表。集 UMAMI_TEAM_ID 从您的团队中获取网站。对于HTTP传输,请使用 X-Umami-Team-Id 头球

您可以在Umami控制面板中的以下位置找到您的团队ID 设置>团队.

自托管(HTTP传输)

服务器支持用于远程部署的Streamable HTTP。集 TRANSPORT=http 揭露a /mcp 端点:

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

凭证通过传递 X-Umami-* 标题上 initialize 请求。该回复包括 Mcp-Session-Id 用于后续请求的标头。

Docker默认为HTTP模式:

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二进制文件无法运行: xattr -c umami-mcp-server 取消隔离
  • Linux二进制文件无法运行: chmod +x umami-mcp-server
  • 连接错误:验证您的Umami实例是否可访问以及凭据是否正确
  • 工具未显示:检查MCP客户端日志,验证二进制路径是否为绝对路径

许可证

麻省理工学院