youtube-channel-mcp
v2.1.0
Published
MCP server for YouTube — analytics, video metadata, SEO updates. Read your private channel data and update titles/descriptions/tags directly from Claude. OAuth2, 10 tools, works with Claude Desktop + Claude Code.
Maintainers
Readme
YouTube MCP Server
Connect Claude to your YouTube channel. Read analytics, fetch full video metadata (including unlisted/private/draft), search your uploads, and update titles/descriptions/tags — all from Claude Desktop, Claude Code, or any MCP client.
What Is This?
A Model Context Protocol (MCP) server that connects Claude to the YouTube Data API v3 and YouTube Analytics API via OAuth2.
Instead of copying data from YouTube Studio into AI tools, just ask Claude:
- "Pull the full title, description and tags for this video"
- "What are my top performing videos this month?"
- "Update the title and tags on my latest upload"
- "Where is my traffic coming from?"
Claude reads your real private channel data and can update video SEO directly.
Claude → YouTube MCP Server → YouTube APIs → Your Channel Data
(you) (this repo) (OAuth2) (stays local)Everything runs on YOUR machine. Read + Write access. Nothing sent to third parties.
Tools Available (10 total)
Video Metadata (Read + Write)
| Tool | What It Does |
|------|-------------|
| get_video_details | Full metadata for any video by ID or URL — title, full description, all tags, category, privacy status (public/unlisted/private/draft), stats, duration, thumbnail URL |
| search_my_videos | Search your own channel's videos by keyword. Returns metadata + stats for matching videos |
| update_video_seo | Update title, description, and/or tags on any video directly. Only changes fields you provide |
Channel Analytics
| Tool | What It Does |
|------|-------------|
| get_channel_overview | Subscribers, total views, video count, channel description, creation date |
| get_all_videos | List all videos with stats (views, likes, comments, tags, privacy status). Sort by date or views |
| get_analytics_over_time | Day-by-day views, watch time, subscribers gained/lost for any date range |
| get_top_videos_analytics | Top performing videos ranked by views with retention %, watch time, subs gained |
| get_audience_demographics | Audience breakdown: top countries, device types, age groups, gender |
| get_traffic_sources | Where viewers come from: YouTube Search, Suggested, Browse, External, Direct |
| analyze_and_suggest_topics | Pulls channel + top video data for AI-powered topic analysis |
Install
Option A: npx (Zero Install — just run it)
npx youtube-studio-mcpOption B: Global Install
npm install -g youtube-studio-mcpOption C: Clone + Run
git clone https://github.com/adityaarsharma/youtube-studio-mcp.git
cd youtube-studio-mcp
npm installOption D: Download ZIP
- Click Code → Download ZIP above
- Unzip → open Terminal →
cdinto the folder - Run
npm install
Setup (15 minutes, one time)
Step 1 — Google Cloud Project
- Go to console.cloud.google.com
- Create a new project (name:
YouTube MCP) - Enable these 2 APIs:
- YouTube Data API v3 (for video data + updates)
- YouTube Analytics API (for private analytics)
Step 2 — OAuth Consent Screen
- Go to APIs & Services → OAuth consent screen
- Select External → Create
- Fill in app name (
YouTube MCP), your email - Skip scopes → Add your Gmail as test user → Save
Step 3 — Create OAuth Credentials
- Go to APIs & Services → Credentials
- Click + Create Credentials → OAuth client ID
- Select Desktop app → Create
- Download JSON → rename to
credentials.json - Move into this repo folder
Step 4 — Authenticate
node auth.jsBrowser opens → log in with the Google account that owns your YouTube channel → Allow.
"This app isn't verified" warning is normal for personal apps. Click Advanced → Go to YouTube MCP (unsafe).
Step 5 — Connect to Claude
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"youtube-analytics": {
"command": "node",
"args": ["/full/path/to/youtube-studio-mcp/server.js"]
}
}
}Or if installed via npm:
{
"mcpServers": {
"youtube-analytics": {
"command": "npx",
"args": ["-y", "youtube-studio-mcp"]
}
}
}Claude Code (Terminal)
claude mcp add youtube-analytics node /full/path/to/youtube-studio-mcp/server.jsVS Code
Add to .vscode/settings.json:
{
"mcp.servers": {
"youtube-analytics": {
"command": "npx",
"args": ["-y", "youtube-studio-mcp"]
}
}
}Restart Claude. Done!
Ready-to-Use Prompts
SEO Audit (any video)
Get the full details for this video: [paste URL or ID]
Check what keywords it's ranking for and suggest optimized title + tagsChannel Performance Report
Pull my channel overview, top 20 videos by watch time, 90-day analytics,
traffic sources and audience demographics. Give me a full performance report.Video Topic Research
Get my top 20 videos by watch time. What patterns do you see —
topics, lengths, title styles? Suggest 10 new video ideas.Update Video SEO
Search my videos for "elementor menu". Pull the full details.
Write an optimized title, description, and tags — then update it.Audience Deep Dive
Show my full audience demographics — age, gender, countries, devices.
What content style and posting schedule fits my actual audience?Underperformer Diagnosis
Get all my videos. Compare bottom 10 vs top 10 by views.
Why did the lower ones underperform? What would you change?8 Bundled AI Skills for YouTube Creators
This repo includes ready-to-use AI skill files in the skills/ folder that supercharge your YouTube workflow. Each skill is a structured prompt that makes Claude act as a specialized team member.
Install any skill: Copy the .md file into your Claude skills directory and it activates automatically.
| Skill | What It Does | Trigger Phrases | |-------|-------------|-----------------| | SEO Optimizer | Optimizes titles, descriptions, tags. Protects existing ranking keywords. 3 title options + full description + 20 tags | "optimize this video", "write title", "write tags" | | Channel Audit | Full channel health report — views, subs, retention, traffic sources, audience demographics. Identifies problems and prescribes fixes | "audit my channel", "why am I not growing", "channel report" | | Topic Finder | 12 data-backed video topics with keyword volumes, SERP gaps, and competitor analysis. Tier 1/2/3 prioritization | "video ideas", "what should I make next", "find topics" | | Thumbnail Auditor | 20-point thumbnail scoring (66-point scale). Grades A-F with specific redesign instructions | "audit thumbnail", "review this thumbnail", "CTR is low" | | Script Writer | Full production-ready scripts with word-for-word narration, screen cues, timestamps, editor brief, and companion Short script | "write script", "video script", "tutorial script" | | Competitor Spy | Competitor channel analysis, SERP battle maps, 10 "steal-worthy" topics with differentiation angles | "competitor analysis", "who's beating me", "content gaps" | | Video Analyzer | Deep single-video analysis — SEO score (21-point), performance benchmarks, and optimized rewrite | "analyze this video", "why isn't this performing", "video audit" | | Shorts Repurposer | Turn any long-form video into 3-5 Shorts with hooks, text overlays, and posting strategy | "make shorts from this", "repurpose video", "extract shorts" |
How the Skills + MCP Work Together
You: "Optimize this video: youtube.com/watch?v=abc123"
Claude:
1. youtube-seo-optimizer skill activates
2. Calls get_video_details → pulls current title, description, tags
3. Checks YouTube SERP for current rankings
4. Lists PROTECTED keywords (won't remove)
5. Writes 3 new title options + full description + 20 tags
6. Can call update_video_seo to apply changes directlyThe skills tell Claude what to do. The MCP tools give Claude access to your data. Together they create a complete YouTube AI workflow.
Install Skills
Claude Desktop / Claude Code:
# Copy a skill to your Claude skills directory
cp skills/youtube-seo-optimizer.md ~/.claude/skills/Or install all 8:
cp skills/youtube-*.md ~/.claude/skills/OAuth Scopes
| Scope | Purpose |
|-------|---------|
| youtube | Read + write video metadata (titles, descriptions, tags) |
| youtube.readonly | Read video data, search, list |
| yt-analytics.readonly | Read private analytics (views, watch time, subs, demographics) |
| youtubepartner-channel-audit | Extended channel audit data |
To enable write access (update_video_seo), delete tokens.json and re-run node auth.js. The new auth flow requests the youtube write scope.
Privacy & Security
| Question | Answer | |----------|--------| | Does my data go to any server? | No — runs 100% on your machine | | Can it delete videos? | No — only reads data and updates metadata | | Is OAuth safe? | Yes — same system used by TubeBuddy, VidIQ | | Can I revoke access? | Yes — anytime at myaccount.google.com/permissions |
Never commit credentials.json or tokens.json to git.
Troubleshooting
| Problem | Fix |
|---------|-----|
| credentials.json not found | Download from Google Cloud Console → move to repo folder |
| Not authenticated | Run node auth.js |
| Port 3000 in use | lsof -ti:3000 \| xargs kill -9 then retry |
| Claude doesn't show tools | Check JSON syntax in config, restart Claude fully |
| "App isn't verified" | Click Advanced → Go to YouTube MCP (unsafe) |
| update_video_seo fails | Delete tokens.json, re-run node auth.js for write scope |
| Quota exceeded | YouTube API free limit: 10,000 units/day. Wait 24h |
What's New in v2.1
- npm package —
npx youtube-studio-mcpfor zero-install - 8 AI skills — bundled YouTube workflow skills for Claude
- MIT License — free to use, modify, share
What's New in v2.0
get_video_details— Full metadata by video ID or URL. Works for public, unlisted, private, and draft videossearch_my_videos— Search your own uploads by keywordupdate_video_seo— Update title, description, tags directly on YouTube- YouTube write scope — OAuth now requests
youtubescope for SEO updates - URL parsing — Pass full YouTube URLs or just video IDs
- Privacy status — All video listings now show public/unlisted/private status
Files
youtube-studio-mcp/
├── server.js ← MCP server (10 tools)
├── auth.js ← Run once to link YouTube account
├── package.json ← Dependencies + npm config
├── skills/ ← 8 AI skills for YouTube creators
├── LICENSE ← MIT
├── credentials.json ← YOU add this (never commit!)
└── tokens.json ← Auto-created after auth (never commit!)Contributing
PRs welcome! Ideas:
- Transcript extraction (YouTube captions API)
- YouTube Shorts-specific analytics
- Revenue/monetization data (YouTube Reporting API)
- Playlist management tools
- Comment management tools
- Thumbnail upload
License
MIT — free to use, modify, share.
Built By
Aditya Sharma — Building AI tools for creators and marketers.
If this saved you time — star the repo and share with a creator friend!
