Skip to content

Best Results

What a /yt briefing actually looks like

Here's a real screenshot from Telegram — searching for "Logitech mx3". You can see the full delegation chain: ZeroClaw delegates to Nova, Nova calls youtube__search_videos, then ZeroClaw calls youtube__get_video_details for each video to render the thumbnails.

Telegram briefing output

The whole flow runs in a single message exchange — delegate, search, fetch details, summarise, deliver with thumbnails.

What we built and why

The workshop's default YouTube tool (@anaisbetts/mcp-youtube + yt-dlp) downloads full transcripts from a video URL you give it. Nova then analyses the transcript and writes a summary. That works well when you already know what to watch.

But I wanted Nova to find videos on its own — search by topic, pick the best 3, and bring them to me. The default tool can't search — it only processes URLs you already have.

So I built two custom scripts alongside the workshop tools (both yt-dlp and @anaisbetts/mcp-youtube are still installed on the server — I just don't use them for the daily workflow):

  • youtube_fetch.py — talks directly to the YouTube Data API v3. Can search by topic and fetch video metadata (title, channel, views, duration). Results scoped to GB/English.

  • youtube-mcp-server.js — a Node.js wrapper that turns the Python script into an MCP tool server. Gives Nova two tools: search_videos and get_video_details.

The trade-off: the default setup gives deeper analysis (full transcripts). My setup gives broader discovery (finds videos I didn't know about). I chose discovery — I'd rather Nova brings me 3 relevant videos every morning than wait for me to paste URLs manually.

Pipeline

User sends /yt [topic]
    → ZeroClaw delegates to Nova
        → Nova calls youtube__search_videos (MCP tool)
            → youtube-mcp-server.js receives JSON-RPC call
                → youtube_fetch.py --search "[topic]"
                    → YouTube Data API v3 search endpoint
                        → Returns top 3 videos
        → Nova writes 3-bullet summaries per video
    → ZeroClaw calls youtube__get_video_details × 3 (renders thumbnails)
    → Final output sent to Telegram with thumbnails + summaries

Config highlights

Setting Value Why
Default model Claude Haiku 4.5 Main agent and Nova delegation
YouTube routing Gemini 2.0 Flash YouTube queries routed to cheaper/faster model
Cost limits $5/day, $20/month Hard cap prevents runaway costs
Autonomy supervised, workspace_only Agent can't access anything outside its workspace
Security audit enabled All actions logged
Telegram allowlist Single user ID Deny-by-default — only authorised users can command
MCP server Custom YouTube server Direct YouTube Data API access with regional filtering

Topics I'm tracking

  • AI agents
  • Super Individual business
  • Claude AI