Skip to main content
Glama
Fetchworks

fetchworks-mcp

Official
by Fetchworks
README.md
# fetchworks-mcp

An MCP server that gives AI agents YouTube transcripts — from single videos, whole channels, and YouTube search — with timestamped segments, plain text, SRT, and VTT.

The server is a thin client for the [Fetchworks YouTube Transcript Scraper](https://apify.com/fetchworks/youtube-transcript-scraper) on Apify. The extraction runs on Apify's infrastructure; you bring your own Apify token. Pricing is $2 per 1,000 transcripts — only delivered transcripts are billed. Failed videos (no captions, blocked, unavailable) cost nothing.

Get a token by [signing up at apify.com](https://console.apify.com/sign-up) (free tier included), then copy it from [console.apify.com/settings/integrations](https://console.apify.com/settings/integrations).

## Tools

| Tool | What it does |
| --- | --- |
| `get_youtube_transcript` | Transcripts for one or more video URLs / Shorts links / bare 11-char IDs |
| `get_channel_transcripts` | Transcripts for a channel's newest uploads (`@handle` or channel URL, default 10 videos) |
| `search_youtube_transcripts` | Transcripts for the top results of a YouTube search (default 5 videos) |

All tools accept `languages` (priority list), `preferAutoGenerated`, `translateTo`, `outputFormats` (`segments`/`text`/`srt`/`vtt`, default `["text"]`), `includeMetadata`, and `includeChapters`. Every video comes back with an honest `status` (`ok`, `no_captions`, `blocked`, `live_stream`, `age_restricted`, `unavailable`, `translation_unavailable`, `po_token_required`, `error`) — never a silently empty transcript.

## Setup

Requires Node.js 18+ and the `APIFY_TOKEN` environment variable.

### Claude Desktop

Add to `claude_desktop_config.json` (Settings → Developer → Edit Config):

```json
{
  "mcpServers": {
    "youtube-transcripts": {
      "command": "npx",
      "args": ["-y", "fetchworks-mcp"],
      "env": {
        "APIFY_TOKEN": "your-apify-token"
      }
    }
  }
}
```

### Claude Code

```bash
claude mcp add youtube-transcripts --env APIFY_TOKEN=your-apify-token -- npx -y fetchworks-mcp
```

### Cursor

Add to `~/.cursor/mcp.json` (or `.cursor/mcp.json` in your project):

```json
{
  "mcpServers": {
    "youtube-transcripts": {
      "command": "npx",
      "args": ["-y", "fetchworks-mcp"],
      "env": {
        "APIFY_TOKEN": "your-apify-token"
      }
    }
  }
}
```

## Example prompts

- "Get the transcript of https://www.youtube.com/watch?v=jNQXAC9IVRw and summarize it."
- "What has @3blue1brown covered in their last 5 videos?"
- "Search YouTube for 'context windows explained' and compare what the top 3 videos say."

## Links

- Actor page and pricing: https://apify.com/fetchworks/youtube-transcript-scraper
- Apify API tokens: https://console.apify.com/settings/integrations

## License

MIT

TDQS

A3.7/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct entry point: explicit video IDs/URLs, a channel handle/URL, or a text search. Even though the resulting transcript output overlaps, the input mechanism is unambiguous, so an agent should not confuse the tools.

Naming Consistency5/5

All tool names follow the same snake_case pattern with get_ or search_ prefixes and consistently use 'transcripts' as the object. The naming clearly indicates both the action and the data source.

Tool Count5/5

Three tools is compact but well-scoped for the server's purpose: known video URLs, channel browsing, and search-based discovery each earn a place. No tool is redundant, and the count is appropriate for a focused YouTube transcript server.

Completeness4/5

The server covers the primary transcript workflows: direct video lookup, channel-level retrieval, and search. Missing playlist support and explicit language filtering are minor gaps, but agents can still accomplish the main tasks without dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues