yt-outlier-mcp
This server helps you identify viral YouTube videos on small channels where the format (not the audience) drove the views, enabling you to replicate those formats.
find_outliers: Search YouTube by topic phrase to surface videos on small channels (≤100K subs) that massively outperform both their subscriber base (≥5:1 views:subs ratio) and the channel's own typical upload performance — proving the format is algorithmically replicable.get_video_structure: Given a video ID or URL, extract its replicable format elements: duration, tags, chapters (parsed from description timestamps), full description, and transcript — so you can copy the structure, not just the topic.get_comment_signal: Fetch top comments from a video and get demand metrics (question-asking comments, "please make more"/"part 2" phrasing) to verify the topic has genuine unmet audience demand.search_niche_sweep: Run the outlier search across up to 8 niches simultaneously using a phrase template (e.g. "beginner mistakes {niche}") and rank all hits by views:subs ratio — identifying which niche currently has the most replicable breakout format.get_channel_baseline: Starting from a channel (by ID, @handle, or URL), compute its median recent-upload view baseline and flag which of its recent uploads are outliers — useful when you already have a specific channel to investigate.
Provides tools to find outlier YouTube videos on small channels, extract video structure and transcripts, and analyze comments for demand signals.
Click on "Install 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-outlier-mcpfind outliers for 'beginner mistakes sourdough'"
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-outlier-mcp
MCP server that finds YouTube outlier videos: videos on small channels (≤100K subs) with one video massively outperforming both the channel's subscriber base (≥5:1 views:subs) and the channel's own recent uploads. That signature means the recommendation algorithm rewarded the format, not an existing audience — so the format is replicable by a new channel.
The method is the "Icon Method" qualifying criteria proven manually on
@Before-You-Start (see hobby-channel/IDEAS.md); this server automates it as
one MCP tool. Origin: idea #2 in _ideas/next-batch.html (paid MCP servers).
Tool: find_outliers
Input | Default | Meaning |
| (required) | Topic phrase, e.g. |
| 100,000 | Max channel subscribers |
| 100,000 | Min video views |
| 5 | Min views:subs ratio |
| 365 | Freshness window (older outliers are stale evidence) |
| 3 | Video views vs. median of channel's other recent uploads |
| 0 (off) | Min fraction of query terms found in title/description/tags; |
| 10 | Cap on returned outliers |
Pipeline per call: search.list (order=viewCount, the expensive call) →
batch videos.list + channels.list → cheap-filter by views/subs/ratio →
for survivors, pull the uploads playlist and compare against the channel's
median recent-upload views (the outlier-vs-baseline check that separates a
breakout format from a big channel's normal video).
Output per outlier: URL, views, subs, ratio, channel median views,
outlier factor, queryRelevance (fraction of query terms found in
title/description/tags — always reported, filtered only if
minQueryRelevance > 0; costs zero extra quota since the snippet is already
fetched), comments-enabled flag (comments are the manual demand-signal
step), channel video count, plus total quota units consumed.
Related MCP server: YouTube MCP
Tool: get_video_structure
Icon Method verification step 2 — extract the replicable format instead of
guessing it. Takes a video ID or URL; returns duration, tags, chapters
(parsed from 0:00 Intro-style description lines), the description, and the
transcript. Costs 1 quota unit; the transcript itself is fetched outside
the Data API at zero quota (captions.download needs owner OAuth, so the
server asks the InnerTube player endpoint as the ANDROID client — unofficial,
returns transcript: null gracefully if YouTube ever gates it).
Input | Default | Meaning |
| (required) | Video ID or URL (watch/shorts/youtu.be forms) |
| true | Fetch the transcript |
| 15,000 | Truncation cap |
Tool: get_comment_signal
Icon Method verification step 3 — comments prove unmet demand, not just views. Returns the top relevance-ordered comments (author, text, likes, replies) plus quick counts: comments asking questions and comments using demand phrasing ("please make…", "part 2", "how do you…"). Handles comments-disabled videos gracefully. Costs 1 quota unit.
Input | Default | Meaning |
| (required) | Video ID or URL |
| 30 | Top comments to fetch (max 100) |
Tool: search_niche_sweep
Runs find_outliers once per niche by substituting each niche into a phrase
template, then ranks every hit across all niches by views:subs ratio — the
niche that keeps appearing up top is where the replicable format lives.
Expensive: each niche is a full search (~110–130 units), max 8 niches per
sweep. Per-niche API errors are recorded without killing the sweep; a
quota-exhausted error aborts the remaining niches with a note.
Input | Default | Meaning |
| (required) | Phrase containing |
| (required) | 1–8 niches to substitute |
| 5 | Cap per niche |
filters | same as |
|
Tool: get_channel_baseline
The inverse entry point: you already have a suspect channel (from a
competitor, a comment, another tool) instead of a topic query. Computes the
channel's baseline — median views of its recent uploads — and scores every
recent upload against it, flagging outliers. Cheap: ~3 quota units (no
search.list call). Accepts channel ID, @handle, or channel URL.
Input | Default | Meaning |
| (required) | Channel ID ( |
| 15 | Recent uploads to fetch for the baseline (3–50) |
| 3 | Flag uploads at ≥ this multiple of the channel median |
Setup
npm install
npm run buildConfigure in a client (Claude Code example):
claude mcp add yt-outliers -e YOUTUBE_API_KEY=<key> -- node <abs-path>/dist/index.jsBYO key: needs a YouTube Data API v3 key (.env.example). Free quota is
10,000 units/day; one find_outliers call costs ~110–130 units (search=100,
everything else 1/call), so ~75–90 searches/day. The BYO-key model is what
makes this sellable without a Google quota-extension audit.
Roadmap
Live-test tool against real niches (2026-07-10: 4 real outliers on "beginner mistakes sourdough", 110 units/call as predicted)
Phase 2 tools:
get_video_structure(chapters/transcript) andget_comment_signal(top comments → demand resonance) to automate Icon Method verification steps 2–3 (2026-07-10, live-tested)search_niche_sweep: rotate one phrase template across hobby clusters (2026-07-10, live-tested: 2-niche sweep = 210 units, cross-niche ranking works)List on Smithery (2026-07-10): live at smithery.ai/servers/phillipmex3/yt-outlier-mcp. MCPize deferred (their SDK/hosting required; actual rev share 80%, not the 85% marketed) — revisit if Smithery shows install signal.
Publishing note
Smithery's registry requires each tools[] entry in manifest.json to carry an
inputSchema, but npx @anthropic-ai/mcpb pack rejects that key as invalid.
Workaround used here: pack the bundle from a manifest without the schemas,
then replace manifest.json inside the .mcpb (it's a plain zip) with the
schema-bearing version in this repo before smithery mcp publish.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/phillipmex/yt-outlier-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server