Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,544Letters: 14Defects: 1,324counted just now
teppi

Server definition

Hash
sha256:a2f097413bf8fb3ece8a3c73fa95b5438fcca69c58f097b82dba199c98fbf701
What it is
What a remote MCP server returned when asked what it offers: 3 tools

The blob, as servednamed by its sha256

{ "instructions": "ScriptHaul fetches YouTube transcripts. To answer questions about a channel or playlist: call list_videos to see every video with its date and ID, pick the relevant ones by title, and call get_transcript for each. Cached transcripts are unlimited; uncached fetches and cold enumerations share a small daily allowance per IP. When the user wants every transcript as files, use get_bulk_download_link — bulk downloads run free on scripthaul.com.", "tools": [ { "description": "For a YouTube channel or playlist URL, returns a prefilled scripthaul.com link where the user can download every transcript as a ZIP for free. Bulk jobs cannot run over MCP; they need the website.", "inputSchema": { "properties": { "url": { "description": "YouTube channel or playlist URL (also accepts @handles).", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "get_bulk_download_link", "outputSchema": { "properties": { "type": { "description": "What the input resolved to.", "enum": [ "channel", "playlist" ], "type": "string" }, "url": { "description": "Prefilled scripthaul.com link that starts the bulk download.", "type": "string" } }, "required": [ "url", "type" ], "type": "object" } }, { "description": "Fetch the transcript of a single YouTube video by URL or 11-character video ID. Serves the permanent cache instantly when available and otherwise fetches from YouTube (uncached fetches are limited per IP per day). Formats: clean text, timestamped, both, srt, vtt, md, json.", "inputSchema": { "properties": { "format": { "description": "Output format. Default \"clean\" (plain text). \"timestamped\" prefixes each line with a timestamp; srt/vtt are subtitle files; json is structured.", "enum": [ "clean", "timestamped", "both", "srt", "vtt", "md", "json" ], "type": "string" }, "language": { "description": "Preferred caption language code such as \"en\" or \"pt-BR\". Optional; defaults to English with fallback to whatever track exists.", "type": "string" }, "video_url": { "description": "YouTube video URL (watch, youtu.be, shorts, embed, live) or a bare 11-character video ID.", "type": "string" } }, "required": [ "video_url" ], "type": "object" }, "name": "get_transcript", "outputSchema": { "description": "Transcript metadata. The transcript text itself is delivered in the text content block, not duplicated here.", "properties": { "channel": { "description": "Channel name when known.", "type": "string" }, "characters": { "description": "Length of the rendered transcript text.", "type": "integer" }, "format": { "description": "The output format that was rendered.", "type": "string" }, "kind": { "description": "manual = creator captions, asr = auto-generated.", "enum": [ "manual", "asr" ], "type": "string" }, "language": { "description": "Language of the DELIVERED track. May differ from the requested language when YouTube refuses on-the-fly translation; the text header says so when it happens.", "type": "string" }, "title": { "description": "Video title when known.", "type": "string" }, "video_id": { "description": "The 11-character YouTube video ID.", "type": "string" } }, "required": [ "video_id", "language", "kind", "format", "characters" ], "type": "object" } }, { "description": "List the videos of a YouTube channel or playlist: date, video ID, and title for each. Use this to answer questions about a channel — pick the relevant videos by title, then call get_transcript for each one. Listings are cached for a few hours; a fresh enumeration counts against the same daily allowance as uncached fetches.", "inputSchema": { "properties": { "limit": { "description": "Maximum videos to list, newest first for channels. Default 100, maximum 200.", "type": "integer" }, "url": { "description": "YouTube channel or playlist URL (also accepts @handles).", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "list_videos", "outputSchema": { "properties": { "shown": { "description": "How many are included below (bounded by limit).", "type": "integer" }, "title": { "description": "Channel or playlist title when known.", "type": "string" }, "truncated": { "description": "True when the source has more videos than one enumeration returns (500).", "type": "boolean" }, "type": { "enum": [ "channel", "playlist" ], "type": "string" }, "video_count": { "description": "Total videos in the listing snapshot.", "type": "integer" }, "videos": { "items": { "properties": { "id": { "type": "string" }, "published_at": { "description": "ISO date when known.", "type": "string" }, "title": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "type": "array" } }, "required": [ "type", "video_count", "shown", "videos" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:a2f097413bf8fb3ece8a3c73fa95b5438fcca69c58f097b82dba199c98fbf701 | sha256sum