MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
제작자가 쓴 설명(영어 원문)
Curated read-only Matomo Analytics tools: traffic, pages, referrers, e-commerce, real-time & more.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
MATOMO_URL, MATOMO_TOKEN, MATOMO_DEFAULT_SITE_ID, MATOMO_EXTRA_HEADERS, MATOMO_TIMEOUT_SECS, MATOMO_MAX_RESPONSE_CHARS, MATOMO_INSECURE비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"matomo": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MATOMO_URL",
"-e",
"MATOMO_TOKEN",
"-e",
"MATOMO_DEFAULT_SITE_ID",
"-e",
"MATOMO_EXTRA_HEADERS",
"-e",
"MATOMO_TIMEOUT_SECS",
"-e",
"MATOMO_MAX_RESPONSE_CHARS",
"-e",
"MATOMO_INSECURE",
"ghcr.io/liohtml/matomo-mcp:v0.1.4"
],
"env": {
"MATOMO_URL": "your-value",
"MATOMO_TOKEN": "your-value",
"MATOMO_DEFAULT_SITE_ID": "your-value",
"MATOMO_EXTRA_HEADERS": "your-value",
"MATOMO_TIMEOUT_SECS": "your-value",
"MATOMO_MAX_RESPONSE_CHARS": "your-value",
"MATOMO_INSECURE": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add matomo --env MATOMO_URL=your-value --env MATOMO_TOKEN=your-value --env MATOMO_DEFAULT_SITE_ID=your-value --env MATOMO_EXTRA_HEADERS=your-value --env MATOMO_TIMEOUT_SECS=your-value --env MATOMO_MAX_RESPONSE_CHARS=your-value --env MATOMO_INSECURE=your-value -- docker run -i --rm -e MATOMO_URL -e MATOMO_TOKEN -e MATOMO_DEFAULT_SITE_ID -e MATOMO_EXTRA_HEADERS -e MATOMO_TIMEOUT_SECS -e MATOMO_MAX_RESPONSE_CHARS -e MATOMO_INSECURE ghcr.io/liohtml/matomo-mcp:v0.1.4실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"matomo": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MATOMO_URL",
"-e",
"MATOMO_TOKEN",
"-e",
"MATOMO_DEFAULT_SITE_ID",
"-e",
"MATOMO_EXTRA_HEADERS",
"-e",
"MATOMO_TIMEOUT_SECS",
"-e",
"MATOMO_MAX_RESPONSE_CHARS",
"-e",
"MATOMO_INSECURE",
"ghcr.io/liohtml/matomo-mcp:v0.1.4"
],
"env": {
"MATOMO_URL": "your-value",
"MATOMO_TOKEN": "your-value",
"MATOMO_DEFAULT_SITE_ID": "your-value",
"MATOMO_EXTRA_HEADERS": "your-value",
"MATOMO_TIMEOUT_SECS": "your-value",
"MATOMO_MAX_RESPONSE_CHARS": "your-value",
"MATOMO_INSECURE": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"matomo": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MATOMO_URL",
"-e",
"MATOMO_TOKEN",
"-e",
"MATOMO_DEFAULT_SITE_ID",
"-e",
"MATOMO_EXTRA_HEADERS",
"-e",
"MATOMO_TIMEOUT_SECS",
"-e",
"MATOMO_MAX_RESPONSE_CHARS",
"-e",
"MATOMO_INSECURE",
"ghcr.io/liohtml/matomo-mcp:v0.1.4"
],
"env": {
"MATOMO_URL": "your-value",
"MATOMO_TOKEN": "your-value",
"MATOMO_DEFAULT_SITE_ID": "your-value",
"MATOMO_EXTRA_HEADERS": "your-value",
"MATOMO_TIMEOUT_SECS": "your-value",
"MATOMO_MAX_RESPONSE_CHARS": "your-value",
"MATOMO_INSECURE": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
MATOMO_DEFAULT_SITE_ID envMATOMO_EXTRA_HEADERS envMATOMO_TIMEOUT_SECS envMATOMO_MAX_RESPONSE_CHARS envMATOMO_INSECURE env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 Liohtml 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: MATOMO_URL, MATOMO_TOKEN
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.4)은 23일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Rust, Docker도 있어야 해요.
같은 카테고리에는: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
An MCP server retrieving transcripts of YouTube videos
GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.
AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Talk to your Matomo Analytics. From Claude, Cursor, VS Code, or any MCP client.
*15 curated, read-only analytics tools + a full-API escape hatch. Single binary, instant startup, context-friendly.*
Quickstart · Clients · Tools · Configuration · 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:
Every question your Matomo dashboard can answer, your AI assistant can now answer too — including follow-ups, comparisons, and "why?".
| 🎯 Curated, not generated | 15 hand-crafted tools modeled on real analytics questions — not 70+ auto-generated API mirrors that flood the model's context and degrade tool selection. |
| ⚡ Instant startup | No introspection round-trips. One static binary, no Node, no Python, no runtime. Starts in milliseconds. |
| 🔒 Safe by default | Read-only reporting tools. Token sent via POST only (never in URLs/logs), redacted from every error. TLS verification on by default. |
| 🧠 Context-friendly | Row limits on every report and a hard response budget with actionable guidance — one tool call can never blow up the context window. |
| 📡 Real-time included | Live visitor counters and a visit log (matomo_realtime) — see what's happening *right now*. |
| 🧰 Never a cage | matomo_api reaches any Reporting API method (funnels, heatmaps, custom dimensions, …) when the curated tools don't cover it. |
| 🔁 Resilient | Automatic retries with backoff on 429/5xx/network hiccups. Helpful, hint-annotated error messages the model can act on. |
Prebuilt binary (Linux, macOS, Windows) — grab it from Releases, or:
# Cargo
cargo install matomo-mcp
cargo install --git https://github.com/Liohtml/matomo-mcp
docker pull ghcr.io/liohtml/matomo-mcp
Matomo → Settings (⚙) → Personal → Security → Auth tokens → *Create new token*. View-only permissions are all it needs.
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)
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
Add to 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 (project) or ~/.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" } } } }
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 / other MCP clients
Any client that speaks MCP over stdio works with the generic shape:
{
"command": "matomo-mcp", "args": [], "env": { "MATOMO_URL": "https://your-matomo.example.com", "MATOMO_TOKEN": "YOUR_TOKEN", "MATOMO_DEFAULT_SITE_ID": "1" } }
Docker (any client)
{
"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" } } } }
Streamable HTTP — host once, connect many clients
Run the server once (on a workstation, LAN box, or container) and point any number of MCP clients at it:
matomo-mcp --url https://your-matomo.example.com --token YOUR_TOKEN --http 127.0.0.1:8080
Clients connect to http://127.0.0.1:8080/mcp with the streamable HTTP transport, e.g.:
claude mcp add --transport http matomo http://127.0.0.1:8080/mcp
[!WARNING]
The HTTP endpoint has no built-in authentication. Keep it bound to
127.0.0.1, or put a reverse proxy with auth (or a firewall) in front
before exposing it beyond localhost.
[!TIP]
Set
MATOMO_DEFAULT_SITE_IDand the model never has to ask which site you mean.
No token at hand? Try it against the public demo:
--url https://demo.matomo.cloud --default-site-id 1(no token needed).
| Tool | Answers questions like |
|---|---|
matomo_list_sites | *"Which sites do we track?"* |
matomo_visits_summary | *"How much traffic did we get last week?"* |
matomo_pages | *"What are our top pages? Where do people exit?"* |
matomo_referrers | *"Where do visitors come from? Which campaigns work? What do AI assistants send us?"* |
matomo_events | *"How often was the configurator opened?"* |
matomo_goals | *"What's our conversion rate per goal?"* |
matomo_ecommerce | *"Revenue this month? Best-selling products?"* |
matomo_geo | *"Which countries/cities do visitors come from?"* |
matomo_devices | *"Mobile vs. desktop? Which browsers?"* |
matomo_visit_times | *"When during the day/week do people visit?"* |
matomo_site_search | *"What do people search for on our site — and find nothing?"* |
matomo_realtime | *"Who's on the site right now?"* |
matomo_page_performance | *"Which pages load slowly?"* |
matomo_annotations | *"Which deploys or campaign launches line up with that traffic spike?"* |
matomo_api | Everything else — funnels, heatmaps, custom dimensions, any Module.action of the Reporting API |
All tools accept site_id, period (day/week/month/year/range), date (today, yesterday, 2026-07-01, last30, or start,end ranges), an optional segment (e.g. deviceType==mobile;country==DE), and a row limit.
| Flag | Env | Default | Description |
|---|---|---|---|
--url | MATOMO_URL | — | Matomo instance URL (sub-directory installs like https://example.com/matomo/ work). Without it the server still starts and tool calls return setup guidance |
--token | MATOMO_TOKEN | — | API token (token_auth), view access is enough |
--default-site-id | MATOMO_DEFAULT_SITE_ID | — | Site used when the model doesn't specify one |
--header | MATOMO_EXTRA_HEADERS | — | Extra HTTP headers (Name:Value, repeatable / comma-separated) — for auth proxies, Zero-Trust, multi-tenant setups |
--timeout-secs | MATOMO_TIMEOUT_SECS | 30 | Per-request timeout |
--max-response-chars | MATOMO_MAX_RESPONSE_CHARS | 50000 | Response budget before truncation |
--http | MATOMO_HTTP_BIND | — | Serve MCP over streamable HTTP on this address instead of stdio (endpoint: http:// /mcp) |
--insecure | MATOMO_INSECURE | false | Accept self-signed TLS certificates (explicit opt-in) |
--check | — | — | Verify URL + token + site access, then exit |
FGRibreau/mcp-matomo?mcp-matomo (which inspired this project — thanks! 🙏) introspects your Matomo instance at startup and generates one MCP tool per API method. matomo-mcp takes the opposite approach:
| matomo-mcp | mcp-matomo | |
|---|---|---|
| Tool set | 15 curated tools + escape hatch | ~70+ generated tools |
| Model context cost | Small, stable | Large, instance-dependent |
| Parameter types | Exact, hand-written enums/defaults | Inferred from parameter names |
| Startup | Instant (no network I/O) | Introspection round-trips (or cached spec file) |
| TLS verification | On by default | Disabled for introspection |
| Sub-directory installs | ✅ | Path is overwritten |
| Response size guard | Row limits + hard budget | — |
| Retries on transient errors | ✅ | — |
| Real-time (Live) tools | ✅ | — (not part of report metadata) |
If you want *every* API method as its own tool, use mcp-matomo. If you want the model to reliably pick the right tool and never flood its context, use matomo-mcp.
"site_id is required"
Either pass --default-site-id 1 (recommended) or let the model call matomo_list_sites first.
401 / "cannot be authenticated"
Run matomo-mcp --url ... --token ... --check. If it fails: regenerate the token (Settings → Personal → Security), make sure it has at least view access to the site.
404 or HTML instead of JSON
MATOMO_URL must point at the Matomo root — the folder containing index.php. For https://example.com/matomo/index.php, use https://example.com/matomo/.
Behind Cloudflare Access / OAuth2 proxy / Zero Trust?
Inject the bypass headers: --header "CF-Access-Client-Id:..." --header "CF-Access-Client-Secret:..." (or via MATOMO_EXTRA_HEADERS).
Responses feel truncated
That's the context guard doing its job. Ask for fewer rows, a shorter date range, or raise --max-response-chars.
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요