mcpField
M
Matomo Analytics

Matomo Analytics

本地服务
github.com数据与分析010 周前更新

关于 Matomo Analytics

Matomo Analytics 是面向 Matomo 用户的 MCP 服务,通过精心设计的只读工具提供网站分析数据,并保留完整 Reporting API 调用入口。其单一二进制程序包含实时报告、响应大小限制和错误重试。

主要功能

  1. 0115 个只读分析工具
  2. 02覆盖流量、页面、来源及电商报告
  3. 03提供实时访客计数与访问日志
  4. 04通过完整 API 入口调用其他方法
  5. 05限制行数和响应大小
  6. 06对临时故障自动重试

适用场景

  1. 01比较不同日期范围的网站流量
  2. 02查看转化、目标和电商数据
  3. 03分析访客来源、设备及地域
  4. 04检查当前访客和访问日志
  5. 05调用专用工具未覆盖的报告 API

MCP 相关

它通过 MCP 向客户端提供 Matomo 报告工具,支持 stdio 和可流式传输的 HTTP。工具只读,并可调用 Reporting API 的其他方法。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
cargomatomo-mcp0.1.4
ocighcr.io/liohtml/matomo-mcp:v0.1.4

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

matomo-mcp 标志

matomo-mcp

与 Matomo Analytics 对话。 可通过 Claude、Cursor、VS Code 或任何 MCP 客户端使用。

CI Crates.io License: MIT Rust MCP

15 个精心设计的只读分析工具 + 完整 API 备用方案。单个二进制文件,即时启动,上下文友好。

快速开始 · 客户端 · 工具 · 配置 · 常见问题


You  ▸ How was traffic yesterday, and where did it come from?

Claude ▸ Yesterday you had 14,472 visits (11,416 unique visitors, 66% bounce rate).
         Top acquisition channels:
         1. Organic search — 6,120 visits (Google 92%)
         2. Direct — 4,890 visits
         3. AI assistants — 1,204 visits (↑ 31% vs. last week)
         Want me to break down which landing pages converted best?

Matomo 仪表板能回答的所有问题,现在你的 AI 助手也都能回答——包括后续问题、比较和“为什么?”。

✨ 为什么选择 matomo-mcp?

🎯 精心设计,而非自动生成15 个手工打造的工具,针对真实分析问题设计——而不是 70 多个自动生成的 API 镜像,它们会占满模型的上下文并降低工具选择的准确性。
⚡ 即时启动无需往返进行内省。单个静态二进制文件,无需 Node、Python 或运行时。毫秒级启动。
🔒 默认安全只读报告工具。令牌仅通过 POST 发送(绝不出现在 URL 或日志中),并从所有错误信息中清除。默认启用 TLS 验证。
🧠 上下文友好每份报告都限制行数,并设有硬性响应预算和可操作的指导——单次工具调用绝不会撑爆上下文窗口。
📡 包含实时功能实时访客计数器和访问日志(matomo_realtime)——查看此刻正在发生什么。
🧰 毫无限制当精心设计的工具无法满足需求时,matomo_api 可调用任意 Reporting API 方法(漏斗、热图、自定义维度等)。
🔁 弹性可靠遇到 429/5xx 错误或网络故障时自动退避重试。提供带提示注释的实用错误信息,便于模型采取行动。

🚀 快速开始

1. 安装

预构建二进制文件(Linux、macOS、Windows)——可从 Releases 下载,或:

# Cargo
cargo install matomo-mcp

# From source
cargo install --git https://github.com/Liohtml/matomo-mcp

# Docker
docker pull ghcr.io/liohtml/matomo-mcp
2. 获取 Matomo API 令牌

Matomo → 设置(⚙)→ 个人 → 安全 → 身份验证令牌 → 创建新令牌。 只需查看权限即可。

3. 验证连接
matomo-mcp --url https://your-matomo.example.com --token YOUR_TOKEN --check
✓ Connected — Matomo version 5.2.1
✓ Token grants access to 3 site(s):
    #1 My Shop (https://shop.example.com)
    #2 Blog (https://blog.example.com)
    #3 Docs (https://docs.example.com)
4. 连接你的客户端 ⬇

🔌 连接客户端

Claude Code
claude mcp add matomo \
  --env MATOMO_URL=https://your-matomo.example.com \
  --env MATOMO_TOKEN=YOUR_TOKEN \
  --env MATOMO_DEFAULT_SITE_ID=1 \
  -- matomo-mcp
Claude Desktop

添加到 claude_desktop_config.json(macOS:~/Library/Application Support/Claude/,Windows:%APPDATA%\Claude\):

