Skip to main content
Glama
Liohtml

Matomo-MCP

by Liohtml

matomo-mcp

Matomo Analytics와 대화하세요. 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 대시보드가 답할 수 있는 모든 질문에 이제 AI 어시스턴트도 답할 수 있습니다 — 후속 질문, 비교, "왜?"까지 포함해서요.

✨ 왜 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. Matomo API 토큰 받기

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

stdio를 통해 MCP를 지원하는 모든 클라이언트는 일반적인 형태로 작동합니다:

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

서버를 한 번 실행하고 (워크스테이션, LAN 박스 또는 컨테이너에서) 여러 MCP 클라이언트를 연결하세요:

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

클라이언트는 streamable HTTP 전송으로 http://127.0.0.1:8080/mcp에 연결합니다. 예:

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 (토큰 불필요).

🧭 도구

도구

답할 수 있는 질문 예시

matomo_list_sites

"우리가 추적하는 사이트는 무엇인가요?"

matomo_visits_summary

"지난주에 트래픽이 얼마나 있었나요?"

matomo_pages

"상위 페이지는 무엇인가요? 사람들은 어디서 이탈하나요?"

matomo_referrers

"방문자는 어디에서 오나요? 어떤 캠페인이 효과가 있나요? AI 어시스턴트가 보내는 트래픽은?"

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

그 외 모든 것 — 퍼널, 히트맵, 커스텀 차원, 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개월 추세를 보여주세요."

  • "결과가 없는 내부 검색은 무엇인가요? 우리가 만들어야 할 콘텐츠를 제안해 주세요."

  • "지금 방문자 로그에 특이한 점이 있나요?"

⚙️ 구성

플래그

환경 변수

기본값

설명

--url

MATOMO_URL

Matomo 인스턴스 URL (하위 디렉터리 설치 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

stdio 대신 이 주소에서 streamable HTTP로 MCP 제공 (엔드포인트: http://<addr>/mcp)

--insecure

MATOMO_INSECURE

false

자체 서명 TLS 인증서 허용 (명시적 옵트인)

--check

URL + 토큰 + 사이트 접근 확인 후 종료

🆚 FGRibreau/mcp-matomo와 어떻게 다른가요?

mcp-matomo (이 프로젝트에 영감을 준 프로젝트 — 감사합니다! 🙏)는 시작 시 Matomo 인스턴스를 인트로스펙션하고 API 메서드당 하나의 MCP 도구를 생성합니다. matomo-mcp는 반대 접근 방식을 취합니다:

matomo-mcp

mcp-matomo

도구 세트

15개의 엄선된 도구 + 탈출구

~70개 이상의 생성된 도구

모델 컨텍스트 비용

작고 안정적

크고 인스턴스에 따라 다름

매개변수 유형

정확하고 수작업으로 작성된 열거형/기본값

매개변수 이름에서 유추

시작

즉시 (네트워크 I/O 없음)

인트로스펙션 왕복 (또는 캐시된 스펙 파일)

TLS 검증

기본 활성화

인트로스펙션에 대해 비활성화

하위 디렉터리 설치

경로가 덮어써짐

응답 크기 가드

행 제한 + 하드 예산

일시적 오류 시 재시도

실시간 (Live) 도구

— (보고 메타데이터의 일부가 아님)

모든 API 메서드를 별도의 도구로 원한다면 mcp-matomo를 사용하세요. 모델이 올바른 도구를 안정적으로 선택하고 컨텍스트를 넘치지 않게 하려면 matomo-mcp를 사용하세요.

🩺 문제 해결

--default-site-id 1을 전달하거나(권장), 모델이 먼저 matomo_list_sites를 호출하게 하세요.

matomo-mcp --url ... --token ... --check를 실행하세요. 실패하면: 토큰을 재생성하고(Settings → Personal → Security), 사이트에 대해 최소 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를 높이세요.

🗺️ 로드맵

  • Streamable HTTP 전송 (--http, 한 번 호스팅하고 여러 클라이언트 연결)

  • matomo_annotations — 배포 마커를 트래픽과 읽고 상호 연관시키기

  • 다중 인스턴스 지원(하나의 서버, 여러 Matomo 설치)

  • Homebrew tap 및 winget 매니페스트

  • MCP 레지스트리 등재(공식 레지스트리 via server.json, Glama)

이 중 하나가 더 빨리 필요하신가요? 이슈 열기 — 또는 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