Skip to main content
Glama
Liohtml

Matomo-MCP

by Liohtml

matomo-mcp

Общайтесь со своей аналитикой Matomo. Из Claude, Cursor, VS Code или любого MCP-клиента.

CI Crates.io License: MIT Rust MCP

15 курируемых инструментов аналитики только для чтения + запасной выход через полный API. Один бинарный файл, мгновенный запуск, удобно для контекста.

Быстрый старт · Клиенты · Инструменты · Конфигурация · 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?

Любой вопрос, на который может ответить ваша панель Matomo, теперь может ответить и ваш ИИ-ассистент — включая уточнения, сравнения и «почему?».

✨ Почему matomo-mcp?

🎯 Курируемые, не сгенерированные

15 инструментов ручной работы, основанных на реальных вопросах аналитики — а не 70+ автоматически сгенерированных зеркал API, которые засоряют контекст модели и ухудшают выбор инструментов.

Мгновенный запуск

Никаких циклов интроспекции. Один статический бинарный файл, без Node, без Python, без рантайма. Запускается за миллисекунды.

🔒 Безопасно по умолчанию

Инструменты отчетности только для чтения. Токен отправляется только через POST (никогда в URL/логах), удаляется из каждой ошибки. Проверка TLS включена по умолчанию.

🧠 Удобно для контекста

Ограничения строк в каждом отчете и жесткий бюджет ответа с практическими рекомендациями — один вызов инструмента никогда не может взорвать окно контекста.

📡 Реальное время включено

Счетчики посетителей в реальном времени и журнал посещений (matomo_realtime) — видите, что происходит прямо сейчас.

🧰 Никогда не клетка

matomo_api обращается к любому методу Reporting API (воронки, тепловые карты, пользовательские измерения, …), когда курируемые инструменты его не покрывают.

🔁 Устойчивый

Автоматические повторные попытки с задержкой при 429/5xx/сбоях сети. Полезные сообщения об ошибках с подсказками, на которые модель может реагировать.

Related MCP server: mcp-server-wazuh

🚀 Быстрый старт

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. Получите API-токен Matomo

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

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

Любой клиент, поддерживающий MCP через stdio, работает с общей конфигурацией:

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

Запустите сервер один раз (на рабочей станции, в локальной сети или в контейнере) и подключите к нему любое количество MCP-клиентов:

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

Клиенты подключаются к http://127.0.0.1:8080/mcp через транспорт streamable HTTP, например:

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

[!WARNING] HTTP-эндпоинт не имеет встроенной аутентификации. Держите его привязанным к 127.0.0.1 или поставьте перед ним обратный прокси с аутентификацией (или файрвол) перед тем, как открывать доступ за пределами localhost.

[!TIP] Установите MATOMO_DEFAULT_SITE_ID — и модели больше не придётся спрашивать, какой сайт вы имеете в виду. Нет токена под рукой? Попробуйте на публичном демо: --url https://demo.matomo.cloud --default-site-id 1 (токен не нужен).

🧭 Инструменты

Tool

Answers questions like

matomo_list_sites

"Какие сайты мы отслеживаем?"

matomo_visits_summary

"Сколько трафика мы получили на прошлой неделе?"

matomo_pages

"Какие у нас самые популярные страницы? Где люди выходят?"

matomo_referrers

"Откуда приходят посетители? Какие кампании работают? Что нам присылают ИИ-ассистенты?"

matomo_events

"Как часто открывали конфигуратор?"

matomo_goals

"Какой коэффициент конверсии по каждой цели?"

matomo_ecommerce

"Выручка за этот месяц? Самые продаваемые товары?"

matomo_geo

"Из каких стран/городов приходят посетители?"

matomo_devices

"Мобильные vs. десктоп? Какие браузеры?"

matomo_visit_times

"Когда в течение дня/недели люди посещают?"

matomo_site_search

"Что люди ищут на нашем сайте — и не находят ничего?"

matomo_realtime

