youtube-mcp is a YouTube transcription and search MCP server for Claude, Cursor, and any MCP-compatible client. It lets AI agents read YouTube video captions directly and perform searches and batch processing across videos, channels, and playlists. The server is hosted by TranscriptOut, and all tools are invoked through a single remote endpoint and do not run on the user's machine.
Purpose When a user pastes a YouTube link to an agent, the agent usually cannot retrieve the captions on its own. After connecting to this server, the agent can automatically call get_transcript to read the text with timestamps and answer based on it. In addition to single videos, it also supports channels, playlists, and batch jobs, making it suitable for scenarios that need to import large amounts of YouTube content into an agent workflow.
Main capabilities The server provides a total of 14 tools, automatically exposed after connection:
- get_transcript: Retrieves captions for any YouTube video. format=text returns plain text, format=json returns segments with timestamps; srt and vtt return the full caption file contents, and srv3 returns the raw XML.
- get_video_info: Retrieves metadata for a single video (title, channel, duration, view count, thumbnail) and the list of available caption languages, without downloading captions.
- search_youtube: Searches videos or channels, with pagination support.
- list_channel_videos: Lists channel videos newest first, accepting @handle, channel name, UC channel ID, or channel URL.
- search_channel_videos: Uses YouTube's native relevance search within a single channel.
- latest_channel_videos: Retrieves the channel's most recent approximately 15 videos via RSS.
- list_playlist_videos: Lists all videos in playlist order.
- search_playlist_videos: Finds videos within a playlist by title substring, scanning up to 500 items.
- submit_transcripts_job: Queues a transcription job for up to 4,000 videos at once, immediately returning a job_id, executed in the background subject to rate limits.
- get_transcripts_job: Checks batch job progress(queued/running/done/cancelled).
- get_transcripts_results: Reads completed results of a batch job with pagination, 1-500 per page, default 100.
- get_transcripts_result: Reads the result for a single video in a batch job by video ID.
- cancel_transcripts_job: Cancels a batch job; only credits for videos that have not started are refunded.
- get_credits: Checks the remaining credits for the key.
How to use
- Register at transcriptout.com and create an API key. The key starts with sk_ and is shown only once. New accounts receive 100 free credits, no credit card required.
- Point the client to the server endpoint, using streamable HTTP and Bearer header authentication. The repository provides configuration examples for clients such as Cursor, VS Code, Claude Code, Windsurf, Zed, Kilo Code, Gemini, and Qwen.
- Paste a YouTube link, and the agent automatically selects get_transcript and answers based on the captions. Each response carries an X-Credits-Remaining header to show the balance. In addition, the repository root is a package compliant with Agent Plugins 1.0.0 and can be installed as an agent plugin, bundled with a youtube skill that guides the agent on when to use each tool. The repository also includes server.js, which can run as a local stdio MCP server, with its 14 tools each calling the TranscriptOut REST API.
Use cases
- Let an agent read and summarize a single YouTube video.
- Search YouTube videos and channels, or browse channel and playlist content.
- Batch-archive captions for an entire channel or playlist, for example in four steps: list_channel_videos to get IDs, submit_transcripts_job to submit, get_transcripts_job to poll, and get_transcripts_results to read with pagination.
- Use the same backend's JSON REST API when building an application, with the base URL being https://api.transcriptout.com/v1,并提供 Python and Node.js client libraries.
Limitations
- An API key is required, and only API key authentication is currently supported; there is no OAuth flow yet. Connectors such as Claude Desktop and Claude Web that cannot send custom headers must switch to Claude Code.
- Most calls consume 1 credit; calls that fail before reaching YouTube (validation errors, rate limits, service capacity) automatically refund the credit; results that explicitly indicate "no captions" are still billed.
- Batch job submissions are billed per video, and on cancellation only videos that have not started are refunded.
- Some errors are deterministic results: 404 means no captions or an incorrect ID, 410 means the video has been deleted, and 451 means age-restricted or members-only content.
- This service is an independent third party and is not affiliated with, endorsed by, or sponsored by YouTube or Google LLC.
- Pricing is subscription-based, from 1,000 to 100,000 credits/month, with tiered volume discounts and a discount for annual payment; additional non-expiring one-time credit packs can be purchased. For specific prices, refer to the official page.