Matomo-MCP
matomo-mcp
Sprechen Sie mit Ihrer Matomo-Analyse. Von Claude, Cursor, VS Code oder jedem MCP-Client.
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 ( |
🧰 Nie ein Käfig |
|
🔁 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-mcp2. Matomo-API-Token abrufen
Matomo → Einstellungen (⚙) → Persönlich → Sicherheit → Auth-Tokens → Neues 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-mcpFü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:8080Clients 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.1gebunden 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_IDund 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 |
| „Welche Websites verfolgen wir?" |
| „Wie viel Traffic hatten wir letzte Woche?" |
| „Was sind unsere Top-Seiten? Wo verlassen Besucher die Seite?" |
| „Woher kommen Besucher? Welche Kampagnen funktionieren? Was senden uns KI-Assistenten?" |
| „Wie oft wurde der Konfigurator geöffnet?" |
| „Wie hoch ist unsere Conversion-Rate pro Ziel?" |
| „Umsatz diesen Monat? Bestseller-Produkte?" |
| „Aus welchen Ländern/Städten kommen Besucher?" |
| „Mobil vs. Desktop? Welche Browser?" |
| „Wann besuchen Menschen die Seite im Tages-/Wochenverlauf?" |
| „Was suchen Menschen auf unserer Website – und finden nichts?" |
| „Wer ist gerade auf der Website?" |
| „Welche Seiten laden langsam?" |
| „Welche Deployments oder Kampagnenstarts fallen mit diesem Traffic-Spike zusammen?" |
| Alles andere – Trichter, Heatmaps, benutzerdefinierte Dimensionen, jede |
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 |
|
| — | Matomo-Instanz-URL (Subverzeichnis-Installationen wie |
|
| — | API-Token ( |
|
| — | Website, die verwendet wird, wenn das Modell keine angibt |
|
| — | Zusätzliche HTTP-Header ( |
|
|
| Timeout pro Anfrage |
|
|
| Antwortbudget vor dem Abschneiden |
|
| — | MCP über streamable HTTP auf dieser Adresse statt stdio bereitstellen (Endpunkt: |
|
|
| Selbstsignierte TLS-Zertifikate akzeptieren (ausdrückliche Opt-in) |
| — | — | 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 korrelierenMulti-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 --checkArchitektur- 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.
Maintenance
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
- AlicenseNot gradedqualityFmaintenanceMCP Server for Nutanix Prism Central14MIT
- MIT
- AlicenseBqualityBmaintenanceMCP Server for Apache Pinot1417Apache 2.0
- -licenseNot gradedqualityNot gradedmaintenanceEnables AI models to interact with Matomo analytics through a complete MCP server implementation. Provides tools for retrieving analytics data, managing sites, and generating reports with zero configuration setup.
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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