youtube-personal-feed
This server lets AI assistants (via MCP) and CLI users access the authenticated user's YouTube subscriptions, feed, playlists, liked videos, and video metadata.
list_subscriptions: List subscribed channels, optionally filtered by a case-insensitive title query.list_feed: Get the latest uploads across all subscribed channels, with optional limits, recency filtering, and channel restriction.list_channel_uploads: List recent uploads for any specific YouTube channel by channel ID.list_playlist: List videos from any playlist, including custom playlists and Liked Videos (LL).list_liked_videos: List the authenticated user's Liked Videos with standard YouTube watch URLs.get_video: Get metadata and statistics for a single video by video ID.Feed and playlist results include
https://www.youtube.com/watch?v=URLs that can be used with transcript-extraction tools.
Provides tools to list YouTube channel subscriptions, fetch recent uploads from the user's subscription feed, retrieve uploads for a specific channel, and get video details, returning watch URLs for use with other tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@youtube-personal-feed What are the latest uploads from my subscriptions?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
youtube-personal-feed
MCP server and CLI for your YouTube subscriptions. Exposes your feed, channel uploads, playlists (including Liked Videos), and video details to AI assistants and the terminal — with https://www.youtube.com/watch?v= links for transcript tools.
Quick Start
Prerequisites: Node.js 18+, Google account with YouTube Data API v3 enabled.
1. Google Cloud (one-time)
Google Cloud Console → APIs & Services → Library → enable YouTube Data API v3.
OAuth consent screen → External, add your Gmail under Test users, add scope
https://www.googleapis.com/auth/youtube.readonly.Credentials → Create Credentials → OAuth client ID → Desktop App.
Save to
~/.config/youtube-personal-mcp/.env(or.envin repo root):CLIENT_ID=your-client-id.apps.googleusercontent.com CLIENT_SECRET=your-client-secret
2. Install & authenticate
npm install -g youtube-personal-feed
youtube-personal-feed-auth # opens browser; token saved to ~/.config/youtube-personal-mcp/token.jsonRelated MCP server: @striderlabs/mcp-youtube
MCP Setup
Add to claude_desktop_config.json (Claude Desktop) or your OpenCode MCP config:
{
"mcpServers": {
"youtube-personal-feed": {
"command": "youtube-personal-feed-mcp"
}
}
}Local development: npx tsx src/index.ts with cwd set to the repo.
Tools
Tool | Description | Options |
| Channels you subscribe to |
|
| Latest uploads across subscriptions |
|
| Recent uploads for any channel |
|
| Videos from any playlist ( |
|
| Your Liked Videos ( |
|
| Video metadata and stats |
|
Feed items include videoUrl for transcript tools.
CLI
Outputs JSON. Global install:
youtube-personal-feed subscriptions --query tech --limit 20
youtube-personal-feed feed --limit 10 --since-days 7
youtube-personal-feed uploads UCJaGVXG4KgOUXUtcmAHAOdA --limit 15
youtube-personal-feed video 64wtzsSQx84From source (authenticate first):
npm run auth
npm run cli -- feed --limit 10Works for all tools: subscriptions, feed, uploads, playlist, liked, video.
Quota & Caching
YouTube API limit is 10,000 units/day. Uploads use the channel's uploads playlist (1 unit/request). Subscriptions cached 30 min, uploads/videos 10 min.
Development
npm run auth # authenticate locally (before cli)
npm run cli -- <command> # run CLI from source
npm run typecheck # check types
npm run lint # lint + format check
npm run format # format with Biome
npm run build # compile to dist/
npm run smoke # API smoke test (needs auth)Available Tools
6 toolsget_videoB
Get details for a single YouTube video by ID.
Inputs: videoId (required).
list_channel_uploadsA
List the most recent uploads of a specific channel (not required to be subscribed).
Inputs: channelId (required), maxResults.
list_feedA
List the most recent uploads across all subscribed channels (the subscription feed). Returns standard https://www.youtube.com/watch?v= URLs that can be fed into a transcript-extraction MCP.
Inputs: limit, channelId, sinceDays.
list_liked_videosB
List the user's Liked Videos playlist ('LL'). Returns standard https://www.youtube.com/watch?v= URLs.
Inputs: maxResults.
list_playlistB
List videos from any YouTube playlist ID (e.g. LL for Liked Videos or custom PL...).
Inputs: playlistId (required), maxResults.
list_subscriptionsB
List YouTube channels the authenticated user is subscribed to.
Inputs: query, maxResults.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each list_* tool targets a distinct source: subscriptions, aggregate feed, channel uploads, generic playlist, liked videos, plus a single-video getter. The only real overlap is list_liked_videos being a described shortcut for list_playlist('LL'), and list_channel_uploads vs list_feed could occasionally be confused, but descriptions clarify these.
All names follow a predictable verb_noun pattern (list_subscriptions, list_feed, list_channel_uploads, list_playlist, list_liked_videos) with a single get_video for the singular-resource lookup, which is exactly what you'd expect.
Six tools is well-scoped for a read-only personal feed server; each tool maps to a meaningful viewing surface with no filler. Nothing feels thin or bloated.
Core read paths (subscriptions, feed, uploads, playlists, liked, video details) are covered, but there is no search capability and no subscription/playlist management operations, so an agent that needs to discover videos by keyword or modify state hits a dead end.
Maintenance
Related MCP Connectors
YouTube MCP — wraps the YouTube Data API v3 (BYO API key)
YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.
Real-time YouTube transcripts, comments, channels & video search MCP. Local npx or hosted OAuth.
YouTube discovery, transcripts, library search, and monitors with API keys or OAuth.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables interaction with the YouTube Data API, allowing users to search videos, get video and channel details, analyze trends, and fetch video transcripts.-
- AlicenseAqualityDmaintenanceMCP server connector for YouTube — search videos, manage playlists, subscriptions, and watch history via Playwright browser automation.1011 npmMIT
- AlicenseNot gradedqualityDmaintenanceSelf-hosted MCP server that lets AI assistants read your own YouTube channel's stats, recent uploads, and upload schedule via the YouTube Data API v3, using read-only OAuth.MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI applications to search YouTube music videos and manage playlists via the YouTube Data API v3, with OAuth support for playlist and subscription management.3MIT