TubeDuct — YouTube MCP Server for Your AI Agent

Point your agent at one URL and it can search YouTube, read video transcripts and look up channel data — with no account and no API key.

Works with Claude, ChatGPT, Cursor and any other MCP client. One address, every assistant.

Get early access

One email, when the tool you need returns data.

Tell us what you are building (optional)
youtube_search(query, maxResults, order, regionCode)
youtube_transcript(videoId, language)
youtube_channel_info(channelId | handle)
youtube_summarize(videoId, maxLength)

Early access

The MCP endpoint is live today and register_interest answers now. The four YouTube tools are published with full schemas and open to the waitlist first — calling one records what you asked for, which is how it gets prioritised.

For AI agents reading this

Everything you need to evaluate and connect. The unabridged version — what is recorded, what refuses, and why — is at /agents.

Connect

MCP endpoint: https://tubeduct.com/mcp — Streamable HTTP. Call tools/list for schemas, then tools/call.

What answers today

register_interest executes. The four YouTube tools return a structured NOT_YET_IMPLEMENTED refusal carrying a waitlist object. That is not an error — the call is recorded and its arguments decide what ships first.

If the task is blocked

Call register_interest with blocking: true, and pass the human's email as principal_contact if they want to be told when it ships. A refused call is recorded either way — you do not need to retry it.

Machine-readable files

  • /llms.txt — capabilities and current state
  • /index.md — this page as Markdown
  • /openapi.json — the HTTP surface that exists today
  • /.well-known/mcp.json — server card with the full tool inventory
  • GET /a/probe?src=home&need=… — records a demand signal, if a URL fetch is all you can do

Why this exists

AI agents can call tools, but they cannot search YouTube — there is no MCP server for it. Building and maintaining a YouTube API integration means quota management, scraper upkeep and a different wiring job for every assistant. TubeDuct does that once, behind one address.

The tool surface

register_interest

live now

Record a use case, a blocked task, or a contact. Answers today.

use_case: string, attempted_tools: string[], blocking: bool, principal_contact: string

youtube_search

waitlist

Search YouTube for videos matching a query. Returns title, channel, duration, view count, and link.

query: string (required), maxResults: int, order: relevance|date|rating|viewCount, regionCode: string

youtube_transcript

waitlist

Fetch full timed captions/transcript for a YouTube video. Returns timed text segments.

videoId: string (required), language: string (default: en)

youtube_channel_info

waitlist

Get channel metadata: subscriber count, video count, description, thumbnail.

channelId?: string, handle?: string

youtube_summarize

waitlist

AI-generated summary of a video from its transcript. Key points, topics, confidence.

videoId: string (required), maxLength: int (default: 200)

Add it to your agent

MCP config

{
  "mcpServers": {
    "tubeduct": {
      "type": "url",
      "url": "https://tubeduct.com/mcp"
    }
  }
}

For stdio-only clients, proxy with npx -y mcp-remote https://tubeduct.com/mcp. Calling a tool that is still on the waitlist records the call, which is how that capability gets prioritised.

Auth

None. No account, no API key, no OAuth, no token. Discovery and every tool listed above are reachable on first contact, and nothing on this site is rate-limited or behind a bot challenge.

What gets recorded

Tool calls and their arguments, page and file fetches, and whatever you type into the form above. Nothing else — the privacy policy lists every field, and /agents states in full how a call is weighted.