"Кто сейчас на сайте?"

matomo_page_performance

"Какие страницы загружаются медленно?"

matomo_annotations

"Какие развертывания или запуски кампаний совпадают с этим всплеском трафика?"

matomo_api

Всё остальное — воронки, тепловые карты, пользовательские измерения, любой Module.action из Reporting API

Все инструменты принимают 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 месяца."

  • "Какие внутренние поиски не дают результатов? Предложите контент, который нам стоит создать."

  • "Есть ли что-то необычное в журнале посетителей прямо сейчас?"

⚙️ Конфигурация

Flag

Env

Default

Description

--url

MATOMO_URL

URL экземпляра Matomo (работают установки в подкаталоге, например https://example.com/matomo/). Без него сервер всё равно запускается, а вызовы инструментов возвращают инструкции по настройке

--token

MATOMO_TOKEN

API-токен (token_auth), достаточно доступа на просмотр

--default-site-id

MATOMO_DEFAULT_SITE_ID

Сайт, используемый, когда модель не указывает конкретный

--header

MATOMO_EXTRA_HEADERS

Дополнительные HTTP-заголовки (Name:Value, повторяемые / через запятую) — для прокси с аутентификацией, Zero-Trust, мультитенантных конфигураций

--timeout-secs

MATOMO_TIMEOUT_SECS

30

Таймаут на запрос

--max-response-chars

MATOMO_MAX_RESPONSE_CHARS

50000

Бюджет ответа до усечения

--http

MATOMO_HTTP_BIND

Обслуживать MCP через streamable HTTP по этому адресу вместо stdio (конечная точка: http://<addr>/mcp)

--insecure

MATOMO_INSECURE

false

Принимать самоподписанные TLS-сертификаты (явное согласие)

--check

Проверить URL + токен + доступ к сайту, затем выйти

🆚 Чем это отличается от FGRibreau/mcp-matomo?

mcp-matomo (который вдохновил этот проект — спасибо! 🙏) при запуске анализирует ваш экземпляр Matomo и генерирует один MCP-инструмент на каждый метод API. matomo-mcp использует противоположный подход:

matomo-mcp

mcp-matomo

Набор инструментов

15 курируемых инструментов + запасной выход

~70+ сгенерированных инструментов

Стоимость контекста модели

Небольшая, стабильная

Большая, зависит от экземпляра

Типы параметров

Точные, написанные вручную перечисления/значения по умолчанию

Выведены из имён параметров

Запуск

Мгновенный (без сетевого ввода-вывода)

Циклы интроспекции (или кэшированный файл спецификации)

Проверка TLS

Включена по умолчанию

Отключена для интроспекции

Установки в подкаталог

Путь перезаписывается

Защита размера ответа

Ограничения строк + жесткий бюджет

Повторные попытки при временных ошибках

Инструменты реального времени (Live)

— (не часть метаданных отчёта)

Если вам нужен каждый метод API как отдельный инструмент, используйте mcp-matomo. Если вы хотите, чтобы модель надёжно выбирала правильный инструмент и никогда не засоряла свой контекст, используйте matomo-mcp.

🩺 Устранение неполадок

Либо передайте --default-site-id 1 (рекомендуется), либо позвольте модели сначала вызвать matomo_list_sites.

Запустите matomo-mcp --url ... --token ... --check. Если не работает: перегенерируйте токен (Настройки → Личные → Безопасность), убедитесь, что у него есть как минимум доступ view к сайту.

MATOMO_URL должен указывать на корень Matomo — папку, содержащую index.php. Для https://example.com/matomo/index.php используйте https://example.com/matomo/.

Вставьте заголовки обхода: --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.

Создано с помощью rmcp, официального Rust MCP SDK. Вдохновлено FGRibreau/mcp-matomo.

  • Имя в реестре MCP: mcp-name: io.github.Liohtml/matomo-mcp


Если matomo-mcp экономит вам визит в панель управления, ⭐ поможет другим найти его.

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