Umami MCP服务器
MCP服务器 Umami分析 --两者都适用 Umami云 和 自托管 实例。
零依赖。 无需克隆,无需安装步骤——只需将MCP客户端指向它即可。
为什么?
该服务器与Umami API对话,并通过MCP公开5个工具。纯Python,零依赖。
工具
| 工具 | 说明 |
|---|---|
get_websites | 列出所有被跟踪的网站 |
get_stats | 摘要统计:页面浏览量、访问者、访问量、跳出次数、总时间(秒) |
get_pageviews | 时间序列页面浏览/会话数据(单位:分钟/小时/天/月/年;时区:IANA,例如UTC) |
get_metrics | 按类型细分:路径/url/入口/出口/引用者/域/标题/查询/事件/标签/主机名/浏览器/os/设备/屏幕/语言/国家/地区/城市/频道 |
get_active | 当前活跃访客数(最近5分钟) |
快速开始
1.获取您的凭证
Umami云: 转到“设置”→ API密钥 Umami Cloud仪表板 并创建API密钥。
自托管: 使用您登录时使用的用户名和密码。
2.添加到您的MCP客户端
无需克隆-- uvx 直接从GitHub获取并运行它。
需要uv. 安装方式:curl -LsSf https://astral.sh/uv/install.sh | sh
克劳德桌面/克劳德代码
添加到MCP配置(~/.claude.json、克劳德桌面设置等):
Umami云:
{
"mcpServers": {
"umami": {
"command": "uvx",
"args": ["--from", "git+https://github.com/lukasschmit/umami-mcp", "umami-mcp"],
"env": {
"UMAMI_URL": "https://api.umami.is",
"UMAMI_API_KEY": "your_api_key_here"
}
}
}
}自托管:
{
"mcpServers": {
"umami": {
"command": "uvx",
"args": ["--from", "git+https://github.com/lukasschmit/umami-mcp", "umami-mcp"],
"env": {
"UMAMI_URL": "https://your-umami-instance.com",
"UMAMI_USERNAME": "admin",
"UMAMI_PASSWORD": "your_password"
}
}
}
}光标
添加 .cursor/mcp.json 在项目根目录(或全局设置)中:
{
"mcpServers": {
"umami": {
"command": "uvx",
"args": ["--from", "git+https://github.com/lukasschmit/umami-mcp", "umami-mcp"],
"env": {
"UMAMI_URL": "https://api.umami.is",
"UMAMI_API_KEY": "your_api_key_here"
}
}
}
}VS代码(副本)
添加到您的VS代码 settings.json:
{
"mcp": {
"servers": {
"umami": {
"command": "uvx",
"args": ["--from", "git+https://github.com/lukasschmit/umami-mcp", "umami-mcp"],
"env": {
"UMAMI_URL": "https://api.umami.is",
"UMAMI_API_KEY": "your_api_key_here"
}
}
}
}
}BoltAI
转到“设置”→ MCP服务器→ 添加服务器,然后输入:
- 命令:
uvx - 论据:
--from git+https://github.com/lukasschmit/umami-mcp umami-mcp - 环境变量:
- UMAMI_URL = https://api.umami.is - UMAMI_API_KEY = your_api_key_here
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
UMAMI_URL | 自托管:是,云:可选 | 基本URL--默认为 https://api.umami.is 在云模式下 |
UMAMI_API_KEY | 云 | Umami Cloud仪表板中的API密钥 |
UMAMI_USERNAME | 自托管 | 登录用户名 |
UMAMI_PASSWORD | 自托管 | 登录密码 |
UMAMI_CF_ACCESS_CLIENT_ID | 可选 | Cloudflare Access服务令牌客户端ID(用于受保护的自托管API) |
UMAMI_CF_ACCESS_CLIENT_SECRET | 可选 | Cloudflare访问服务令牌密钥 |
UMAMI_USER_AGENT | 可选 | 用于出站请求的自定义用户代理(默认值: umami-mcp/1.0) |
UMAMI_DEBUG | 可选 | 设置为 1/true 将出站请求URL记录到stderr进行调试 |
设置其中之一 UMAMI_API_KEY (云)或两者兼而有之 UMAMI_USERNAME + UMAMI_PASSWORD (自托管)。服务器会自动检测要使用哪种模式。 为了方便起见, UMAMI_URL 可能包括 /v1 (云)或 /api (自托管);后缀会自动规范化。
如果您的自托管Umami支持Cloudflare Access,请同时设置 UMAMI_CF_ACCESS_CLIENT_ID 和 UMAMI_CF_ACCESS_CLIENT_SECRET 因此机器对机器MCP呼叫可以通过访问检查。
get_metrics 接受两者 type="path" 和 type="url" 以实现跨Umami版本的兼容性。 startAt 和 endAt 接受来自MCP客户端的Unix毫秒整数或数字字符串。 对于基于时间的工具,您可以使用 range 代替原始时间戳: last_24h, last_7d, last_30d, this_month, last_month. compare 支持 prev (上一期,相同长度)和 yoy 年同比
使用示例
连接后,您可以向您的AI助手询问以下问题:
- *“本周我的主页是什么?”*
- *“显示过去30天的访客趋势”*
- *“我的访客来自哪些国家?”*
- *“现在我的网站上有多少人?”*
- *“将本月的流量与上月进行比较”*
助手将调用具有正确参数的适当工具。
运作原理
服务器实现 模型上下文协议 通过stdio(JSON-RPC,每行一个JSON对象)。当MCP客户端启动它时,服务器:
- 从stdin读取JSON-RPC消息
- 手柄
initialize,tools/list,以及tools/call方法 - 向Umami API发出经过身份验证的HTTP请求
- 以JSON文本内容返回结果
没有后台进程,没有轮询,没有身份验证令牌之外的状态。
许可证
麻省理工学院
