tubescout
Turn YouTube into a research engine for your AI agent — keyless MCP server + context-aware skill pack for Claude Code, Codex, and OpenCode
Documentation
TubeScout 🔭
Turn YouTube into a research engine for your AI agent. An MCP server (no API key) plus a skill pack that make Claude Code, Codex, and OpenCode search YouTube like a database, read transcripts at scale, and mine videos for evidence — claims, numbers, demand signals — instead of vibes.
Idea-engine tools scan Reddit and forums. YouTube is where founders show *receipts* — revenue dashboards, playbooks, real numbers on camera — and nothing mines it. TubeScout does.
Quickstart (60 seconds)
Claude Code
claude mcp add --scope user tubescout -- npx -y tubescoutCodex
codex mcp add tubescout -- npx -y tubescoutOpenCode — add to `~/.config/opencode/opencode.json` under `"mcp"`:
"tubescout": { "type": "local", "command": ["npx", "-y", "tubescout"], "enabled": true }That's it — no API key, no config. Then ask your agent things like:
> *"Find the 5 most-viewed videos about n8n from the last month and summarize what people are struggling with."*
Easiest all-in-one (Claude Code): install as a plugin — MCP server + all 6 skills in two commands:
/plugin marketplace add not0lucky/tubescout
/plugin install tubescout@tubescoutOr install the skill pack manually (works for Claude Code, Codex, and OpenCode):
git clone https://github.com/not0lucky/tubescout && cd tubescout
./scripts/install-skills.sh # installs into ~/.claude/skills, ~/.codex/skills, ~/.config/opencode/skillsTools
| Tool | What it does |
|---|---|
| `search_videos` | Search with filters (upload window, duration, sort by views/date) |
| `get_video` | Full metadata + engagement (`likesPer1kViews` resonance signal) |
| `get_transcript` | Plain-text transcript via a resilient 3-strategy fallback chain |
| `get_transcripts` | Batch transcripts (up to 10 videos), per-video error tolerant |
| `get_channel_videos` | Channel positioning + recent uploads with view counts |
| `get_search_suggestions` | YouTube autocomplete = real search demand for keyword research |
Skills (the research methods)
| Skill | Use it to |
|---|---|
| `/yt-breakdown ` | Skeptic's analysis of videos: extract every claim and number, stress-test for incentives, survivorship bias, verifiability |
| `/yt-idea-mine ` | Mine a niche for product ideas backed by demand signals + pains real builders describe on camera |
| `/yt-validate ` | Go/no-go verdict: demand, saturation, what competitors' numbers actually show |
| `/yt-channel-intel ` | Read a channel's strategy: cadence, outliers, what performs vs what they publish |
| `/yt-playbook ` | Turn a tutorial into executable steps — exact commands, settings, and the gotchas said in passing — adapted to your stack |
| `/yt-gap ` | Find demand-vs-supply gaps: heavily searched topics served by weak, old, or misfit videos — for content plans or product angles |
All skills are context-aware: they read the conversation for what you're building, your stack, and videos already analyzed, and tailor verdicts to your actual leverage instead of giving generic advice.
See a real `/yt-breakdown` run on three "how I make $X/month" videos — including what survived the skeptic pass and what didn't.
How it works (honestly)
There's no magic here, and that's the point:
- youtubei.js talks to YouTube's internal InnerTube API — the same one the site uses. No key, no quota.
- Transcripts are YouTube's own captions, fetched through a fallback chain: the ANDROID-client timedtext track → the InnerTube transcript endpoint (known to 400 intermittently — retried with backoff) → local `yt-dlp` if you have it. Each response tells you which `source` served it.
- All analysis happens in *your* agent. The server ships data; the skills ship method.
Limitations
- Run it locally. YouTube aggressively rate-limits datacenter IPs — this is a local stdio server by design, not a hosted service.
- YouTube changes internals without notice; when it breaks, update (`npx` always pulls latest) and file an issue with the failing video ID.
- Videos with captions disabled can't be transcribed (rare; the error says so explicitly).
- Caption scraping lives in YouTube ToS gray area — fine for local research tooling, don't build a hosted paid product on it.
Development
npm install && npm run build
npm test # unit tests (offline)
npm run test:live # live smoke tests against real videos — run before publishing
npm run inspect # MCP Inspector against the built serverMIT — see LICENSE.
Built by Anir — I automate things. More at agramprojects.com.
Frequently asked questions
What is tubescout?
tubescout is Turn YouTube into a research engine for your AI agent — keyless MCP server + context-aware skill pack for Claude Code, Codex, and OpenCode
How do I install tubescout?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is tubescout open source?
Yes — it is hosted on GitHub at https://github.com/not0lucky/tubescout.
Related MCP tools
The go-to web for your AI coding agent — local-first search, fetch, crawl & research over MCP. No API keys, no cloud, $0/query. Public beta.
MCP server that enables AI assistants to interact with Google Gemini CLI, leveraging Gemini's massive token window for large file analysis and codebase understanding
Universal AI context generator. Saves thousands of tokens per conversation in Claude Code, Cursor, Copilot, Codex, and more.
A desktop MCP client designed as a tool unitary utility integration, accelerating AI adoption through the Model Context Protocol (MCP) and enabling cross-vendor LLM API orchestration.
Open-source cross-agent memory layer for coding agents via MCP. Compatible with Claude Code, Codex, Cursor, Windsurf, Gemini CLI, Antigravity, OpenClaw, Hermes Agent, Oh-my-Pi, Pi, Copilot, Kiro, OpenCode, and Trae.
Cut AI token costs 95%+ on code exploration. The leading MCP server for precise, symbol-level GitHub code retrieval via tree-sitter AST. Works with Claude Code, Cursor & any MCP client. 313B+ tokens saved.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP