yt-analytics-mcp
Analyzes YouTube channels: extracts transcripts, computes quantitative metrics (WPM, profanity, humor, rhetoric, title formula), and generates multi-creator comparison dashboards.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@yt-analytics-mcp analyze @MrBeast's channel with 10 videos"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
yt-analytics-mcp
MCP server for YouTube channel deep analytics. Extracts transcripts, computes quantitative metrics (WPM, profanity, humor taxonomy, rhetoric fingerprint, title formula, posting schedule), and generates multi-creator comparison dashboards.


Tools
Tool | Description |
| Analyze a channel: download transcripts, compute metrics, cache results |
| List all cached channel analyses |
| Retrieve full cached analysis JSON for a channel |
| Remove a cached analysis |
| Build a tabbed HTML comparison dashboard from cached analyses |
Related MCP server: YouTube MCP
Quick Start
# Install
cd yt-analytics-mcp
npm install
# Add to Claude Code settings
# ~/.claude/settings.json → mcpServersClaude Code Config
{
"mcpServers": {
"yt-analytics": {
"command": "node",
"args": ["/path/to/yt-analytics-mcp/src/index.js"],
"env": {
"YT_ANALYTICS_DATA": "/path/to/yt-analytics-mcp/data"
}
}
}
}Usage
Analyze a single channel
Analyze @BennJordan's channel (20 videos, tech niche)
→ calls yt_analyze_channel with channel="@BennJordan", limit=20, niche="tech"Returns structured JSON with per-video and aggregate metrics:
WPM (words per minute) with niche baseline comparison
Profanity density per minute
Humor taxonomy (crude, self-deprecating, confrontational, hyperbolic, absurd)
Rhetoric fingerprint (connector word frequencies: but, so, because, if you, etc.)
Title formula (CAPS usage, exclamation marks, parentheticals)
Posting schedule (day-of-week distribution, monthly activity, cadence gaps)
Build a comparison dashboard
Compare all analyzed channels in a tabbed dashboard
→ calls yt_compare_creatorsGenerates a self-contained HTML file with:
Sticky tab bar for switching between creators
KPI cards (videos, words, runtime, median WPM, profanity, avg length)
WPM horizontal bar chart with niche average line
Video structure timeline
Humor taxonomy doughnut chart
Profanity density bar chart
Rhetoric radar chart
Video length vs. speech rate bubble chart
Posting schedule — day-of-week bar chart, monthly activity line chart, cadence stats
Title formula badges
Opening line pattern breakdown
Connector language grid
Per-video data table
Written analysis
Workflow
1. yt_analyze_channel → analyze @Creator1 (cached)
2. yt_analyze_channel → analyze @Creator2 (cached)
3. yt_analyze_channel → analyze @Creator3 (cached)
4. yt_compare_creators → build tabbed dashboard from all cached analysesThe companion /yt-analytics skill adds Gemini qualitative analysis on top — editing mechanics, humor quotes, video structure timelines, energy modulation — then merges with the MCP's quantitative data.
Filtering by date
Analyze @RyanHumiston — last 2 years only, 20 videos
→ yt_analyze_channel with channel="@RyanHumiston", limit=20, max_age_days=730The --max-age-days flag filters out videos older than N days before analysis.
Niche Baselines
Niche | Avg WPM |
Fitness | ~170 |
Tech | ~160 |
Commentary | ~190 |
Educational | ~150 |
Gaming | ~180 |
News | ~175 |
Woodworking | ~175 |
Music | ~165 |
Requirements
Node.js 18+
Python 3.10+ with
yt-dlpandyoutube-transcript-apiinstalledNo API keys needed
Data Storage
Analyses are cached as JSON files in the data/ directory (configurable via YT_ANALYTICS_DATA env var). Transcript files are stored in data/transcripts/.
Architecture
yt-analytics-mcp/
├── src/
│ └── index.js # MCP server + HTML generator
├── scripts/
│ └── analyze_channel.py # Transcript extraction + quantitative analysis
├── docs/ # Example screenshots
├── data/ # Cached analyses (JSON) + transcripts
├── package.json
└── README.mdThe MCP server wraps the Python analysis script and adds:
Result caching and management
Multi-creator comparison HTML generation
Structured tool interfaces for Claude Code
Available Tools
5 toolsyt_analyze_channelA
Analyze a YouTube channel: download transcripts and compute quantitative metrics (WPM, profanity, humor taxonomy, rhetoric fingerprint, title formula). Returns structured JSON. Results are cached for use in comparisons.
Inputs: channel (required), limit, niche.
yt_compare_creatorsA
Build or update a tabbed HTML comparison dashboard from cached analyses. Specify which channels to include, or omit to include all cached analyses. Returns the HTML file path.
Inputs: title, channels, output_path.
yt_get_analysisB
Retrieve the full cached analysis JSON for a specific channel.
Inputs: channel (required).
yt_list_analysesA
List all cached channel analyses. Returns channel names, video counts, and analysis dates.
Inputs: no named parameters.
yt_remove_analysisB
Remove a cached channel analysis.
Inputs: channel (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: analyzing a channel, comparing creators, retrieving cached analyses, listing them, and removing them. No overlap exists.
All tools follow a consistent 'yt_verb_noun' pattern (e.g., yt_analyze_channel, yt_compare_creators), making the naming predictable and uniform.
With 5 tools, the server is well-scoped for managing YouTube channel analyses. The count is appropriate for the domain without being excessive or insufficient.
The tool set covers the full lifecycle: create analysis, retrieve (list/get), update (compare dashboard), and delete. No obvious gaps for the intended purpose.
Maintenance
Related MCP Connectors
An MCP server that gives any LLM or agent clean YouTube transcripts on demand: a single video, a whole channel, or a playlist, plus AI cleanup of auto-generated captions. API-key auth, credit-based, same backend as the public v1 API. Get a free API key with 25 free credits at youtubetranscriptdownload.com/account.
MCP server for structured access to Lenny Rachitsky podcast transcripts. For content creators.
Real-time YouTube transcripts, comments, channels & video search MCP. Local npx or hosted OAuth.
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables interaction with the YouTube Data API, allowing users to search videos, get video and channel details, analyze trends, and fetch video transcripts.-
- AlicenseAqualityDmaintenanceAn MCP server that enables users to retrieve YouTube transcripts and perform video or channel searches without requiring Google API keys. It supports transcript chunking and provides tools for detailed video content analysis and channel metadata extraction.530 npm4MIT
- AlicenseAqualityCmaintenanceAn MCP server for intelligent YouTube video analysis that provides token-optimized summaries, sentiment analysis, and entity extraction from transcripts. It enables AI assistants to perform video reporting, channel monitoring, and comprehensive YouTube searches through structured data tools.1053Apache 2.0
- AlicenseAqualityBmaintenanceA comprehensive MCP server integrating YouTube Data, Analytics, and Reporting APIs, providing 40 tools for channel management, analytics, video publishing, transcripts, SEO, and comments.4031MIT