{"server":{"name":"io.transcriptapi/youtube-transcript","title":"TranscriptAPI — YouTube transcripts (transcriptapi.io)","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://api.transcriptapi.io/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {api_key}","isSecret":true,"variables":{"api_key":{"isSecret":true,"isRequired":true,"description":"Your ta_... key"}},"isRequired":true,"description":"Bearer token with your TranscriptAPI key. Free at https://transcriptapi.io/login"}]}],"version":"0.1.1","packages":[{"version":"0.1.1","transport":{"type":"stdio"},"identifier":"transcriptapi-mcp","registryType":"npm","environmentVariables":[{"name":"TRANSCRIPTAPI_KEY","format":"string","isSecret":true,"isRequired":true,"description":"TranscriptAPI key (ta_...). Free at https://transcriptapi.io/login"}]}],"websiteUrl":"https://transcriptapi.io/mcp","description":"YouTube transcripts, search, channels and playlists for AI agents, by transcriptapi.io."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-17T12:49:24.553413Z","publishedAt":"2026-10-17T12:49:24.553413Z","statusChangedAt":"2026-10-17T12:49:24.553413Z"},"dev.protogrid/connectability":{"class":"R1","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://api.transcriptapi.io/mcp","transport":"streamable-http","templated":false,"headers":[{"name":"Authorization","required":true,"secret":true,"value":"Bearer {api_key}","secret_names":["api_key"]}],"auth":{"type":"api_key","location":null,"secret_name":"api_key","oauth":null},"protocol":{"supported_versions":["2026-07-28"],"stateless":true},"health":{"reachable":true,"uptime_30d":1,"latency_ms_p50":594,"consecutive_failures":0,"last_probe_at":"2026-10-19T14:44:40.732Z","last_ok_at":"2026-10-19T14:44:40.732Z"}}],"packages":[{"idx":0,"registry_type":"npm","identifier":"transcriptapi-mcp","version":"0.1.1","runtime_hint":null,"transport":"stdio","secrets":["TRANSCRIPTAPI_KEY"],"requires_execution":true}]},"dev.protogrid/tools":[{"name":"get_channel_videos","title":"List a channel's videos","description":"List the most recent uploads of a YouTube channel, newest first. Accepts a channel id (UC…), a handle (@name) or a channel URL. Returns ids, titles, durations, view counts and publish dates.","annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:44:40.732Z"},{"name":"get_playlist_videos","title":"List a playlist's videos","description":"List the videos in a YouTube playlist, in playlist order. Accepts a playlist URL (anything with list=…) or the playlist id. Returns ids and titles for get_youtube_transcript.","annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:44:40.732Z"},{"name":"get_youtube_transcript","title":"Get YouTube transcript","description":"Fetch the transcript (captions/subtitles) of a YouTube video as text. Accepts a watch URL, youtu.be link, Shorts link or bare 11-character video id. Returns the spoken text with timestamps grouped in ~30 s blocks by default; format 'text' is prose without timestamps, 'srt'/'vtt' are subtitle files, 'json' is raw segments with start/duration. Works with creator-uploaded and auto-generated captions. translate_to translates the transcript with AI (extra credits, scales with length) — omit unless asked.","annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:44:40.732Z"},{"name":"search_channel_videos","title":"Search within a channel","description":"Search for videos inside one YouTube channel by keyword — 'find the video where <channel> talks about <topic>'. Accepts a channel id, @handle or channel URL.","annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:44:40.732Z"},{"name":"search_youtube","title":"Search YouTube","description":"Search YouTube for videos by keyword. Returns video ids, titles, channel names, durations and view counts. Use a returned id with get_youtube_transcript to read it.","annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T14:44:40.732Z"}],"dev.protogrid/trust":{"score":83,"components":{"hygiene":80,"liveness":100,"freshness":100,"provenance":55},"drivers":["+dns-namespace","+website","+reachable","+uptime-100%","+updated-2d-ago","-no-repository"],"flags":["no-repository"],"blocked":false,"computed_at":"2026-10-19T20:34:48.945Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":94,"label":"new","components":{"auth":null,"hygiene":100,"protocol":88,"stability":null,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"supports 2026-07-28 (server/discover)","status":"pass","category":"protocol"},{"id":"protocol.stateless","detail":"answers without a session","status":"pass","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"tools/list declares ttlMs 0, so clients re-fetch it on every use","status":"warn","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"5 of 5 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint","status":"pass","category":"hygiene"},{"id":"tools.token_cost","detail":"about 730 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"tool history recorded for 2 of the 7 days needed","status":"na","category":"stability"},{"id":"stability.rug_pull","detail":"tool history recorded for 2 of the 7 days needed","status":"na","category":"stability"},{"id":"deps.known_vulns","detail":"deps.dev does not know transcriptapi-mcp@0.1.1","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"deps.dev does not know transcriptapi-mcp@0.1.1","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"deps.dev does not know transcriptapi-mcp@0.1.1","status":"na","category":"dependencies"}],"drivers":["~protocol.list_ttl"],"flags":[],"tool_count":5,"token_estimate":730,"tools_hash":"cb8673b91ac6dbf95bb97c525f76f2d0","tools_changed_at":null,"computed_at":"2026-10-19T20:38:04.291Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"io.transcriptapi/youtube-transcript","aliases":[],"alias_count":0,"repository_key":null,"owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/io.transcriptapi%2Fyoutube-transcript/tools","arguments":{"name":"io.transcriptapi/youtube-transcript"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/io.transcriptapi%2Fyoutube-transcript/connection?target=mcpServers","arguments":{"name":"io.transcriptapi/youtube-transcript","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}