{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_ywmpdbarg5my","handle":"ytfetch-mcp","url":"https://wellknown.network/agents/ytfetch-mcp","links":{"self":"https://wellknown.network/agents/ytfetch-mcp/record.json","html":"https://wellknown.network/agents/ytfetch-mcp","markdown":"https://wellknown.network/agents/ytfetch-mcp/record.md","api":"https://wellknown.network/api/v1/agents/ytfetch-mcp","status":"https://wellknown.network/api/v1/agents/ytfetch-mcp/status","claim":"https://wellknown.network/agents/ytfetch-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/ytfetch-mcp/claim.json","badge":"https://wellknown.network/agents/ytfetch-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:ytfetch-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"ytfetch-mcp","summary":"YouTube transcript MCP server for Claude & ChatGPT. Token-efficient, cached, reliable.","description":"# yt-transcript-mcp\n\n[![MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](LICENSE)\n[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://python.org)\n[![MCP](https://img.shields.io/badge/MCP-compatible-green.svg)](https://modelcontextprotocol.io)\n[![PyPI](https://img.shields.io/pypi/v/ytfetch-mcp.svg)](https://pypi.org/project/ytfetch-mcp/)\n[![yt-transcript MCP server](https://glama.ai/mcp/servers/bjornwalther/yt-transcript/badges/score.svg)](https://glama.ai/mcp/servers/bjornwalther/yt-transcript)\n\nYouTube transcripts as token-efficient AI context. One fetch, cached forever.\n\nAgent-first: returns structured JSON by default. Zero dependencies on yt-dlp, ffmpeg, or API keys.\n\nWorks with Claude Desktop, ChatGPT Desktop, Cursor, Windsurf, and any MCP client.\n\n---\n\n## Why?\n\nWhen AI browses YouTube for a transcript, it processes the entire page: navigation, ads, recommendations, scripts. That's 75,000-150,000 tokens of noise to extract maybe 6,000 tokens of actual content.\n\nThis tool fetches only the transcript.\n\n| | Tokens | Speed | Repeat queries |\n|-|--------|-------|----------------|\n| AI browses YouTube | 75-150k | 20-90s | Same cost every time |\n| **ytfetch-mcp** | 6-12k | 1-3s | Instant (cached) |\n\n~50 KB per video in cache. A year of daily use stays under 120 MB.\n\n---\n\n## Demo\n\nYou say:\n\n> Fetch the transcript from https://www.youtube.com/watch?v=dQw4w9WgXcQ\n\nDefault response (compact JSON, segments only):\n\n```json\n{\n  \"is_error\": false,\n  \"video_id\": \"dQw4w9WgXcQ\",\n  \"title\": \"Never Gonna Give You Up\",\n  \"channel\": \"Rick Astley\",\n  \"published\": \"2009-10-25\",\n  \"language\": \"en\",\n  \"caption_type\": \"manual\",\n  \"segment_count\": 56,\n  \"transcript_duration_seconds\": 213.5,\n  \"content_hash\": \"a1b2c3...\",\n  \"cache_hit\": false,\n  \"warnings\": [],\n  \"segments\": [\n    {\"text\": \"We're no strangers to love\", \"start\": 18.0, \"end\": 21.4},\n    {\"text\": \"You know the rules and so do I\", \"start\": 21.4, \"end\": 24.8}\n  ]\n}\n```\n\nStructured, machine-re…","publisher":{"name":"Björn Walther","url":null},"homepage":null,"repository":"https://github.com/bjornwalther/yt-transcript","version":"1.2.0","license":null,"protocols":["mcp"],"tags":["ai","chatgpt","claude","mcp","transcript","youtube"],"pricing":null,"endpoints":[{"url":"pypi:ytfetch-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.825,"provenance":"derived"}],"categories":["dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"ytfetch-mcp","registry":"pypi","observedAt":"2026-09-10T16:24:30.080Z","publishedAt":"2026-09-05T15:39:09.213865Z","latestVersion":"1.2.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"ytfetch-mcp","url":"https://pypi.org/project/ytfetch-mcp/","firstSeenAt":"2026-09-10T16:23:34.142Z","fetchedAt":"2026-09-10T16:23:34.142Z","normalizedAt":"2026-09-10T16:23:34.142Z"}]},"firstSeenAt":"2026-09-10T16:23:34.142Z","updatedAt":"2026-09-10T16:24:30.080Z"}