Skip to main content
Glama
Liohtml

Matomo-MCP

by Liohtml

matomo-mcp

Sprechen Sie mit Ihrer Matomo-Analyse. Von Claude, Cursor, VS Code oder jedem MCP-Client.

CI Crates.io License: MIT Rust MCP

15 kuratierte, schreibgeschützte Analysetools + ein Notausgang für die vollständige API. Einzelne Binärdatei, sofortiger Start, kontextfreundlich.

Quickstart · Clients · Tools · Konfiguration · 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?

Jede Frage, die Ihr Matomo-Dashboard beantworten kann, kann jetzt auch Ihr KI-Assistent beantworten – einschließlich Folgefragen, Vergleichen und „Warum?".

✨ Warum matomo-mcp?

🎯 Kuratiert, nicht generiert

15 handgefertigte Tools, die auf echten Analysefragen basieren – nicht 70+ automatisch generierte API-Spiegel, die den Kontext des Modells überfluten und die Tool-Auswahl verschlechtern.

Sofortiger Start

Keine Introspections-Roundtrips. Eine statische Binärdatei, kein Node, kein Python, keine Laufzeit. Startet in Millisekunden.

🔒 Standardmäßig sicher

Schreibgeschützte Berichtstools. Token wird nur per POST gesendet (niemals in URLs/Logs), aus jedem Fehler entfernt. TLS-Überprüfung standardmäßig aktiviert.

🧠 Kontextfreundlich

Zeilenlimits für jeden Bericht und ein hartes Antwortbudget mit umsetzbaren Hinweisen – ein Tool-Aufruf kann das Kontextfenster niemals sprengen.

📡 Echtzeit inklusive

Live-Besucherzähler und ein Besuchsprotokoll (matomo_realtime) – sehen Sie, was gerade jetzt passiert.

🧰 Nie ein Käfig

matomo_api erreicht jede Reporting-API-Methode (Trichter, Heatmaps, benutzerdefinierte Dimensionen, …), wenn die kuratierten Tools sie nicht abdecken.

🔁 Belastbar

Automatische Wiederholungen mit Backoff bei 429/5xx/Netzwerkproblemen. Hilfreiche, mit Hinweisen versehene Fehlermeldungen, auf die das Modell reagieren kann.

Related MCP server: mcp-server-wazuh

🚀 Schnellstart

1. Installieren

Vorgefertigte Binärdatei (Linux, macOS, Windows) – holen Sie sie von Releases, oder:

# 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-Token abrufen

Matomo → Einstellungen (⚙) → PersönlichSicherheitAuth-TokensNeues Token erstellen. Nur-Lese-Berechtigungen reichen völlig aus.

3. Verbindung überprüfen

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. Verbinden Sie Ihren Client ⬇

🔌 Client verbinden

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

Fügen Sie zu claude_desktop_config.json hinzu (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/mcp.json (Projekt) oder ~/.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"
      }
    }
  }
}

.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
    }
  ]
}

Jeder Client, der MCP über stdio spricht, funktioniert mit der generischen Form:

{
  "command": "matomo-mcp",
  "args": [],
  "env": {
    "MATOMO_URL": "https://your-matomo.example.com",
    "MATOMO_TOKEN": "YOUR_TOKEN",
    "MATOMO_DEFAULT_SITE_ID": "1"
  }
}
{
  "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"
      }
    }
  }
}

Führen Sie den Server einmal aus (auf einer Workstation, LAN-Box oder in einem Container) und verbinden Sie beliebig viele MCP-Clients damit:

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

Clients verbinden sich mit http://127.0.0.1:8080/mcp über den Streamable-HTTP-Transport, z. B.:

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

[!WARNING] Der HTTP-Endpunkt hat keine eingebaute Authentifizierung. Halten Sie ihn an 127.0.0.1 gebunden oder setzen Sie einen Reverse-Proxy mit Authentifizierung (oder eine Firewall) davor, bevor Sie ihn über localhost hinaus freigeben.

