← Back to directory
Y

YouTube Transcript MCP Server

Community
MCP server that retrieves YouTube video transcripts and metadata
Category
Other #96 of 230
Stars
★ 494 Very popular
Transport
stdio (local process)
Runtime
Python · Docker · Prebuilt binary
Credentials
No credential needed
License
MIT
Last commit
Tools
4
57FMRS · C

This is a non-official MCP server maintained by an individual developer, focused on extracting YouTube transcripts and metadata. It offers four tools and supports transcript pagination and proxy access. It suits users who need video content as text; it does not download or play videos, and it depends on external YouTube interfaces that may be affected by IP bans.

Strongest · Documentation 13/20 Weakest · Reliability 8/20

Reliability
8/20
Security and permissions
12/20
Maintenance
12/20
Documentation
13/20
Setup experience
12/20
Why each score
Reliability 8/20
The manifest and README agree on four tools (get_transcript, get_timed_transcript, get_video_info, get_available_languages) and declare parameters consistently; the server performs read-only YouTube transcript fetching with no destructive side effects. However, the static material shows no startup logs, handshake samples or error-handling detail, and although a CI badge is referenced, no verifiable CI workflow or committed test files are supplied. Per the static calibration rule reliability must not exceed 12, so 8 is given: the happy path is plausible, but dependencies (youtube-transcript-api, network, proxies) and failure modes (IP bans, missing captions, invalid pagination cursors) lack controlled, diagnosable handling evidence.
Security and permissions 12/20
No red-line behaviour: no malware, credential theft or covert exfiltration, and no hardcoded tokens. Docs note proxy credentials via WEBSHARE_PROXY_USERNAME/PASSWORD or HTTP_PROXY/HTTPS_PROXY, which is explicit user configuration. Deductions: all tools make outbound network calls with no stated permission scope, domain allowlist or data-flow disclosure; proxy credentials may be passed in cleartext via env vars or CLI args with no mention of storage or log redaction; YouTube fetching carries ToS/privacy ambiguity; confirmation and least-privilege statements are incomplete.
Maintenance 12/20
An explicit MIT license, a non-archived repository and a versioned release (0.7.2) with a releases page, Docker Hub image and goose/LM Studio integrations indicate some ongoing activity; 481 stars are treated only as a discovery signal. Deductions: no commit history, issue-response record, dependency-update policy or security-response channel visible in the static material, so governance and release cadence evidence is thin and a high score is not justified.
Documentation 13/20
Documentation is reasonably layered: tool list, parameters (required/optional, default en), pagination at 50,000 characters with a --response-limit knob, proxy configuration, multiple client install paths and license are covered with reviewable examples. Deductions: no auth/quota/rate-limit guidance, no error semantics or troubleshooting steps, cursor-expiry and concurrency behaviour undisclosed, and the default-language assumption is unexplained.
Setup experience 12/20
Setup paths are clear for mainstream clients: an .mcpb bundle, uvx/git install examples, Claude Desktop JSON (including a --response-limit variant), an LM Studio deep link and a Docker image. Deductions: requires uv/uvx and network access, Docker and proxy details are deferred to external pages, and the manifest's empty fileSha256 leaves the artifact unverifiable, which is a fragile manual step. Under the calibration cap of 15 for setup, 12 is awarded.

Static review · not runListed 2026-09-18

Read the FMRS scoring method →

Fit and risk

What it can accessUses the network

Best for

  • Writing and research workflows that need spoken YouTube content as text
  • Users who want quick video information inside an MCP client

Not for

  • Scenarios that require downloading or playing the YouTube video itself
  • Environments where YouTube access is restricted and no proxy is configured

Required permissions

  • Reading local environment variables (e.g. WEBSHARE_PROXY_USERNAME, WEBSHARE_PROXY_PASSWORD, HTTP_PROXY, HTTPS_PROXY)
  • Network access to YouTube
  • Network access through a proxy server (if configured)

Risks and side effects

  • YouTube may impose IP bans on the request source, causing requests to fail
  • Proxy credentials stored as environment variables or command line arguments may be readable by other processes on the machine
  • Transcripts are external untrusted content and may contain errors or injected text
  • Long transcripts can exceed model context limits and depend on pagination

Setup

Before you start

