youtube_auth_statusLABSCO SUMMARY
Reads performance and rewrites metadata in the same session.
"This video underperforms, so fix the title and the tags" becomes one conversation instead of two tools and a spreadsheet. The scopes it requests cover writing as well as reading, including https://www.googleapis.com/auth/youtube, so run it on a machine you trust and keep a copy of titles and tags before a bulk edit.
What it is
A local Python server that talks to the YouTube Data and Analytics APIs through your own Google OAuth client. It runs over stdio with no hosted backend, and the credentials stay in a folder on your machine.
What you get
- Channel profile, branding, uploads playlist and public statistics — youtube_channel_overview
- Recent uploads listed with metadata, privacy status, content details and statistics, and one video fetched on its own — youtube_list_videos, youtube_get_video
- Title, description, tags, category, default language and privacy status updated — youtube_update_video
- A local image uploaded as a custom thumbnail — youtube_upload_thumbnail
- Channel analytics over a date range, and daily numbers for a single video — youtube_channel_analytics, youtube_video_analytics
- Top-level comments posted and read back — youtube_post_comment, youtube_list_comments
- Whether the local OAuth files exist, and the command that creates them — youtube_auth_status, youtube_start_auth
Requirements
Python 3.10 or newer, and a Google Cloud project with YouTube Data API v3 and YouTube Analytics API enabled. Download a Desktop-app OAuth client as secrets/client_secret.json, run python3 scripts/auth.py auth once to write secrets/token.json, then point your client at python3 scripts/server.py with YOUTUBE_CLIENT_SECRETS and YOUTUBE_TOKEN_FILE set. It runs on the Python standard library alone.
Setup effort
Build from source — git clone https://github.com/i1s-abhishek/youtube-studio-mcp.git
USE CASES
Reviewing what you have published lately
Pull the channel overview and the last few uploads with their stats, privacy status and metadata in one pass.
Fixing metadata on a video that underperforms
Read the last 28 days of analytics for that video, then rewrite the title, description, tags and language against what the numbers show.
Swapping a thumbnail
Upload a local image file as the custom thumbnail for a video id, without opening Studio.
Keeping up with comments
List the top-level comment threads on a video and reply to the ones that need it, from the same conversation.
11 tools
Listed in project docs. Your client may show a different list.
youtube_start_authyoutube_channel_overviewyoutube_list_videosyoutube_get_videoyoutube_update_videoyoutube_upload_thumbnailyoutube_channel_analyticsyoutube_video_analyticsyoutube_post_commentyoutube_list_commentsBEFORE YOU INSTALL
What to know first
Tools you get
11 tools named in the project's documentation.
Requires
- python3 on PATH
- Python 3.10 or later
- YOUTUBE_CLIENT_SECRETS in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
git clone https://github.com/i1s-abhishek/youtube-studio-mcp.git
cd youtube-studio-mcp
mkdir -p secretsDownload your Google OAuth Desktop client JSON and save it as secrets/client_secret.json
python3 scripts/auth.py authMCP Clients
Any MCP client
{
"mcpServers": {
"youtube-studio": {
"command": "python3",
"args": [
"./scripts/server.py"
],
"cwd": "<YOUR_PATH_TO_YOUTUBE_STUDIO_MCP>",
"env": {
"YOUTUBE_CLIENT_SECRETS": "./secrets/client_secret.json",
"YOUTUBE_TOKEN_FILE": "./secrets/token.json"
}
}
}
}<YOUR_PATH_TO_YOUTUBE_STUDIO_MCP> is the folder you cloned into. The script and both secrets paths are relative to that folder, so if your client does not apply "cwd", write them as full paths inside it.