Umami MCP服务器

一个为Umami Analytics设计的MCP服务器,支持Umami Cloud和自托管实例,提供网站统计数据的获取和分析功能。

  • by lukasschmit
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 lukasschmit/umami-mcp

使用说明

Umami MCP服务器

MCP服务器 Umami分析 --两者都适用 Umami云 和 自托管 实例。

零依赖。 无需克隆,无需安装步骤——只需将MCP客户端指向它即可。

为什么?

现有的Umami MCP服务器 不支持Umami Cloud (使用API密钥验证,而不是用户名/密码)或 破损和肿胀 (火炬、传真、句子转换器……用于分析?)。

该服务器与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客户端启动它时,服务器:

  1. 从stdin读取JSON-RPC消息
  2. 手柄 initialize, tools/list,以及 tools/call 方法
  3. 向Umami API发出经过身份验证的HTTP请求
  4. 以JSON文本内容返回结果

没有后台进程,没有轮询,没有身份验证令牌之外的状态。

许可证

麻省理工学院