MCP Youtube Transcript logo

MCP Youtube Transcript

by @sinco-lab

Retrieves multilingual YouTube transcripts, timed captions, video metadata, and available caption languages through MCP tools.

Install MCP Youtube Transcript

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "sinco-lab-mcp-youtube-transcript": {
      "command": "npx",
      "args": [
        "-y",
        "@sinco-lab/mcp-youtube-transcript"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 5 tools correctly (Today).

Overview

@sinco-lab/mcp-youtube-transcript retrieves caption data from YouTube videos through MCP tools that run locally with npx. It accepts a YouTube URL or video ID, can select a language, and returns continuous, paragraph-formatted, or timestamped text. Additional tools expose video metadata and available transcript languages without fetching the full transcript.

Use cases

  • Summarize YouTube videos from a client conversation
  • Extract captions in a requested language
  • Analyze video content with timestamped transcript lines
  • Check available caption languages before fetching text

Key features

  • Fetches YouTube transcripts by URL or video ID
  • Supports language selection and automatic caption-track choice
  • Returns continuous, paragraph, or timestamped transcript text
  • Exposes video metadata and available transcript languages
  • Parses multiple caption formats and normalizes transcript text
  • Includes an Android InnerTube fallback

Tools5

What MCP Youtube Transcript lets your agent do. Expand a tool for its parameters.

Verified live~857 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

What it can do

From the 5 tools this server returned when we ran it.

Makes network requests · 4Read-only tools · 5
Network at startup3 connections
Files written at startupNone
Install scriptsNone
npm provenanceNot published
Package age591 days
Maintainers1

Observed 2026-11-06 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 11h ago via OSV.dev · @sinco-lab/mcp-youtube-transcript (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars39Stargazers on the source repository.
npm downloads1kPackage downloads in the last 30 days.
Last commit5mo agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed5Callable tools this server registers over MCP.

How MCP Youtube Transcript works

What @sinco-lab/mcp-youtube-transcript does

@sinco-lab/mcp-youtube-transcript exposes YouTube transcript retrieval through the Model Context Protocol. It is intended for MCP-compatible clients such as Claude Desktop, Cursor, Cline, and Codex, with requests typically executed on the user's machine through npx rather than sent through a remote MCP proxy.

The server accepts either a YouTube video URL or video ID. It can retrieve the best available caption track automatically or use a requested language code. Returned text can be continuous or split into paragraphs, and a separate operation provides one timestamped line for each caption segment.

It also provides lightweight video inspection: one tool returns basic metadata together with available transcript languages, while another lists those languages without returning the transcript itself. This makes it possible to check caption availability before requesting a particular language.

How it works

The server uses caption data exposed through YouTube's web and Android client mechanisms rather than an official public API for arbitrary video captions. Its fetching and parsing logic handles several caption formats, including srv3, classic XML, json3, and VTT.

Processing includes HTML entity decoding, punctuation and whitespace normalization, timestamp handling, overlap detection, and automatic paragraph segmentation. An Android InnerTube fallback is included for some current YouTube caption responses. The implementation reports conditions such as invalid video identifiers, unavailable captions, unsupported language selections, network failures, rate limits, and empty responses caused by YouTube client enforcement.

Because YouTube can reject requests from some networks, hosted environments, or remote MCP providers, running the package locally is part of its intended usage pattern.

Setup and configuration

Node.js 18 or newer is required. For a local setup, add an MCP server entry that launches the package with npx:

config.json
{
  "mcpServers": {
    "youtube-transcript": {
      "command": "npx",
      "args": ["-y", "@sinco-lab/mcp-youtube-transcript"]
    }
  }
}

The same command structure can be used with Claude Desktop, Cursor, or Cline. Restart the client after changing its configuration. The repository also includes a production Dockerfile; build it with docker build -t mcp-youtube-transcript . and configure the client to run docker run --rm -i mcp-youtube-transcript.

For development or inspection, clone the repository, install dependencies, build the TypeScript project, and launch the compiled entry point through MCP Inspector. Claude Desktop logs can be followed from its MCP log directory. If a cached npx installation causes problems, removing ~/.npm/_npx provides a clean package cache.

Tools and capabilities

  • get_transcripts: fetches transcript text, with optional language selection and paragraph formatting.
  • get_transcript: compatibility alias for get_transcripts.
  • get_timed_transcript: returns caption lines with timestamps such as [00:00:01.250].
  • get_video_info: returns basic video metadata and available transcript languages.
  • get_available_languages: lists caption languages for a video.
  • Supports automatic selection of the best available caption track when lang is omitted.

Limitations and notes

The server depends on captions being available for the requested YouTube video and language. YouTube does not offer an official public API for downloading arbitrary video captions, so access relies on internal caption responses that may change or be refused.

Network location matters: YouTube may block requests from certain hosted environments, remote MCP providers, or other networks. Rate limiting and empty caption responses are handled as explicit error conditions. The server is licensed under MIT.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about MCP Youtube Transcript

@sinco-lab/mcp-youtube-transcript is an MCP server that connects MCP-compatible AI clients to YouTube caption data. Its main tools fetch standard or timed transcripts, inspect video metadata, and list available transcript languages. It runs locally through npx, accepts video URLs or IDs, and supports optional language selection.

Install it by adding an MCP configuration that runs `npx -y @sinco-lab/mcp-youtube-transcript`. Add the command and package name under the client's `mcpServers` configuration, then restart the client. Node.js 18 or newer is required, and the repository also supports local Docker usage.

It works with Claude Desktop, Cursor, Cline, Codex, and other MCP-compatible clients. The package is configured as a local command using `npx`, so the client must support launching an MCP server with a command and arguments.

Call `get_timed_transcript` with a YouTube URL or video ID. The tool returns one timestamped line per caption segment, and you can optionally provide a language code. If no language is supplied, it selects the best available caption track.

Call `get_available_languages` with the video's URL or ID. It lists the transcript languages available for that video, allowing you to choose a valid `lang` value before requesting text with `get_transcripts` or `get_timed_transcript`.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMCP Youtube Transcript AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/sinco-lab-mcp-youtube-transcript?style=directory)](https://allmcps.com/mcp/sinco-lab-mcp-youtube-transcript)
HTML Embed
<a href="https://allmcps.com/mcp/sinco-lab-mcp-youtube-transcript"><img src="https://allmcps.com/api/badge/sinco-lab-mcp-youtube-transcript?style=directory" alt="MCP Youtube Transcript on AllMCPs" /></a>