プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Matomo Analytics

作者:Liohtmlバージョン 0.1.4i★ –iパソコンで動く
レジストリ名io.github.Liohtml/matomo-mcp

インストール

概要

作者による説明(英語の原文)

Curated read-only Matomo Analytics tools: traffic, pages, referrers, e-commerce, real-time & more.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: マーケティング・SNS
  • 入力が必要なもの:MATOMO_URL, MATOMO_TOKEN

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: MATOMO_URL, MATOMO_TOKEN, MATOMO_DEFAULT_SITE_ID, MATOMO_EXTRA_HEADERS, MATOMO_TIMEOUT_SECS, MATOMO_MAX_RESPONSE_CHARS, MATOMO_INSECURE

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • DockerDockerのインストール

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "matomo": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "MATOMO_URL",
        "-e",
        "MATOMO_TOKEN",
        "-e",
        "MATOMO_DEFAULT_SITE_ID",
        "-e",
        "MATOMO_EXTRA_HEADERS",
        "-e",
        "MATOMO_TIMEOUT_SECS",
        "-e",
        "MATOMO_MAX_RESPONSE_CHARS",
        "-e",
        "MATOMO_INSECURE",
        "ghcr.io/liohtml/matomo-mcp:v0.1.4"
      ],
      "env": {
        "MATOMO_URL": "your-value",
        "MATOMO_TOKEN": "your-value",
        "MATOMO_DEFAULT_SITE_ID": "your-value",
        "MATOMO_EXTRA_HEADERS": "your-value",
        "MATOMO_TIMEOUT_SECS": "your-value",
        "MATOMO_MAX_RESPONSE_CHARS": "your-value",
        "MATOMO_INSECURE": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add matomo --env MATOMO_URL=your-value --env MATOMO_TOKEN=your-value --env MATOMO_DEFAULT_SITE_ID=your-value --env MATOMO_EXTRA_HEADERS=your-value --env MATOMO_TIMEOUT_SECS=your-value --env MATOMO_MAX_RESPONSE_CHARS=your-value --env MATOMO_INSECURE=your-value -- docker run -i --rm -e MATOMO_URL -e MATOMO_TOKEN -e MATOMO_DEFAULT_SITE_ID -e MATOMO_EXTRA_HEADERS -e MATOMO_TIMEOUT_SECS -e MATOMO_MAX_RESPONSE_CHARS -e MATOMO_INSECURE ghcr.io/liohtml/matomo-mcp:v0.1.4

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "matomo": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "MATOMO_URL",
        "-e",
        "MATOMO_TOKEN",
        "-e",
        "MATOMO_DEFAULT_SITE_ID",
        "-e",
        "MATOMO_EXTRA_HEADERS",
        "-e",
        "MATOMO_TIMEOUT_SECS",
        "-e",
        "MATOMO_MAX_RESPONSE_CHARS",
        "-e",
        "MATOMO_INSECURE",
        "ghcr.io/liohtml/matomo-mcp:v0.1.4"
      ],
      "env": {
        "MATOMO_URL": "your-value",
        "MATOMO_TOKEN": "your-value",
        "MATOMO_DEFAULT_SITE_ID": "your-value",
        "MATOMO_EXTRA_HEADERS": "your-value",
        "MATOMO_TIMEOUT_SECS": "your-value",
        "MATOMO_MAX_RESPONSE_CHARS": "your-value",
        "MATOMO_INSECURE": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "matomo": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "MATOMO_URL",
        "-e",
        "MATOMO_TOKEN",
        "-e",
        "MATOMO_DEFAULT_SITE_ID",
        "-e",
        "MATOMO_EXTRA_HEADERS",
        "-e",
        "MATOMO_TIMEOUT_SECS",
        "-e",
        "MATOMO_MAX_RESPONSE_CHARS",
        "-e",
        "MATOMO_INSECURE",
        "ghcr.io/liohtml/matomo-mcp:v0.1.4"
      ],
      "env": {
        "MATOMO_URL": "your-value",
        "MATOMO_TOKEN": "your-value",
        "MATOMO_DEFAULT_SITE_ID": "your-value",
        "MATOMO_EXTRA_HEADERS": "your-value",
        "MATOMO_TIMEOUT_SECS": "your-value",
        "MATOMO_MAX_RESPONSE_CHARS": "your-value",
        "MATOMO_INSECURE": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • MATOMO_URL 必須 env
    Matomo instance URL, e.g. https://matomo.example.com
  • MATOMO_TOKEN 秘密 必須 env
    Matomo API token (token_auth) with view access
  • MATOMO_DEFAULT_SITE_ID env
    Optional default site ID so tools don't require an explicit site_id
  • MATOMO_EXTRA_HEADERS env
    Extra HTTP headers as comma-separated 'Name:Value' pairs (auth proxies, Zero-Trust)
  • MATOMO_TIMEOUT_SECS env
    Per-request timeout in seconds (default 30)
  • MATOMO_MAX_RESPONSE_CHARS env
    Response budget in characters before truncation (default 50000)
  • MATOMO_INSECURE env
    Set to 'true' to accept self-signed TLS certificates (explicit opt-in)

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント Liohtml で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

マーケティング・SNSのほかのサーバーとの比較i

  • このカテゴリのほかの2965件のうち0%よりスターが多い
  • このカテゴリのほかの2965件のうち57%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの2965件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Matomo Analyticsは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:MATOMO_URL, MATOMO_TOKEN

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.1.4)がレジストリに届いたのは22 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにRust, Dockerも必要です。