{
  "mcpServers": {
    "matomo": {
      "command": "matomo-mcp",
      "env": {
        "MATOMO_URL": "https://your-matomo.example.com",
        "MATOMO_TOKEN": "YOUR_TOKEN",
        "MATOMO_DEFAULT_SITE_ID": "1"
      }
    }
  }
}
Cursor

.cursor/mcp.json(项目级)或 ~/.cursor/mcp.json(全局):

{
  "mcpServers": {
    "matomo": {
      "command": "matomo-mcp",
      "env": {
        "MATOMO_URL": "https://your-matomo.example.com",
        "MATOMO_TOKEN": "YOUR_TOKEN",
        "MATOMO_DEFAULT_SITE_ID": "1"
      }
    }
  }
}
VS Code (GitHub Copilot)

.vscode/mcp.json:

{
  "servers": {
    "matomo": {
      "type": "stdio",
      "command": "matomo-mcp",
      "env": {
        "MATOMO_URL": "https://your-matomo.example.com",
        "MATOMO_TOKEN": "${input:matomo-token}",
        "MATOMO_DEFAULT_SITE_ID": "1"
      }
    }
  },
  "inputs": [
    {
      "id": "matomo-token",
      "type": "promptString",
      "description": "Matomo API token",
      "password": true
    }
  ]
}
Windsurf / Zed / 其他 MCP 客户端

任何支持通过 stdio 使用 MCP 的客户端都可以使用以下通用配置:

{
  "command": "matomo-mcp",
  "args": [],
  "env": {
    "MATOMO_URL": "https://your-matomo.example.com",
    "MATOMO_TOKEN": "YOUR_TOKEN",
    "MATOMO_DEFAULT_SITE_ID": "1"
  }
}
Docker(任何客户端)
{
  "mcpServers": {
    "matomo": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "MATOMO_URL", "-e", "MATOMO_TOKEN", "-e", "MATOMO_DEFAULT_SITE_ID",
        "ghcr.io/liohtml/matomo-mcp"
      ],
      "env": {
        "MATOMO_URL": "https://your-matomo.example.com",
        "MATOMO_TOKEN": "YOUR_TOKEN",
        "MATOMO_DEFAULT_SITE_ID": "1"
      }
    }
  }
}
可流式传输的 HTTP — 托管一次,连接多个客户端

运行一次服务(在工作站、局域网设备或容器上),然后让任意数量的 MCP 客户端连接到它:

matomo-mcp --url https://your-matomo.example.com --token YOUR_TOKEN --http 127.0.0.1:8080

客户端使用可流式传输的 HTTP 传输连接到 http://127.0.0.1:8080/mcp,例如:

claude mcp add --transport http matomo http://127.0.0.1:8080/mcp

警告

HTTP 端点没有内置身份验证。请将其绑定到 127.0.0.1,或在其前面配置带身份验证的反向代理(或防火墙), 然后再将其暴露到本地主机之外。

提示

设置 MATOMO_DEFAULT_SITE_ID,模型就不必再询问你指的是哪个网站。 手头没有令牌?可以试试公开演示:--url https://demo.matomo.cloud --default-site-id 1(无需令牌)。

🧭 工具

工具可回答的问题
matomo_list_sites“我们跟踪了哪些网站?”
matomo_visits_summary“上周的流量有多少?”
matomo_pages“哪些页面最热门?访客从哪里离开?”
matomo_referrers“访客来自哪里?哪些营销活动效果好?AI 助手给我们带来了多少流量?”
matomo_events“配置器被打开了多少次?”
matomo_goals“每个目标的转化率是多少?”
matomo_ecommerce“本月收入是多少?哪些产品最畅销?”
matomo_geo“访客来自哪些国家/城市?”
matomo_devices“移动设备和桌面设备的情况如何?访客使用哪些浏览器?”
matomo_visit_times“人们通常在一天/一周中的什么时候访问?”
matomo_site_search“人们在我们的网站上搜索什么,却找不到结果?”
matomo_realtime“现在有哪些人在网站上?”
matomo_page_performance“哪些页面加载缓慢?”
matomo_annotations“哪些部署或营销活动启动时间与这次流量激增相吻合?”
matomo_api其他所有内容——漏斗、热图、自定义维度,以及 Reporting API 中的任意 Module.action

所有工具都接受 site_id、period(day/week/month/year/range)、date (today、yesterday、2026-07-01、last30 或 start,end 范围)、可选的 segment(例如 deviceType==mobile;country==DE)以及行数 limit。