[!TIP] Setzen Sie MATOMO_DEFAULT_SITE_ID und das Modell muss nie fragen, welche Website Sie meinen. Kein Token zur Hand? Testen Sie es gegen die öffentliche Demo: --url https://demo.matomo.cloud --default-site-id 1 (kein Token nötig).

🧭 Werkzeuge

Tool

Beantwortet Fragen wie

matomo_list_sites

„Welche Websites verfolgen wir?"

matomo_visits_summary

„Wie viel Traffic hatten wir letzte Woche?"

matomo_pages

„Was sind unsere Top-Seiten? Wo verlassen Besucher die Seite?"

matomo_referrers

„Woher kommen Besucher? Welche Kampagnen funktionieren? Was senden uns KI-Assistenten?"

matomo_events

„Wie oft wurde der Konfigurator geöffnet?"

matomo_goals

„Wie hoch ist unsere Conversion-Rate pro Ziel?"

matomo_ecommerce

„Umsatz diesen Monat? Bestseller-Produkte?"

matomo_geo

„Aus welchen Ländern/Städten kommen Besucher?"

matomo_devices

„Mobil vs. Desktop? Welche Browser?"

matomo_visit_times

„Wann besuchen Menschen die Seite im Tages-/Wochenverlauf?"

matomo_site_search

„Was suchen Menschen auf unserer Website – und finden nichts?"

matomo_realtime

„Wer ist gerade auf der Website?"

matomo_page_performance

„Welche Seiten laden langsam?"

matomo_annotations

„Welche Deployments oder Kampagnenstarts fallen mit diesem Traffic-Spike zusammen?"

matomo_api

Alles andere – Trichter, Heatmaps, benutzerdefinierte Dimensionen, jede Module.action der Reporting-API

Alle Tools akzeptieren site_id, period (day/week/month/year/range), date (today, yesterday, 2026-07-01, last30 oder start,end-Bereiche), ein optionales segment (z. B. deviceType==mobile;country==DE) und ein Zeilen-limit.

Prompts zum Ausprobieren

  • „Vergleiche den Traffic dieser Woche mit letzter Woche – was hat sich geändert und warum?"

  • „Top 10 Landingpages nach Conversions diesen Monat, mit Absprungraten."

  • „Bekommen wir Traffic von ChatGPT oder Perplexity? Trend über 3 Monate."

  • „Welche internen Suchen liefern keine Ergebnisse? Schlage Inhalte vor, die wir erstellen sollten."

  • „Gibt es gerade etwas Ungewöhnliches im Besucherprotokoll?"

⚙️ Konfiguration

Flag

Env

Standard

Beschreibung

--url

MATOMO_URL

