{"_id":"transcriptapi-mcp","_rev":"2-eacb50ccab158b6ae67058daa0f05102","name":"transcriptapi-mcp","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"transcriptapi-mcp","version":"0.1.0","keywords":["mcp","mcp-server","model-context-protocol","youtube","youtube-transcript","youtube transcript mcp","transcript","captions","subtitles","claude","cursor","ai-agent","llm"],"license":"MIT","_id":"transcriptapi-mcp@0.1.0","maintainers":[{"name":"transcript-api","email":"gerardpatrick912@gmail.com"}],"homepage":"https://transcriptapi.io/mcp","bugs":{"url":"https://discord.gg/gvAwUZQCfX"},"bin":{"transcriptapi-mcp":"dist/index.js"},"dist":{"shasum":"a72cb4ee90b36d2b5af5259186d6caeb6db9fab7","tarball":"https://registry.npmjs.org/transcriptapi-mcp/-/transcriptapi-mcp-0.1.0.tgz","fileCount":7,"integrity":"sha512-X1a45OpBa3GKhTxGs0gySk8LHETwP+u/XpG9IDsCEKlxSaSDu/oLROM3w812q7Bval5FP4Dxj2neOcn/OralGw==","signatures":[{"sig":"MEUCIA6vXRVvp/jXIL4ieZCa/alFbCoZN2xRd0cTpgayYEFlAiEAhZPhrP3FJUy32P+C92ENA2V+QY4yCtCszHYDMEDG3UI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25815},"type":"module","engines":{"node":">=18"},"gitHead":"0281f064e74d6b60bfd3c5abcb60161351f796ac","scripts":{"build":"tsc","start":"node dist/index.js","inspect":"npx @modelcontextprotocol/inspector node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"transcript-api","email":"gerardpatrick912@gmail.com"},"_npmVersion":"10.1.0","description":"YouTube transcript MCP server — give Claude, Cursor, ChatGPT or any MCP client the transcript of any YouTube video, plus search, channel and playlist listings. Powered by TranscriptAPI.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"zod":"^4.5.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5","@types/node":"^20"},"_npmOperationalInternal":{"tmp":"tmp/transcriptapi-mcp_0.1.0_1788053528211_0.7196190636986137","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"_id":"transcriptapi-mcp@0.1.1","bin":{"transcriptapi-mcp":"dist/index.js"},"bugs":{"url":"https://discord.gg/gvAwUZQCfX"},"dist":{"shasum":"ae159cf10686e58345f1f81a824b07c0643b13f1","tarball":"https://registry.npmjs.org/transcriptapi-mcp/-/transcriptapi-mcp-0.1.1.tgz","fileCount":7,"integrity":"sha512-C5J6wCbCW0thLTJAGC2bxMrdyw/nAoZxA7F54bocEXLF4XtmNsQgrE4ddgecrM/ftX13Q7JRRyj0N4CKq6JeQQ==","signatures":[{"sig":"MEUCIHU0a+B4Kp9m6GvukKkOI4/V+97oEVNj5PJRJcRpiKDMAiEAtVw2IensTro4pCAo88Qd0V/jjn1H3OmUUn3F8xsp1wo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCd7QTpm4K+RGjDFrbWqT2CKmyucH7dJXSPdCd1j5AZfwIhAKhDSwXMZmdAnW7APEgaU43v70ndZ2GaP92CSXOeZaeH"}],"unpackedSize":26375},"name":"transcriptapi-mcp","type":"module","engines":{"node":">=18"},"gitHead":"d237439399d252904f32ca60b34489042adc7ea6","license":"MIT","mcpName":"io.transcriptapi/youtube-transcript","scripts":{"build":"tsc","start":"node dist/index.js","inspect":"npx @modelcontextprotocol/inspector node dist/index.js","prepublishOnly":"npm run build"},"version":"0.1.1","_npmUser":{"name":"transcript-api","email":"gerardpatrick912@gmail.com"},"homepage":"https://transcriptapi.io/mcp","keywords":["mcp","mcp-server","model-context-protocol","youtube","youtube-transcript","youtube transcript mcp","transcript","captions","subtitles","claude","cursor","ai-agent","llm"],"_npmVersion":"10.1.0","description":"YouTube transcript MCP server — give Claude, Cursor, ChatGPT or any MCP client the transcript of any YouTube video, plus search, channel and playlist listings. Powered by TranscriptAPI.","directories":{},"maintainers":[{"name":"transcript-api","email":"gerardpatrick912@gmail.com"}],"_nodeVersion":"20.9.0","dependencies":{"zod":"^4.5.4","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5","@types/node":"^20"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/transcriptapi-mcp_0.1.1_1792241345609_0.42843029815796574"}}},"time":{"created":"2026-08-30T01:32:07.993Z","modified":"2026-10-17T12:49:05.847Z","0.1.0":"2026-08-30T01:32:08.340Z","0.1.1":"2026-10-17T12:49:05.692Z"},"bugs":{"url":"https://discord.gg/gvAwUZQCfX"},"license":"MIT","homepage":"https://transcriptapi.io/mcp","keywords":["mcp","mcp-server","model-context-protocol","youtube","youtube-transcript","youtube transcript mcp","transcript","captions","subtitles","claude","cursor","ai-agent","llm"],"description":"YouTube transcript MCP server — give Claude, Cursor, ChatGPT or any MCP client the transcript of any YouTube video, plus search, channel and playlist listings. Powered by TranscriptAPI.","maintainers":[{"name":"transcript-api","email":"gerardpatrick912@gmail.com"}],"readme":"# transcriptapi-mcp — YouTube transcript MCP server\n\nGive Claude, Cursor, VS Code, Windsurf or any [Model Context Protocol](https://modelcontextprotocol.io) client the transcript of any YouTube video — plus YouTube search, channel and playlist listings. Backed by [TranscriptAPI](https://transcriptapi.io), so it keeps working when YouTube blocks datacenter IPs.\n\n```\nnpx -y transcriptapi-mcp\n```\n\nOne env var: `TRANSCRIPTAPI_KEY`. Get a free key (20 credits, no card) at <https://transcriptapi.io/login>.\n\nFull guide with per-client setup: **<https://transcriptapi.io/mcp>**\n\n## Hosted instead? No install needed\n\nThe same tools run at `https://api.transcriptapi.io/mcp` (Streamable HTTP).\n\n- **claude.ai / ChatGPT** (no headers possible): connector URL `https://api.transcriptapi.io/mcp/ta_your_key`\n- **Claude Code**: `claude mcp add --transport http transcriptapi https://api.transcriptapi.io/mcp --header \"Authorization: Bearer ta_your_key\"`\n- **Cursor / VS Code / Windsurf**: `{ \"url\": \"https://api.transcriptapi.io/mcp\", \"headers\": { \"Authorization\": \"Bearer ta_your_key\" } }`\n\n## Tools\n\n| Tool | What it does | Credits |\n|---|---|---|\n| `get_youtube_transcript` | Transcript of a video as timestamped text, plain text, SRT, VTT or JSON. Accepts any YouTube URL or id. Optional AI translation. | 1 (cached repeats: 0; translation extra) |\n| `search_youtube` | Search YouTube by keyword — ids, titles, channel, duration, views. | 1 |\n| `get_channel_videos` | Latest uploads of a channel (id, `@handle` or URL). | 1 |\n| `search_channel_videos` | Keyword search inside one channel. | 1 |\n| `get_playlist_videos` | Videos of a playlist in order. | 1 |\n\nPlus one prompt, `summarize_youtube_video`, that fetches a transcript and asks for a timestamped summary.\n\nFailures that are the video's fault (captions off, private, deleted, age-restricted) come back as a plain-language error with `retryable: false`, and the credit is refunded automatically.\n\n## Setup\n\n### Claude Desktop\n\n`claude_desktop_config.json` → Settings → Developer → Edit Config:\n\n```json\n{\n  \"mcpServers\": {\n    \"transcriptapi\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"transcriptapi-mcp\"],\n      \"env\": { \"TRANSCRIPTAPI_KEY\": \"ta_your_key\" }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add transcriptapi -e TRANSCRIPTAPI_KEY=ta_your_key -- npx -y transcriptapi-mcp\n```\n\n### Cursor\n\n`.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"transcriptapi\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"transcriptapi-mcp\"],\n      \"env\": { \"TRANSCRIPTAPI_KEY\": \"ta_your_key\" }\n    }\n  }\n}\n```\n\n### VS Code (Copilot agent mode)\n\n`.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"transcriptapi\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"transcriptapi-mcp\"],\n      \"env\": { \"TRANSCRIPTAPI_KEY\": \"ta_your_key\" }\n    }\n  }\n}\n```\n\n### Windsurf\n\n`~/.codeium/windsurf/mcp_config.json` — same shape as Claude Desktop.\n\n### Anything else\n\nIt is a standard stdio MCP server: run `npx -y transcriptapi-mcp` with `TRANSCRIPTAPI_KEY` in the environment.\n\n## Configuration\n\n| Variable | Required | Default |\n|---|---|---|\n| `TRANSCRIPTAPI_KEY` | yes | — |\n| `TRANSCRIPTAPI_BASE_URL` | no | `https://api.transcriptapi.io` |\n\n## Things to ask\n\n- \"Summarize https://youtu.be/… in five bullet points with timestamps.\"\n- \"What does this video say about pricing? Quote it.\"\n- \"Find the three most-watched videos on @veritasium about entropy and tell me which one to watch first.\"\n- \"List the last 10 uploads of this channel and get me the transcript of the newest one.\"\n- \"Turn this video into an SRT file in German.\"\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnode scripts/smoke.mjs list                       # tools/list over stdio\nTRANSCRIPTAPI_KEY=ta_… node scripts/smoke.mjs call search_youtube '{\"query\":\"mcp\"}'\nnpm run inspect                                   # MCP Inspector UI\n```\n\nMIT © TranscriptAPI · Questions: <https://discord.gg/gvAwUZQCfX>\n","readmeFilename":"README.md"}