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.
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 inventoryGET /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 nowRecord a use case, a blocked task, or a contact. Answers today.
use_case: string, attempted_tools: string[], blocking: bool, principal_contact: stringyoutube_search
waitlistSearch 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: stringyoutube_transcript
waitlistFetch full timed captions/transcript for a YouTube video. Returns timed text segments.
videoId: string (required), language: string (default: en)youtube_channel_info
waitlistGet channel metadata: subscriber count, video count, description, thumbnail.
channelId?: string, handle?: stringyoutube_summarize
waitlistAI-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.