mcpField
M
Matomo Analytics

Matomo Analytics

ローカル
github.comデータ・分析010 週間前に更新

Matomo Analytics について

Matomo Analyticsは、Matomo利用者向けのMCPサーバーです。厳選した読み取り専用ツールでサイト分析データを取得でき、Reporting API全体への呼び出し口も備えています。単一バイナリでリアルタイムレポートや応答制限、再試行に対応します。

主な機能

  1. 0115種類の読み取り専用分析ツール
  2. 02トラフィック、ページ、参照元、ECレポート
  3. 03リアルタイム訪問者数と訪問ログ
  4. 04他のメソッド向けの全API呼び出し口
  5. 05行数と応答サイズの制限
  6. 06一時的な障害時の自動再試行

活用シーン

  1. 01期間別のサイトトラフィック比較
  2. 02コンバージョン、目標、ECデータの確認
  3. 03訪問者の流入元、端末、地域の分析
  4. 04現在の訪問者と訪問ログの確認
  5. 05厳選ツールにないReporting APIの呼び出し

MCP 対応

stdioまたはストリーム可能なHTTP経由で、Matomoレポート用ツールをMCPクライアントに提供します。ツールは読み取り専用で、他の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 ミラーを自動生成してモデルのコンテキストを圧迫し、ツール選択の精度を下げることはありません。
⚡ 即時起動内省のための往復通信は不要です。静的バイナリ 1 つで動作し、Node、Python、ランタイムは必要ありません。ミリ秒単位で起動します。
🔒 デフォルトで安全レポート用の読み取り専用ツールです。トークンは POST でのみ送信され(URL やログには含まれません)、すべてのエラーから取り除かれます。TLS 検証はデフォルトで有効です。
🧠 コンテキストに優しいすべてのレポートに行数制限を設け、実用的なガイダンス付きの厳格な応答上限を設定しています。1 回のツール呼び出しでコンテキストウィンドウがあふれることはありません。
📡 リアルタイム対応ライブ訪問者数と訪問ログ(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 → Settings(⚙)→ Personal → Security → Auth tokens → Create new token。 必要なのは閲覧専用の権限だけです。

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 — サーバーを一度起動し、複数のクライアントを接続

サーバーを一度起動し(ワークステーション、LAN 上のマシン、コンテナなど)、任意の数の 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—stdio の代わりに、このアドレスでストリーミング可能な HTTP 経由で MCP を提供します(エンドポイント: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 または JSON ではなく HTML が返される

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 — デプロイマーカーを読み取り、トラフィックと照合します
  • マルチインスタンス対応(1 つのサーバーで複数の Matomo インストールを利用)
  • Homebrew tap と winget マニフェスト
  • 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のおかげでダッシュボードを見に行く手間が省けたら、⭐を付けていただけると、ほかの人にも見つけてもらいやすくなります。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。