Matomo-Instanz-URL (Subverzeichnis-Installationen wie https://example.com/matomo/ funktionieren). Ohne sie startet der Server trotzdem und Tool-Aufrufe geben Setup-Hinweise zurück

--token

MATOMO_TOKEN

API-Token (token_auth), Lesezugriff reicht

--default-site-id

MATOMO_DEFAULT_SITE_ID

Website, die verwendet wird, wenn das Modell keine angibt

--header

MATOMO_EXTRA_HEADERS

Zusätzliche HTTP-Header (Name:Value, wiederholbar / durch Komma getrennt) – für Auth-Proxys, Zero-Trust, Multi-Tenant-Setups

--timeout-secs

MATOMO_TIMEOUT_SECS

30

Timeout pro Anfrage

--max-response-chars

MATOMO_MAX_RESPONSE_CHARS

50000

Antwortbudget vor dem Abschneiden

--http

MATOMO_HTTP_BIND

MCP über streamable HTTP auf dieser Adresse statt stdio bereitstellen (Endpunkt: http://<addr>/mcp)

--insecure

MATOMO_INSECURE

false

Selbstsignierte TLS-Zertifikate akzeptieren (ausdrückliche Opt-in)

--check

URL + Token + Website-Zugriff überprüfen, dann beenden

🆚 Wie unterscheidet sich das von FGRibreau/mcp-matomo?

mcp-matomo (das dieses Projekt inspiriert hat – danke! 🙏) durchsucht Ihre Matomo-Instanz beim Start und generiert ein MCP-Tool pro API-Methode. matomo-mcp verfolgt den gegenteiligen Ansatz:

matomo-mcp

mcp-matomo

Werkzeugsatz

15 kuratierte Tools + Notausgang

~70+ generierte Tools

Modellkontextkosten

Klein, stabil

Groß, instanzabhängig

Parametertypen

Exakt, handgeschriebene Enums/Standardwerte

Aus Parameternamen abgeleitet

Start

Sofort (keine Netzwerk-I/O)

Introspections-Roundtrips (oder zwischengespeicherte Spezifikationsdatei)

TLS-Überprüfung

Standardmäßig aktiviert

Für Introspection deaktiviert

Subverzeichnis-Installationen

Pfad wird überschrieben

Antwortgrößen-Schutz

Zeilenlimits + hartes Budget

Wiederholungen bei vorübergehenden Fehlern

Echtzeit-Tools (Live)

— (nicht Teil der Berichtsmetadaten)

Wenn Sie jede API-Methode als eigenes Tool möchten, verwenden Sie mcp-matomo. Wenn Sie möchten, dass das Modell zuverlässig das richtige Tool auswählt und seinen Kontext niemals überflutet, verwenden Sie matomo-mcp.

🩺 Fehlerbehebung

Übergeben Sie entweder --default-site-id 1 (empfohlen) oder lassen Sie das Modell zuerst matomo_list_sites aufrufen.

Führen Sie matomo-mcp --url ... --token ... --check aus. Wenn es fehlschlägt: Generieren Sie das Token neu (Einstellungen → Persönlich → Sicherheit) und stellen Sie sicher, dass es mindestens Ansicht-Zugriff auf die Website hat.

MATOMO_URL muss auf das Matomo-Wurzelverzeichnis zeigen – den Ordner, der index.php enthält. Für https://example.com/matomo/index.php verwenden Sie https://example.com/matomo/.

Fügen Sie die Bypass-Header ein: --header "CF-Access-Client-Id:..." --header "CF-Access-Client-Secret:..." (oder über MATOMO_EXTRA_HEADERS).

Das ist der Kontextschutz, der seine Arbeit tut. Fragen Sie nach weniger Zeilen, einem kürzeren Datumsbereich oder erhöhen Sie --max-response-chars.

🗺️ Roadmap

  • Streamable HTTP-Transport (--http, einmal hosten, viele Clients verbinden)

  • matomo_annotations – Bereitstellungsmarker lesen und mit Traffic korrelieren

  • Multi-Instanz-Unterstützung (ein Server, mehrere Matomo-Installationen)

  • Homebrew-Tap und winget-Manifest

  • MCP-Registry-Eintrag (offizielle Registry über server.json, Glama)

Möchten Sie eine davon früher? Erstellen Sie ein Issue – oder einen PR, siehe CONTRIBUTING.md.

🛠️ Entwicklung

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

Architektur- und Designentscheidungen: docs/ARCHITECTURE.md.

📄 Lizenz & Danksagungen

MIT. Nicht verbunden mit oder unterstützt von Matomo – Matomo ist eine eingetragene Marke der InnoCraft Ltd.

Erstellt mit rmcp, dem offiziellen Rust-MCP-SDK. Inspiriert von FGRibreau/mcp-matomo.

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


Wenn matomo-mcp Ihnen einen Dashboard-Besuch erspart, hilft ein ⭐ anderen, es zu finden.

A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
1wRelease cycle
5Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for Tinify image optimization — one tool, max optimization

  • MCP Server for agents to onboard, pay, and provision services autonomously with InFlow

  • MCP server for Blockscout

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Liohtml/matomo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server