代わりに使えるものは?

同じカテゴリには:MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Google Analytics MCP

作者:surendranb

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

パソコンで動く★ 244MIT9 日前更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

matomo-mcp

Talk to your Matomo Analytics. From Claude, Cursor, VS Code, or any MCP client.

*15 curated, read-only analytics tools + a full-API escape hatch. Single binary, instant startup, context-friendly.*

Quickstart · Clients · Tools · Configuration · FAQ


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?

Every question your Matomo dashboard can answer, your AI assistant can now answer too — including follow-ups, comparisons, and "why?".

✨ Why matomo-mcp?

🎯 Curated, not generated15 hand-crafted tools modeled on real analytics questions — not 70+ auto-generated API mirrors that flood the model's context and degrade tool selection.
⚡ Instant startupNo introspection round-trips. One static binary, no Node, no Python, no runtime. Starts in milliseconds.
🔒 Safe by defaultRead-only reporting tools. Token sent via POST only (never in URLs/logs), redacted from every error. TLS verification on by default.
🧠 Context-friendlyRow limits on every report and a hard response budget with actionable guidance — one tool call can never blow up the context window.
📡 Real-time includedLive visitor counters and a visit log (matomo_realtime) — see what's happening *right now*.
🧰 Never a cagematomo_api reaches any Reporting API method (funnels, heatmaps, custom dimensions, …) when the curated tools don't cover it.
🔁 ResilientAutomatic retries with backoff on 429/5xx/network hiccups. Helpful, hint-annotated error messages the model can act on.

🚀 Quickstart

1. Install

Prebuilt binary (Linux, macOS, Windows) — grab it from Releases, or:

# 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. Get a Matomo API token

Matomo → Settings (⚙) → Personal → Security → Auth tokens → *Create new token*. View-only permissions are all it needs.

3. Verify the connection
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. Connect your client ⬇

🔌 Connect your client

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

Add to 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 (project) or ~/.cursor/mcp.json (global):

