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

youtube-rss-mcp-server

v1.0.2

Published

Model Context Protocol (MCP) server for generating YouTube RSS feed URLs from various YouTube URL formats

Downloads

2

Readme

YouTube RSS Feed Generator MCP Server

An MCP (Model Context Protocol) server that generates RSS feed URLs from various YouTube URL formats.

Quick Start

  1. Add to Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
  "mcpServers": {
    "youtube-rss": {
      "command": "npx",
      "args": ["-y", "youtube-rss-generator"]
    }
  }
}
  1. Restart Claude Desktop

  2. Use it! Ask Claude: "Generate RSS feed for https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw"

Features

  • Comprehensive URL Support: Handles 20+ YouTube URL formats including:

    • Channel IDs (youtube.com/channel/[CHANNEL_ID]) ✅
    • Handles (youtube.com/@[HANDLE]) ✅
    • Custom names (youtube.com/c/[CUSTOM_NAME]) ✅
    • Usernames (youtube.com/user/[USERNAME]) ✅
    • Playlists (youtube.com/playlist?list=[PLAYLIST_ID]) ✅
    • Videos (youtube.com/watch?v=[VIDEO_ID]) ✅ - Extracts channel RSS
    • Shorts (youtube.com/shorts/[VIDEO_ID]) ✅ - Extracts channel RSS
    • Live streams (youtube.com/live/[VIDEO_ID]) ✅ - Extracts channel RSS
    • Mobile URLs (m.youtube.com)
    • International TLDs (youtube.co.uk, youtube.de, etc.)
    • Short URLs (youtu.be)
  • RSS Feed Validation: Automatically validates generated RSS feeds are accessible

  • Batch Processing: Process multiple URLs at once

  • Intelligent Caching: Cache validation results to improve performance

  • Error Handling: Comprehensive error messages with helpful guidance

Installation & Setup

Option 1: Install Locally (Development)

# Clone or navigate to the project directory
cd /path/to/youtube-rss-generator

# Install dependencies using bun (recommended)
bun install

# Or using npm
npm install

# Build the project
bun run build
# or
npm run build

Option 2: Use via npx (No Installation)

You can run the server directly without installation:

npx -y youtube-rss-generator

Usage

Integrating with Claude Desktop

To use this MCP server with Claude Desktop, you need to add it to your configuration file:

1. Locate your Claude Desktop configuration

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Edit the configuration

Open the config file and add the youtube-rss server:

{
  "mcpServers": {
    "youtube-rss": {
      "command": "npx",
      "args": ["-y", "youtube-rss-generator"]
    }
  }
}

If you have other MCP servers already configured, add it to the existing list:

{
  "mcpServers": {
    "existing-server": {
      "command": "...",
      "args": [...]
    },
    "youtube-rss": {
      "command": "npx",
      "args": ["-y", "youtube-rss-generator"]
    }
  }
}

3. Restart Claude Desktop

After saving the configuration, restart Claude Desktop for the changes to take effect.

Using the MCP Server in Claude

Once configured, you can use the tools in Claude by asking:

  • "Generate an RSS feed for this YouTube channel: https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw"
  • "Convert these YouTube URLs to RSS feeds: [list of URLs]"
  • "Get the RSS feed for LinusTechTips YouTube channel"

The server will automatically be invoked when Claude detects you need to generate YouTube RSS feeds.

Running Standalone (for testing)

You can also run the server standalone for testing:

# Using npx
npx -y youtube-rss-generator

# Or if installed locally
node dist/index.js

The server will start and wait for MCP protocol commands via stdio.

Example Usage Scenarios

Example 1: Get RSS feed for a YouTube Channel

Input:

"Generate RSS feed for https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw"

Output:

RSS Feed URL: https://www.youtube.com/feeds/videos.xml?channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw
✅ Feed validated and accessible

Example 2: Convert a Playlist URL

Input:

"Get RSS for https://www.youtube.com/playlist?list=PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf"

Output:

RSS Feed URL: https://www.youtube.com/feeds/videos.xml?playlist_id=PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf
✅ Feed validated and accessible

Example 3: Batch Process Multiple URLs

Input:

