transcriptapi-mcp
v0.1.0
Published
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
Readme
transcriptapi-mcp — YouTube transcript MCP server
Give Claude, Cursor, VS Code, Windsurf or any Model Context Protocol client the transcript of any YouTube video — plus YouTube search, channel and playlist listings. Backed by TranscriptAPI, so it keeps working when YouTube blocks datacenter IPs.
npx -y transcriptapi-mcpOne env var: TRANSCRIPTAPI_KEY. Get a free key (20 credits, no card) at https://transcriptapi.io/login.
Full guide with per-client setup: https://transcriptapi.io/mcp
Tools
| Tool | What it does | Credits |
|---|---|---|
| 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) |
| search_youtube | Search YouTube by keyword — ids, titles, channel, duration, views. | 1 |
| get_channel_videos | Latest uploads of a channel (id, @handle or URL). | 1 |
| search_channel_videos | Keyword search inside one channel. | 1 |
| get_playlist_videos | Videos of a playlist in order. | 1 |
Plus one prompt, summarize_youtube_video, that fetches a transcript and asks for a timestamped summary.
Failures 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.
Setup
Claude Desktop
claude_desktop_config.json → Settings → Developer → Edit Config:
{
"mcpServers": {
"transcriptapi": {
"command": "npx",
"args": ["-y", "transcriptapi-mcp"],
"env": { "TRANSCRIPTAPI_KEY": "ta_your_key" }
}
}
}Claude Code
claude mcp add transcriptapi -e TRANSCRIPTAPI_KEY=ta_your_key -- npx -y transcriptapi-mcpCursor
.cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"transcriptapi": {
"command": "npx",
"args": ["-y", "transcriptapi-mcp"],
"env": { "TRANSCRIPTAPI_KEY": "ta_your_key" }
}
}
}VS Code (Copilot agent mode)
.vscode/mcp.json:
{
"servers": {
"transcriptapi": {
"type": "stdio",
"command": "npx",
"args": ["-y", "transcriptapi-mcp"],
"env": { "TRANSCRIPTAPI_KEY": "ta_your_key" }
}
}
}Windsurf
~/.codeium/windsurf/mcp_config.json — same shape as Claude Desktop.
Anything else
It is a standard stdio MCP server: run npx -y transcriptapi-mcp with TRANSCRIPTAPI_KEY in the environment.
Configuration
| Variable | Required | Default |
|---|---|---|
| TRANSCRIPTAPI_KEY | yes | — |
| TRANSCRIPTAPI_BASE_URL | no | https://api.transcriptapi.io |
Things to ask
- "Summarize https://youtu.be/… in five bullet points with timestamps."
- "What does this video say about pricing? Quote it."
- "Find the three most-watched videos on @veritasium about entropy and tell me which one to watch first."
- "List the last 10 uploads of this channel and get me the transcript of the newest one."
- "Turn this video into an SRT file in German."
Development
npm install
npm run build
node scripts/smoke.mjs list # tools/list over stdio
TRANSCRIPTAPI_KEY=ta_… node scripts/smoke.mjs call search_youtube '{"query":"mcp"}'
npm run inspect # MCP Inspector UIMIT © TranscriptAPI · Questions: https://discord.gg/gvAwUZQCfX
