Umami MCP
官方将你的AI助手连接到Umami,并用日常语言询问网站分析数据。
你可以用 Umami MCP 做什么?
- 列出可访问的站点 — 询问查看所有你能访问的网站;先调用
list_websites获取websiteId,供其他查询使用。 - 获取流量摘要 — 通过
get_website_stats询问页面浏览量、访客数、跳出率或访问时长,并可与上一周期进行对比。 - 分析流量来源 — 使用
get_website_metrics询问哪些页面、引荐来源、国家或设备带来了流量。 - 跟踪自定义事件 — 通过
get_event_stats、get_event_series或get_event_properties询问事件总数、序列或属性值。 - 检查会话 — 通过
get_sessions询问分页的会话列表,或使用get_session查看单个会话的活动时间线。 - 运行分析模型 — 询问执行已保存的漏斗(
run_funnel)、查看群组留存(run_retention)或检查目标转化(get_goals)。
托管 MCP 服务器
npx add-mcp 'https://cloud.umami.is/mcp'可安装到 Claude Code、Codex、Cursor、VS Code 等客户端
文档
@umami/mcp
Model Context Protocol 服务器,用于 Umami
分析。让 Claude、ChatGPT、Cursor 及其他 MCP 客户端能够通过只读工具回答关于您网站流量的问题,这些工具通过 @umami/api-client 调用 Umami API。
MCP 服务器从不直接访问数据库;每个工具都通过公共 API 进行调用,并遵循与 Web 应用相同的用户/团队权限检查。
工具
| 工具 | 用途 |
|---|---|
list_websites | 查找您可以访问的网站(先调用以获取 websiteId)。 |
get_website_daterange | 有记录数据的最早和最晚日期。 |
get_website_stats | 页面浏览量、访客数、访问次数、跳出率、停留时长 + 上一周期对比。 |
get_website_traffic | 按分钟、小时、天、月或年统计的页面浏览量/访问次数时间序列。 |
get_website_metrics | 热门页面、来源、渠道、国家、浏览器、设备、UTM、事件。 |
get_realtime | 当前活跃的访客。 |
get_events | 单个跟踪事件(分页)。 |
get_event_stats | 自定义事件总数 + 上一周期对比。 |
get_event_series | 自定义事件随时间变化的计数,按事件名称分组。 |
get_event_properties | 自定义事件属性名称,或某个属性的值。 |
get_sessions | 访客会话(分页)。 |
get_session_stats | 会话级汇总:访客数、访问次数、页面浏览量、事件数、国家。 |
get_annotations | 时间线上的带日期备注(发布、活动),用于解释变化。 |
list_segments | 已保存的细分和群组;通过 filters.segment / .cohort 传递 ID。 |
get_session | 单个会话及其活动时间线和属性。 |
list_funnels | 已保存的漏斗及其步骤(获取 funnelId 用于 run_funnel)。 |
run_funnel | 基于已保存的 funnelId 或临时页面/事件步骤的转化漏斗。 |
get_goals | 已保存的目标及其转化数、访客数和指定时间范围内的转化率。 |
run_journey | 访客最常走的路径。 |
run_retention | 群组留存表。 |
run_attribution | 转化的首次/末次点击归因。 |
get_revenue | 收入总计、时间序列和细分。 |
get_performance | 核心 Web 指标(LCP、INP、CLS、FCP、TTFB)百分位数、趋势、细分。 |
所有工具均为只读。日期采用 ISO 8601 格式;结果分页返回,页面大小有硬性上限。
远程:Umami Cloud
使用您现有的 Cloud API 密钥连接到 https://cloud.umami.is/mcp:
Authorization: Bearer api_<your-cloud-api-key>
支持自定义请求头的客户端可以使用 x-umami-api-key 代替。如果同时提供两个请求头,它们必须包含相同的密钥。请使用支持 API 密钥或 Bearer 请求头配置的客户端。
Cloud MCP 与 Cloud API 具有相同的订阅要求和网站/团队权限。所有工具都调用 Cloud API 网关,该网关会验证密钥并将请求路由到您所在的区域。
远程:自托管
在您的 Umami 实例中,通过 设置 → API 密钥 生成 API 密钥,然后使用 Streamable HTTP 端点配置您的 MCP 客户端:
https://your-umami.example.com/mcp
使用您的密钥设置授权请求头:
Authorization: Bearer umami_<your-api-key>
请使用支持 Bearer 令牌或自定义授权请求头的客户端。该端点接受自托管 API 密钥;不支持浏览器登录令牌。工具为只读,并遵循密钥所有者现有的用户/团队权限。在设置中撤销密钥即可断开访问。MCP 默认禁用。设置 MCP_ENABLED=1 以启用该端点。
本地 / stdio
{
"mcpServers": {
"umami": {
"command": "npx",
"args": ["-y", "@umami/mcp"],
"env": {
"UMAMI_URL": "https://analytics.example.com",
"UMAMI_API_TOKEN": "umami_…"
}
}
}
}
| 变量 | 描述 |
|---|---|
UMAMI_URL | 自托管实例 URL(自动追加 /api)。 |
UMAMI_API_URL | 完整的 API 基础 URL,例如 https://api.umami.is/v1。 |
UMAMI_API_TOKEN | API 密钥或登录令牌(自托管)。 |
UMAMI_API_KEY | Umami Cloud API 密钥。 |
对于 Cloud stdio,设置 UMAMI_API_KEY 并省略 UMAMI_URL 和 UMAMI_API_TOKEN:
{
"mcpServers": {
"umami": {
"command": "npx",
"args": ["-y", "@umami/mcp"],
"env": { "UMAMI_API_KEY": "api_<your-cloud-api-key>" }
}
}
}
示例提示
- 显示我的网站。
- 上周 example.com 有多少访客?
- 本月排名前 10 的页面是什么?
- 将本月流量与上月进行比较。
- 流量来自哪里?
- 昨天发生了哪些注册事件?
- 显示用户 abc123 的会话。
- 上个月结账事件中人们选择了哪些定价方案?
- 本周每天触发了多少次注册事件?
- 运行我上个月的结账漏斗。
- 我们本季度目标完成情况如何?
- 哪些页面在移动端的 LCP 表现最差?
- 流量激增那天发生了什么?
编程使用
import { UmamiClient } from '@umami/api-client';
import { createUmamiMcpServer } from '@umami/mcp';
const server = createUmamiMcpServer({
client: new UmamiClient({ baseUrl, token }),
});
createUmamiMcpHttpHandler({ createClient }) 返回一个 Streamable HTTP 处理器,可嵌入到任何 Web 框架中;主机验证 Bearer 令牌并传递 authInfo。