Runtime:Python · Docker · Prebuilt binary

WEBSHARE_PROXY_USERNAME optionalsecret Optional Webshare Residential Proxy username for accessing YouTube from restricted networks; obtain from webshare.io.
WEBSHARE_PROXY_PASSWORD optionalsecret Optional Webshare Residential Proxy password, used together with the username.
Other optional settings (2)
HTTP_PROXY optional Optional general proxy server URL for environments where YouTube access is restricted.
HTTPS_PROXY optional Optional general proxy server URL for routing HTTPS requests through a proxy.
  1. Install uv (required by the uvx command).
  2. In your MCP client's config file (e.g. Claude Desktop), add a youtube-transcript entry under mcpServers with command uvx and args --from git+https://github.com/jkawamoto/mcp-youtube-transcript mcp-youtube-transcript.
  3. Alternatively, download mcp-youtube-transcript.mcpb from the Releases page and open or drag it into Claude Desktop.
  4. Restart the client. LM Studio can be configured with the provided deeplink button; goose users can follow the official tutorial.
claude_desktop_config.json
{
  "mcpServers": {
    "youtube-transcript": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/jkawamoto/mcp-youtube-transcript",
        "mcp-youtube-transcript"
      ]
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "youtube-transcript": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/jkawamoto/mcp-youtube-transcript",
        "mcp-youtube-transcript"
      ]
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add youtube-transcript -- uvx --from git+https://github.com/jkawamoto/mcp-youtube-transcript mcp-youtube-transcript

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

The client's tool list should show get_transcript, get_timed_transcript, get_video_info, and get_available_languages. Calling get_video_info with any YouTube video URL and receiving metadata confirms the connection works.

Troubleshooting

  1. If requests fail with a block message, configure the Webshare residential proxy or an HTTP/HTTPS proxy
  2. If transcript output is truncated, use the returned next_cursor for the next page, or lower --response-limit
  3. If the transcript is empty or in the wrong language, call get_available_languages first and pass an explicit lang
  4. If the uvx command is unavailable, verify that uv is installed

Things to try

Once connected, you can ask your AI assistant things like:

  • Get the transcript of this YouTube video: https://www.youtube.com/watch?v=dQw4w9WgXcQ
  • List the available subtitle languages for this video: https://www.youtube.com/watch?v=dQw4w9WgXcQ
  • Fetch the timestamped transcript for this video: https://www.youtube.com/watch?v=dQw4w9WgXcQ
  • What is the metadata for this YouTube video? https://www.youtube.com/watch?v=dQw4w9WgXcQ

Tools 4

get_transcript read-only
Fetches the transcript of a specified YouTube video. Parameters: url (string, required, full video URL), lang (string, optional, desired language, defaults to en), next_cursor (string, optional, cursor to retrieve the next page).
get_timed_transcript read-only
Fetches the transcript of a specified YouTube video with timestamps. Parameters: url (string, required, full video URL), lang (string, optional, desired language, defaults to en), next_cursor (string, optional, cursor to retrieve the next page).
get_video_info read-only
Fetches the metadata of a specified YouTube video. Parameters: url (string, required, full video URL).
get_available_languages read-only
Retrieves the available languages for the video. Parameters: url (string, required, full video URL).

Use cases

Extracting YouTube transcripts for users who cannot watch the video
Summarizing or searching video content using timed transcripts
Checking available transcript languages before choosing one
Retrieving video metadata for organizing and archiving

Supported clients

Claude Desktop
Goose
LM Studio

Listed from the project's documentation, not tested by this site.

Overview

This MCP server retrieves transcripts for given YouTube video URLs. It exposes get_transcript for plain transcript text, get_timed_transcript for transcripts with timestamps, get_video_info for video metadata, and get_available_languages for the video's available languages. Transcripts longer than 50,000 characters are paginated and return a next_cursor; the page size can be adjusted with --response-limit. Where access to YouTube is restricted, Webshare residential proxy or HTTP/HTTPS proxy can be configured via environment variables or command line arguments.

Similar servers

BioMCP 75 · B

One binary. One grammar. Evidence from the biomedical sources you already trust.

★ 670 · Tools 11 Compare with this →

Source revision fc6e33cfdc86 Data synced 2026-11-02 Read the FMRS scoring method