{

"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 / other MCP clients

Any client that speaks MCP over stdio works with the generic shape:

{

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

Docker (any client)

{

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

Streamable HTTP — host once, connect many clients

Run the server once (on a workstation, LAN box, or container) and point any number of MCP clients at it:

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

Clients connect to http://127.0.0.1:8080/mcp with the streamable HTTP transport, e.g.:

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

[!WARNING]

The HTTP endpoint has no built-in authentication. Keep it bound to

127.0.0.1, or put a reverse proxy with auth (or a firewall) in front

before exposing it beyond localhost.

[!TIP]

Set MATOMO_DEFAULT_SITE_ID and the model never has to ask which site you mean.

No token at hand? Try it against the public demo: --url https://demo.matomo.cloud --default-site-id 1 (no token needed).

🧭 Tools

ToolAnswers questions like
matomo_list_sites*"Which sites do we track?"*
matomo_visits_summary*"How much traffic did we get last week?"*
matomo_pages*"What are our top pages? Where do people exit?"*
matomo_referrers*"Where do visitors come from? Which campaigns work? What do AI assistants send us?"*
matomo_events*"How often was the configurator opened?"*
matomo_goals*"What's our conversion rate per goal?"*
matomo_ecommerce*"Revenue this month? Best-selling products?"*
matomo_geo*"Which countries/cities do visitors come from?"*
matomo_devices*"Mobile vs. desktop? Which browsers?"*
matomo_visit_times*"When during the day/week do people visit?"*
matomo_site_search*"What do people search for on our site — and find nothing?"*
matomo_realtime*"Who's on the site right now?"*
matomo_page_performance*"Which pages load slowly?"*
matomo_annotations*"Which deploys or campaign launches line up with that traffic spike?"*
matomo_apiEverything else — funnels, heatmaps, custom dimensions, any Module.action of the Reporting API

All tools accept site_id, period (day/week/month/year/range), date (today, yesterday, 2026-07-01, last30, or start,end ranges), an optional segment (e.g. deviceType==mobile;country==DE), and a row limit.

Prompts to try
  • *"Compare this week's traffic with last week — what changed and why?"*
  • *"Top 10 landing pages by conversions this month, with bounce rates."*
  • *"Are we getting traffic from ChatGPT or Perplexity? Trend over 3 months."*
  • *"Which internal searches return no results? Suggest content we should create."*
  • *"Anything unusual in the visitor log right now?"*

⚙️ Configuration

FlagEnvDefaultDescription
--urlMATOMO_URL—Matomo instance URL (sub-directory installs like https://example.com/matomo/ work). Without it the server still starts and tool calls return setup guidance
--tokenMATOMO_TOKEN—API token (token_auth), view access is enough
--default-site-idMATOMO_DEFAULT_SITE_ID—Site used when the model doesn't specify one
--headerMATOMO_EXTRA_HEADERS—Extra HTTP headers (Name:Value, repeatable / comma-separated) — for auth proxies, Zero-Trust, multi-tenant setups
--timeout-secsMATOMO_TIMEOUT_SECS30Per-request timeout
--max-response-charsMATOMO_MAX_RESPONSE_CHARS50000Response budget before truncation
--httpMATOMO_HTTP_BIND—Serve MCP over streamable HTTP on this address instead of stdio (endpoint: http:// /mcp)
--insecureMATOMO_INSECUREfalseAccept self-signed TLS certificates (explicit opt-in)
--check——Verify URL + token + site access, then exit

🆚 How is this different from FGRibreau/mcp-matomo?

mcp-matomo (which inspired this project — thanks! 🙏) introspects your Matomo instance at startup and generates one MCP tool per API method. matomo-mcp takes the opposite approach:

matomo-mcpmcp-matomo
Tool set15 curated tools + escape hatch~70+ generated tools
Model context costSmall, stableLarge, instance-dependent
Parameter typesExact, hand-written enums/defaultsInferred from parameter names
StartupInstant (no network I/O)Introspection round-trips (or cached spec file)
TLS verificationOn by defaultDisabled for introspection
Sub-directory installs✅Path is overwritten
Response size guardRow limits + hard budget—
Retries on transient errors✅—
Real-time (Live) tools✅— (not part of report metadata)

If you want *every* API method as its own tool, use mcp-matomo. If you want the model to reliably pick the right tool and never flood its context, use matomo-mcp.

🩺 Troubleshooting

"site_id is required"

Either pass --default-site-id 1 (recommended) or let the model call matomo_list_sites first.

401 / "cannot be authenticated"

Run matomo-mcp --url ... --token ... --check. If it fails: regenerate the token (Settings → Personal → Security), make sure it has at least view access to the site.

404 or HTML instead of JSON

MATOMO_URL must point at the Matomo root — the folder containing index.php. For https://example.com/matomo/index.php, use https://example.com/matomo/.

Behind Cloudflare Access / OAuth2 proxy / Zero Trust?

Inject the bypass headers: --header "CF-Access-Client-Id:..." --header "CF-Access-Client-Secret:..." (or via MATOMO_EXTRA_HEADERS).

Responses feel truncated

That's the context guard doing its job. Ask for fewer rows, a shorter date range, or raise --max-response-chars.

🗺️ Roadmap

  • Streamable HTTP transp

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く