npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@iflow-mcp/youtube-transcript-mcp

v0.0.1

Published

<div align="center"> <img src="assets/logo.png" alt="YouTube Transcript MCP Logo" width="200"/>

Readme

YouTube Transcript Remote MCP Server

The first remote Model Context Protocol (MCP) server that enables Claude AI to extract transcripts from YouTube videos. This server offers zero-setup access for users on any platform including mobile devices.

Deploy to Cloudflare Workers

🌟 Features

  • Zero Local Setup: No installation required - works directly from the cloud
  • Universal Access: Works on desktop, mobile, and web versions of Claude
  • Smart Caching: Efficient caching system using Cloudflare KV for fast responses
  • Multi-language Support: Extract transcripts in different languages
  • Error Handling: Robust error handling with user-friendly messages
  • Analytics: Built-in request tracking and usage analytics
  • URL Flexibility: Handles all YouTube URL formats (youtube.com, youtu.be, m.youtube.com, etc.)

🚀 Quick Start

Option 1: Use Our Hosted Server (Recommended)

The easiest way to get started - just add our public server to your Claude Desktop:

For Claude Desktop Users

  1. Open Claude Desktop Settings

    • Click on "Claude" in the menu bar → "Settings"
    • Navigate to "Developer" tab
    • Click "Edit Config"
  2. Add the MCP Server Configuration

    Add this to your claude_desktop_config.json:

    {
      "mcpServers": {
        "youtube-transcript": {
          "command": "npx",
          "args": [
            "mcp-remote",
            "https://youtube-transcript-mcp.ergut.workers.dev/sse"
          ]
        }
      }
    }
  3. Restart Claude Desktop

    After saving the config file, restart Claude Desktop to load the server.

  4. Verify Installation

    Look for the tools icon (🔧) in the chat interface. You should see the get_transcript tool available.

Option 2: Deploy Your Own

Want to run your own instance? Deploy to Cloudflare Workers in one click:

Deploy to Cloudflare Workers

Or manually:

git clone https://github.com/ergut/youtube-transcript-mcp
cd youtube-transcript-mcp
npm install
npm run deploy

For Other MCP Clients

The server supports the standard MCP protocol and can be used with any compatible client:

  • Public Server URL: https://youtube-transcript-mcp.ergut.workers.dev/sse
  • Transport: Server-Sent Events (SSE) or HTTP
  • Authentication: None required (public server)

📖 Usage Examples

Basic Transcript Extraction

Extract the transcript from this YouTube video: https://www.youtube.com/watch?v=dQw4w9WgXcQ

Multi-language Support

Can you get the transcript of this video in Turkish: https://youtu.be/VIDEO_ID
Extract the Spanish transcript from: https://www.youtube.com/watch?v=VIDEO_ID

Supported URL Formats

The server automatically handles all YouTube URL formats:

  • https://www.youtube.com/watch?v=VIDEO_ID
  • https://youtu.be/VIDEO_ID
  • https://m.youtube.com/watch?v=VIDEO_ID
  • https://www.youtube.com/live/VIDEO_ID
  • https://www.youtube.com/embed/VIDEO_ID
  • https://www.youtube.com/shorts/VIDEO_ID
  • International domains (youtube.co.uk, youtube.de, etc.)

All tracking parameters (like ?si=, &t=, etc.) are automatically removed.

🛠 Available Tools

get_transcript

Extracts the transcript from a YouTube video URL.

Parameters:

  • url (required): YouTube video URL in any format
  • language (optional): Language code for the transcript (e.g., 'en', 'es', 'fr'). Defaults to 'en'.

Example Usage:

{
  "name": "get_transcript",
  "arguments": {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "language": "en"
  }
}

🔧 Advanced Configuration

Debug Logging

To enable detailed logging for troubleshooting:

{
  "mcpServers": {
    "youtube-transcript": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://youtube-transcript-mcp.ergut.workers.dev/sse",
        "--debug"
      ]
    }
  }
}

Debug logs will be created in ~/.mcp-auth/{server_hash}_debug.log.

HTTP Transport Only

To force HTTP transport instead of SSE:

{
  "mcpServers": {
    "youtube-transcript": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://youtube-transcript-mcp.ergut.workers.dev/mcp",
        "--transport",
        "http-only"
      ]
    }
  }
}

📊 Server Information

  • Hosting: Cloudflare Workers
  • Caching: Cloudflare KV with 7-day cache for successful transcripts
  • Rate Limiting: Built-in retry logic with exponential backoff
  • Uptime: 99.9%+ availability through Cloudflare's global network
  • Response Time: Typically <3 seconds for cached content, <10 seconds for new requests

🚨 Error Handling

The server provides clear error messages for common issues:

  • "Invalid YouTube URL provided": The URL format is not recognized
  • "No transcript available for this video": Video has no captions/transcript
  • "Video not found or private": Video is private, deleted, or doesn't exist
  • "Service temporarily busy, try again in a few minutes": Rate limiting from YouTube
  • "Transcripts are disabled for this video": Creator has disabled captions

🌍 Language Support

The server supports any language that YouTube provides transcripts for. Common language codes:

  • en - English (default)
  • tr - Turkish
  • es - Spanish
  • fr - French
  • de - German
  • it - Italian
  • pt - Portuguese
  • ja - Japanese
  • ko - Korean
  • zh - Chinese

🔒 Privacy & Security

  • No Authentication Required: Public server for ease of use
  • No Data Storage: Transcripts are cached temporarily for performance only
  • No Personal Information: Only YouTube video IDs and transcripts are processed
  • HTTPS Only: All communications are encrypted
  • CORS Enabled: Supports web-based MCP clients

🚀 API Endpoints

For developers who want to integrate directly:

HTTP POST /mcp

Standard MCP JSON-RPC endpoint for direct integration.

Server-Sent Events /sse

MCP SSE transport endpoint for real-time communication.

Info /

Server information and status endpoint.

Example Direct API Call:

curl -X POST https://youtube-transcript-mcp.ergut.workers.dev/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "get_transcript",
      "arguments": {
        "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
        "language": "en"
      }
    }
  }'

🐛 Troubleshooting

Common Issues

  1. "Connection Error" in Claude Desktop

    • Ensure you have the latest Claude Desktop version
    • Check that mcp-remote is properly configured
    • Try adding --debug flag to see detailed logs
  2. "Could not attach to MCP server"

    • Verify your internet connection
    • Check the server URL is correct
    • Restart Claude Desktop after config changes
  3. No transcript returned

    • Verify the YouTube URL is valid and accessible
    • Check if the video has captions enabled
    • Try a different language code if available

Getting Help

  • Check logs: Look in ~/.mcp-auth/ for debug logs
  • Test direct connection: Use npx -p mcp-remote@latest mcp-remote-client https://youtube-transcript-mcp.ergut.workers.dev/sse
  • Verify server status: Visit https://youtube-transcript-mcp.ergut.workers.dev/
  • Open an issue: GitHub Issues

🤝 Contributing

This is an open-source project. Contributions are welcome!

  • Report Issues: Found a bug? Please open an issue
  • Feature Requests: Have ideas for improvements? Let us know!
  • Code Contributions: PRs welcome for enhancements

Development Setup

git clone https://github.com/ergut/youtube-transcript-mcp
cd youtube-transcript-mcp
npm install
npm run dev

📜 License

This project is open source and available under the MIT License.

🙏 Acknowledgments


Ready to supercharge Claude with YouTube transcript extraction? Add this server to your Claude Desktop configuration and start extracting transcripts from any YouTube video instantly! 🎉