"Convert these to RSS feeds:
- youtube.com/user/LinusTechTips
- youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw
- youtube.com/playlist?list=PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf"

Output:

Processed 3 URLs:
✅ https://www.youtube.com/feeds/videos.xml?user=LinusTechTips
✅ https://www.youtube.com/feeds/videos.xml?channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw  
✅ https://www.youtube.com/feeds/videos.xml?playlist_id=PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf
Success: 3/3

Example 4: Handling Unsupported URLs

Input:

"Get RSS for https://www.youtube.com/@mkbhd"

Output:

⚠️ Cannot generate RSS feed for YouTube handles (@mkbhd)
Handles require channel ID resolution which needs API access.
Please find the channel ID or use the /user/ or /channel/ URL format.

Available Tools

generate_rss_feed

Generate a RSS feed URL from a single YouTube URL.

Parameters:

  • url (string, required): YouTube URL in any supported format
  • validate (boolean, optional): Whether to validate the RSS feed is accessible (default: true)

Example Response:

{
  "success": true,
  "feedUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw",
  "feedType": "channel",
  "sourceType": "channel_id",
  "extractedId": "UCXuqSBlHAE6Xw-yeJA0Tunw",
  "validation": {
    "performed": true,
    "isValid": true,
    "statusCode": 200,
    "error": null
  },
  "metadata": {
    "originalUrl": "youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw",
    "normalizedUrl": "https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw"
  }
}

batch_generate_rss_feeds

Process multiple YouTube URLs at once.

Parameters:

  • urls (string[], required): Array of YouTube URLs
  • validate (boolean, optional): Whether to validate each RSS feed (default: true)
  • continueOnError (boolean, optional): Continue processing if a URL fails (default: true)

Example Response:

{
  "results": [...],
  "totalProcessed": 5,
  "successCount": 4,
  "failureCount": 1
}

Supported URL Formats

Channels

  • youtube.com/channel/[CHANNEL_ID] → ✅ Direct RSS generation
  • youtube.com/@[HANDLE] → ✅ Automatically resolves to channel RSS
  • youtube.com/c/[CUSTOM_NAME] → ✅ Automatically resolves to channel RSS
  • youtube.com/user/[USERNAME] → ✅ Direct RSS generation
  • youtube.com/[CUSTOM_NAME] → ✅ Automatically resolves to channel RSS

Playlists

  • youtube.com/playlist?list=[PLAYLIST_ID] → ✅ Extracts channel RSS from playlist owner
  • youtube.com/watch?v=[VIDEO_ID]&list=[PLAYLIST_ID] → ✅ Extracts channel RSS from playlist owner

Videos (Channel RSS extracted)

  • youtube.com/watch?v=[VIDEO_ID] → ✅ Extracts channel RSS from video
  • youtu.be/[VIDEO_ID] → ✅ Extracts channel RSS from video
  • youtube.com/shorts/[VIDEO_ID] → ✅ Extracts channel RSS from short
  • youtube.com/live/[VIDEO_ID] → ✅ Extracts channel RSS from live stream

Output RSS Feed Formats

The server generates three types of RSS feed URLs:

  1. Channel Feed: https://www.youtube.com/feeds/videos.xml?channel_id=[CHANNEL_ID]
  2. User Feed: https://www.youtube.com/feeds/videos.xml?user=[USERNAME]
  3. Playlist Feed: https://www.youtube.com/feeds/videos.xml?playlist_id=[PLAYLIST_ID]

Limitations

  • Network Dependency: The server now fetches YouTube pages to extract channel information from videos, playlists, handles, and custom names. This requires network access and may be affected by YouTube's rate limiting or changes to their page structure.

  • Rate Limiting: YouTube may rate limit both RSS feed access and page fetching. The server includes caching to minimize repeated requests.

  • Page Structure Changes: Channel extraction from videos and playlists depends on YouTube's HTML structure. If YouTube changes their page layout, extraction may fail until the patterns are updated.

Development

Running Tests

bun test
# or
npm test

Running in Development

bun run dev
# or
npm run dev

Error Handling

The server provides detailed error messages for common issues:

  • Invalid URL formats
  • Unsupported content types (individual videos)
  • Network errors during validation
  • Rate limiting issues

License

MIT