Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | The host on which to run the MCP HTTP/SSE server. Defaults to 0.0.0.0. | 0.0.0.0 |
| MCP_PORT | No | The port on which to run the MCP HTTP/SSE server. Defaults to 4200. | 4200 |
| CACHE_MODE | No | Set to 'redis' to enable Redis caching for subtitles and metadata to reduce yt-dlp calls. | |
| MCP_AUTH_TOKEN | No | Bearer token for MCP HTTP authentication; used to secure the SSE/HTTP endpoints. | |
| N8N_PROXY_HOPS | No | Number of proxy hops to trust if running behind a reverse proxy (e.g., set to '1' for common setups). | |
| CACHE_REDIS_URL | No | Redis connection string used when CACHE_MODE is set to 'redis'. | |
| WHISPER_API_KEY | No | API key required when using the Whisper API for transcribing audio when subtitles are unavailable. | |
| COOKIES_FILE_PATH | No | Path to a cookies.txt file in Netscape format to handle restricted, age-gated, or sign-in required videos. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_transcript | Fetch cleaned subtitles as plain text for a video (YouTube, Twitter/X, Instagram, TikTok, Twitch, Vimeo, Facebook, Bilibili, VK, Dailymotion). Input: URL only. Uses auto-discovery for type/language and returns the first chunk with default size. |
| get_raw_subtitles | Fetch raw SRT/VTT subtitles for a video (supported platforms). Optional lang: when omitted and Whisper fallback is used, language is auto-detected. |
| get_available_subtitles | List available official and auto-generated subtitle languages. |
| get_video_info | Fetch extended metadata for a video (title, channel, duration, tags, thumbnails, etc.). |
| get_video_chapters | Fetch chapter markers (start/end time, title) for a video. |
| get_playlist_transcripts | Fetch cleaned subtitles (plain text) for multiple videos from a playlist. Use playlistItems (e.g. "1:5") to select specific items, maxItems to limit count. |
| search_videos | Search videos on YouTube via yt-dlp (ytsearch). Returns list of matching videos with metadata. Optional: limit, offset (pagination), uploadDateFilter (hour|today|week|month|year), dateBefore, date, matchFilter (e.g. "!is_live"), response_format (json|markdown). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| get_transcript_for_video | Build a user message that asks the model to fetch the video transcript using the get_transcript tool. |
| summarize_video | Build a user message that asks the model to fetch the transcript and summarize the video content. |
| search_and_summarize | Build a user message that asks the model to search YouTube for videos matching the query, then fetch the transcript for the first result and summarize it. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| info | Information about available Transcriptor MCP resources and how to use them |
| supported-platforms | List of supported video platforms for subtitles and transcripts |
| usage | Brief usage guide for transcriptor-mcp tools |