rippr-mcp
v1.2.1
Published
MCP server for ripping YouTube transcripts. Saves each transcript to disk and returns a resource link — persistent artifacts, not ephemeral context. Built for AI agents, RAG pipelines, and LLM workflows.
Downloads
700
Maintainers
Readme
rippr-mcp
YouTube transcript extraction for AI agents. MCP server for Claude, Cursor, and any MCP-compatible client.
Saves each transcript as a file and returns the path. Model context stays clean.
No API keys. No signup. Runs locally.
Website · Chrome Extension · npm
Requires a desktop client
rippr runs as a local stdio process. Works with Claude Desktop, Claude Code CLI, Cursor, and any client that can spawn local processes.
It does not work with cloud-hosted clients: claude.ai on the web, the Claude mobile app, or Claude Code on phone / web. Those environments can't launch local Node processes, so stdio MCPs like rippr can't be reached from them. Run it from a desktop.
Install
npx rippr-mcpClaude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"rippr": {
"command": "npx",
"args": ["-y", "rippr-mcp"]
}
}
}Claude Code
claude mcp add rippr -- npx -y rippr-mcpHow it behaves
When you ask Claude to rip a YouTube video:
- Claude calls
rip_transcriptwith the URL. - rippr writes the transcript to
~/rippr/transcripts/<slug>_<videoId>.mdand returns aresource_linkplus metadata (title, channel, language, duration, word count, saved path, preview). The full transcript text is not returned by default. - Claude tells you where the file was saved.
- Follow-ups ("summarize it", "find the part about X") read the saved resource instead of re-ripping.
Tools
rip_transcript
Extract and save a YouTube transcript.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| url | string | yes | — | Any YouTube URL format |
| format | string | no | "text" | "text" → Markdown with frontmatter. "segments" → JSON with timestamped segments. |
| save_path | string | no | ~/rippr/transcripts/ | Override save location. Accepts absolute paths, ~/-relative paths, directories, or full file paths. |
| return_text | boolean | no | false | Include the full transcript text inline in the tool response. Use for short clips or when the text is needed inline. |
Response shape:
- A
resource_linkpointing at the saved file (file://…), with mime typetext/markdownorapplication/json. - A text summary: title, channel, language, duration, word count, segment count, URL, 240-char preview, and the saved path.
- Optionally, the full transcript text (when
return_text: true).
Saved Markdown file:
---
title: "Video Title"
channel: "Channel Name"
language: en (auto-generated)
videoId: abc123XYZ45
videoUrl: https://www.youtube.com/watch?v=abc123XYZ45
durationSeconds: 1289
rippedAt: 2026-04-17T14:22:00.000Z
---
# Video Title
> by Channel Name
Full transcript text as a single continuous block…Saved JSON file (when format: "segments"):
{
"title": "Video Title",
"channel": "Channel Name",
"language": "en",
"isAutoGenerated": true,
"videoId": "abc123XYZ45",
"videoUrl": "https://www.youtube.com/watch?v=abc123XYZ45",
"segmentCount": 142,
"segments": [
{ "start": 0.5, "duration": 2.1, "text": "Hello world" }
],
"rippedAt": "2026-04-17T14:22:00.000Z"
}Prompts
| Prompt | Description |
|---|---|
| get_transcript | Rip a video. Saves to disk. |
| summarize_video | Rip, read the saved file, summarize. |
| extract_quotes | Rip, read the saved file, pull quotes. Optional topic. |
| compare_videos | Rip two videos, compare. |
| research_topic | Rip and extract info about a specific topic. |
Resources
| Resource | URI | Description |
|---|---|---|
| Output Formats | rippr://formats | Format reference (text vs segments) and the default save dir |
| Saved transcripts | file:// URIs under ~/rippr/transcripts/ | Every previously ripped transcript, surfaced as a readable resource |
Saved transcripts are listed dynamically. The client can enumerate them via resources/list and read any one via resources/read without re-ripping the video.
Example queries
Rip this video: https://www.youtube.com/watch?v=fpETS6q1Hww
Summarize the key points from this talk: https://youtu.be/abc123
What does this video say about machine learning? https://www.youtube.com/watch?v=xyz
Compare these two videos: [url1] [url2]How it works
- Tries YouTube's InnerTube API (Android client) first
- Falls back to HTML scraping if InnerTube fails
- Parses caption XML in multiple formats (srv3, timedtext, classic)
- Retries with exponential backoff on transient failures
- Writes Markdown or JSON to
~/rippr/transcripts/(or the path you pass)
No API keys required. Runs entirely on your machine.
Privacy
Runs locally. Talks to YouTube's own APIs to fetch caption data, and writes transcript files to your filesystem. No telemetry, no analytics, no tracking. Resource reads are restricted to the default save directory.
Disclaimer
Rippr accesses publicly available YouTube transcript data through endpoints that YouTube's own apps use. It is not affiliated with, endorsed by, or sponsored by YouTube or Google LLC. YouTube is a trademark of Google LLC.
Use is subject to YouTube's Terms of Service. Use at your own risk. The author accepts no liability for takedowns, rate limits, account actions, or any other consequences of use.
If YouTube adjusts their internal APIs in ways that break extraction, the tool may stop working without notice. For long-term production use, consider the official YouTube Data API v3 with an API key (not currently supported in this package).
