transcriptor-mcp
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. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_transcriptA | Fetch cleaned subtitles as plain text for a video (YouTube, Twitter/X, Instagram, TikTok, Twitch, Vimeo, Facebook, Bilibili, VK, Dailymotion, Reddit). Uses auto-discovery for type/language when omitted. Optional: type, lang, response_limit (when omitted returns full transcript), next_cursor for pagination. |
| get_raw_subtitlesA | Fetch raw SRT/VTT subtitles for a video (supported platforms). Optional: type, lang, response_limit (when omitted returns full content), next_cursor for pagination. |
| get_available_subtitlesA | List available official and auto-generated subtitle languages. |
| get_video_infoA | Fetch extended metadata for a video (title, channel, duration, tags, thumbnails, etc.). |
| get_video_chaptersA | Fetch chapter markers (start/end time, title) for a video. |
| get_video_frameA | Capture a single frame from a video at the given timestamp. Provide timecode ("01:23", "00:01:23.500") or seconds; defaults to the first frame. Optional: format (png|jpeg), width (max 1920), quality (jpeg, 2-31). Returns the image plus metadata. |
| get_playlist_transcriptsA | 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_videosA | 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 |
|---|---|
| search-videos-ui | Interactive carousel for YouTube search results with video details and subtitle search |
| get-video-info-ui | Video card with metadata and description |
| get-transcript-ui | Video card with searchable timed subtitles |
| get-video-frame-ui | Captured video frame with timestamp controls |
| 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 |
TDQS
Scored across 8 tools
Most tools are clearly distinct: transcript fetching, raw subtitle fetching, subtitle language listing, video metadata, chapters, frames, playlist transcripts, and search. The only potential confusion is between get_transcript and get_raw_subtitles, but their descriptions clearly separate cleaned plain text from raw SRT/VTT.
The naming follows a consistent get_<resource> pattern: get_transcript, get_raw_subtitles, get_available_subtitles, get_video_info, get_video_chapters, get_video_frame, get_playlist_transcripts, search_videos. The only deviation is search_videos, which uses a verb other than 'get', but it is still a clear and predictable pattern.
8 tools is well-scoped for a transcript/video metadata server. Each tool covers a distinct need: transcripts, raw subtitles, subtitle options, metadata, chapters, frames, playlist handling, and search. No tool feels redundant or unnecessary.
The server covers the core transcript retrieval lifecycle well: discover available subtitles, fetch raw or cleaned transcripts, paginate, and handle playlists. Minor gaps include no direct tool for downloading media or listing video comments, but these are outside the apparent transcript-focused purpose.