可尝试的提示词
  • “比较本周和上周的流量——有什么变化?原因是什么?”
  • “列出本月按转化次数排名前 10 的落地页及其跳出率。”
  • “我们是否获得了来自 ChatGPT 或 Perplexity 的流量?查看近 3 个月的趋势。”
  • “哪些站内搜索没有返回结果?建议我们应该创建哪些内容。”
  • “当前访客日志中有什么异常吗?”

⚙️ 配置

标志环境变量默认值描述
--urlMATOMO_URL—Matomo 实例 URL(支持安装在子目录中的实例,例如 https://example.com/matomo/)。未指定时,服务仍会启动,但工具调用会返回设置指南
--tokenMATOMO_TOKEN—API 令牌(token_auth),拥有查看权限即可
--default-site-idMATOMO_DEFAULT_SITE_ID—模型未指定站点时使用的站点
--headerMATOMO_EXTRA_HEADERS—额外的 HTTP 标头(Name:Value,可重复指定或用逗号分隔)——适用于身份验证代理、Zero-Trust、多租户设置
--timeout-secsMATOMO_TIMEOUT_SECS30每次请求的超时时间
--max-response-charsMATOMO_MAX_RESPONSE_CHARS50000响应截断前的长度上限
--httpMATOMO_HTTP_BIND—在此地址上通过可流式传输的 HTTP 提供 MCP 服务,而非使用 stdio(端点:http://<addr>/mcp)
--insecureMATOMO_INSECUREfalse接受自签名 TLS 证书(需明确启用)
--check——验证 URL、令牌和站点访问权限,然后退出

🆚 这与 FGRibreau/mcp-matomo 有何不同?

mcp-matomo(本项目受其启发——感谢!🙏)会在启动时检查你的 Matomo 实例,并为每个 API 方法生成一个 MCP 工具。matomo-mcp 则采取了相反的做法:

matomo-mcpmcp-matomo
工具集15 个精选工具 + 备用入口约 70 个以上的生成工具
模型上下文开销小且稳定大,取决于实例
参数类型精确、手动编写的枚举值/默认值根据参数名称推断
启动即时(无网络 I/O)需要往返检查(或使用缓存的规范文件)
TLS 验证默认开启检查时禁用
子目录安装✅路径会被覆盖
响应大小保护行数限制 + 硬性上限—
瞬时错误重试✅—
实时(Live)工具✅—(不属于报告元数据)

如果你希望每个 API 方法都各自成为一个工具,请使用 mcp-matomo。如果你希望模型可靠地选择正确的工具,且不会让上下文过载,请使用 matomo-mcp。

🩺 故障排除

“site_id is required”

传入 --default-site-id 1(推荐),或者先让模型调用 matomo_list_sites。

401 / “cannot be authenticated”

运行 matomo-mcp --url ... --token ... --check。如果失败,请重新生成令牌(Settings → Personal → Security),并确保该令牌至少拥有此站点的查看权限。

404 或返回 HTML 而非 JSON

MATOMO_URL 必须指向 Matomo 根目录,也就是包含 index.php 的文件夹。对于 https://example.com/matomo/index.php,请使用 https://example.com/matomo/。

位于 Cloudflare Access / OAuth2 代理 / Zero Trust 后面?

注入绕过验证的标头:--header "CF-Access-Client-Id:..." --header "CF-Access-Client-Secret:..."(或通过 MATOMO_EXTRA_HEADERS 设置)。

响应似乎被截断

这是上下文保护机制正常工作所致。请减少请求行数、缩短日期范围,或调高 --max-response-chars。

🗺️ 路线图

  • 可流式传输的 HTTP 传输(--http,托管一次,供多个客户端连接)
  • matomo_annotations — 读取部署标记并与流量关联
  • 多实例支持(一个服务,支持多个 Matomo 安装)
  • Homebrew tap 和 winget manifest
  • MCP 注册表上架(通过 server.json 上架至官方注册表,以及 Glama)

希望尽早实现其中某项?提交 issue——或提交 PR,参见 CONTRIBUTING.md。

🛠️ 开发

cargo test                                   # 37 tests, fully offline (wiremock)
cargo clippy --all-targets -- -D warnings
cargo run -- --url https://demo.matomo.cloud --default-site-id 1 --check

架构与设计决策:docs/ARCHITECTURE.md。

📄 许可证与致谢

MIT。与 Matomo 无关联,也未获其认可 — Matomo 是 InnoCraft Ltd. 的注册商标。

使用官方 Rust MCP SDK rmcp 构建。灵感来自 FGRibreau/mcp-matomo。

  • MCP Registry 名称:mcp-name: io.github.Liohtml/matomo-mcp

如果 matomo-mcp 帮你省去了访问仪表板的麻烦,点个 ⭐ 就能帮助其他人发现它。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。