youtube-creator-mcp
Provides tools for interacting with the YouTube Data, Analytics, Reporting, and Live Streaming APIs, enabling channel analytics, video management, comment moderation, uploads, and live stream operations.
Click on "Install 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-creator-mcpAnalyze my channel's recent video performance."
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 Creator MCP
A local, privacy-first Model Context Protocol server for creators who need direct access to the official YouTube Data, Analytics, Reporting, and Live Streaming APIs.
Use it with Codex, Claude Desktop, Cursor, or another MCP client to analyze your channel, research public topics, build local competitor history, and perform carefully gated channel operations.
Status:
v0.2.0. Read-only analytics and research are the recommended path. Creator writes are typed, audited, opt-in, and disabled by default.
Why this exists
Most YouTube MCP servers focus on public search or transcripts. YouTube Creator MCP focuses on the creator's own source-of-truth data and official management APIs:
Private analytics: retention, search terms, traffic, geography, demographics, and devices
YouTube Reporting API jobs and bulk CSV exports
Public video, channel, playlist, comment, membership, category, and activity data
YouTube Live Streaming resources, broadcasts, streams, and live chat
Persistent competitor snapshots and true deltas between captures
Topic sampling, age-normalized velocity proxies, and breakout indicators
Guarded uploads, captions, thumbnails, metadata, playlists, comments, and moderation
Local quota ledger and research cache
This project deliberately does not estimate keyword search volume or expose private competitor analytics. Pair it with other research sources when those signals matter.
Related MCP server: youtube-mcp
Security model
Every installation uses its own Google Cloud project and OAuth credentials.
OAuth credentials are never placed in MCP configuration.
macOS stores credentials in Keychain by default.
Linux and Windows use private per-user files by default.
Research cache and snapshots live in a local SQLite database.
External writes require server configuration and per-call confirmation.
Publication has its own independent server gate and
PUBLISHconfirmation.Destructive operations require a second independent server flag and stronger confirmation.
Upload and download paths are restricted to explicit media roots with symlink containment checks.
Upload operation IDs and fingerprints block accidental duplicate submissions.
Idempotent reads use bounded retries and timeouts; writes are never blindly retried.
Never commit a Google OAuth client JSON, API key, access token, or refresh token.
Requirements
Node.js 22.5 or newer
A Google account with a YouTube channel for private analytics
A Google Cloud project with the required YouTube APIs enabled
macOS, Linux, or Windows
Xcode Command Line Tools on macOS for the Keychain helper (
xcode-select --install)
Installation
git clone https://github.com/t4god/youtube-creator-mcp.git
cd youtube-creator-mcp
npm ci
npm run buildThe server can start without credentials and expose status/capability tools. Public Data API reads require an API key or OAuth; Analytics and private data require OAuth.
Google Cloud setup
Create a separate Google Cloud project for this installation:
Enable YouTube Data API v3.
Enable YouTube Analytics API.
Enable YouTube Reporting API if you need bulk scheduled reports.
Configure the OAuth consent screen.
For a personal app, add your Google account as a test user if the project remains in Testing.
Create an OAuth client of type Desktop app.
Download the JSON file outside this repository.
Official references:
Do not reuse another person's Google OAuth client. YouTube policies prohibit embedding shared API credentials in open-source projects.
Authorize your channel
Start with the minimum read-only profile:
node dist/cli.js auth --client /absolute/path/to/client_secret.json --profile readonlyThe command opens Google's authorization page and receives the callback on
127.0.0.1. Check the resulting configuration without exposing tokens:
node dist/cli.js statusRemove locally stored credentials:
node dist/cli.js logoutOAuth profiles
Profile | Intended use | Added access |
| Research and normal analytics | Account reads, analytics reads, memberships |
| Revenue analysis | Adds monetary analytics |
| Publishing and channel operations | Adds uploads and management scopes |
| Creator operations and revenue | Manager plus monetary analytics |
| CMS/content-owner accounts only | Adds YouTube Partner scopes |
Changing profiles requires running auth again and reviewing the new scopes.
Credential storage
YOUTUBE_MCP_SECRET_STORE=auto is the default:
macOS: Keychain, encrypted at rest by the operating system
Linux/Windows: JSON files inside the private application data directory
Set YOUTUBE_MCP_SECRET_STORE=file for headless macOS environments. File storage is
protected by local account permissions but is not independently encrypted.
Connect an MCP client
Replace /absolute/path/to/youtube-creator-mcp in these examples.
Codex
Add to ~/.codex/config.toml:
[mcp_servers.youtube]
command = "node"
args = ["/absolute/path/to/youtube-creator-mcp/dist/cli.js", "serve"]
startup_timeout_sec = 20
tool_timeout_sec = 120Claude Desktop
Add to the mcpServers object in the Claude Desktop configuration:
{
"youtube": {
"command": "node",
"args": ["/absolute/path/to/youtube-creator-mcp/dist/cli.js", "serve"]
}
}Public API-key-only mode
For public Data API reads without channel analytics:
{
"youtube": {
"command": "node",
"args": ["/absolute/path/to/youtube-creator-mcp/dist/cli.js", "serve"],
"env": { "YOUTUBE_API_KEY": "YOUR_PERSONAL_API_KEY" }
}
}Prefer your client's secure environment or secret mechanism instead of writing an API key directly into a configuration file.
Tool catalog
Authentication and discovery
youtube_auth_statusyoutube_quota_statusyoutube_capabilities
Public and private Data API reads
youtube_my_channelyoutube_get_videosyoutube_get_channelsyoutube_channel_uploadsyoutube_comments
Batch ID tools accept up to 500 IDs and issue batches of 50 per API request.
Comment management
youtube_post_comment: post a top-level comment on a videoyoutube_reply_to_comment: reply to an existing comment threadyoutube_update_comment: edit a comment or reply owned by the authenticated channelyoutube_moderate_comment: publish, hold, reject, or reject-and-ban on the authenticated channelyoutube_delete_comment: permanently delete an owned comment
Posting, replying, editing, and moderation require the write gate and confirm="APPLY".
Deletion additionally requires the destructive gate and confirm="DELETE".
Analytics
youtube_analytics_query: customreports.queryrequest with named and raw rowsyoutube_analytics_report: validated presets
Presets include channel_overview, daily_trends, top_videos, traffic_sources,
search_terms, geography, devices, demographics, and retention.
Research and local history
youtube_topic_researchyoutube_compare_topicsyoutube_snapshot_videosyoutube_snapshot_history
Topic results are cached briefly to conserve search quota. Age-normalized views/day is not current VPH; collect repeated snapshots before claiming real velocity.
Full API escape hatches
youtube_data_readyoutube_data_callyoutube_reporting_readyoutube_reporting_callyoutube_reporting_downloadyoutube_download_caption
Use youtube_capabilities before a generic call and prefer typed high-level tools.
Generic videos.insert and thumbnails.set calls are intentionally rejected so uploads cannot
bypass media validation and duplicate protection.
Creator operations
youtube_upload_plan: validate and hash the exact local file and final metadata without contacting YouTubeyoutube_upload_video: private-by-default upload with operation-ID duplicate protectionyoutube_update_video: merge-safe metadata, audience, synthetic-media, visibility, and schedule updatesyoutube_set_thumbnail: validated JPEG/PNG thumbnail upload (maximum 2 MB)youtube_upload_status: processing, file, metadata, and visibility status for an owned videoyoutube_write_audit: local starts, successes, failures, and deduplicated attempts
Always call youtube_upload_plan first and present its exact plan to the channel owner. Use a
stable, unique operationId for one intended upload; never reuse it for different content.
Uploads default to private even when the caller omits visibility.
Write safety
Writes are disabled in the server configuration by default. To perform a reviewed write:
Authorize with
managerorfull.Set
YOUTUBE_MCP_ENABLE_WRITES=truein the MCP server environment.Include
confirm="APPLY"in the tool call.
Making a video public or unlisted, scheduling publication, or using a generic live-broadcast publication action also requires:
YOUTUBE_MCP_ENABLE_PUBLICATION=true
confirm="PUBLISH"Methods such as delete, unset, or reportAbuse additionally require:
YOUTUBE_MCP_ENABLE_DESTRUCTIVE=true
confirm="DELETE"Turn the flags off again after the intended operation. Media operations additionally
require comma-separated absolute directories in YOUTUBE_MCP_MEDIA_ROOTS.
Persistent creator mode
For a trusted personal installation, the non-destructive write and publication gates can
stay enabled in the MCP client configuration. Per-call APPLY and PUBLISH confirmations
still apply, so enabling these flags does not silently authorize an action.
[mcp_servers.youtube.env]
YOUTUBE_MCP_ENABLE_WRITES = "true"
YOUTUBE_MCP_ENABLE_PUBLICATION = "true"
YOUTUBE_MCP_ENABLE_DESTRUCTIVE = "false"Restart the MCP client after changing its configuration. Keep destructive actions disabled persistently; enable them only for a reviewed delete, unset, or abuse-report operation.
Configuration
Variable | Default | Purpose |
| unset | Public Data API reads without OAuth |
|
|
|
|
| Enable non-destructive external writes |
|
| Independently enable public, unlisted, scheduled, and live publication |
|
| Enable destructive external writes |
| empty | Allowed upload/download directories |
| platform application-data directory | Database, cache, exports, file credentials |
|
| Topic-research cache lifetime |
|
| Timeout for each idempotent read attempt |
|
| Retry count for 429/5xx and transient network read failures |
|
| Exponential backoff base delay with jitter |
On macOS, an existing pre-release data directory at ~/Library/Application Support/youtube-mcp
is reused automatically so local snapshots and authorization continue working.
Quotas
The MCP records an estimate of Data API units it consumes. search.list and videos.insert
are estimated at 100 units each, and all methods draw from the same project quota pool. Google
Cloud Console remains authoritative. Failed calls and read retries may still consume quota,
and quota resets follow Google's Pacific-time schedule.
The ledger does not see calls from other applications using the same Google Cloud project.
Official API boundaries
Official YouTube APIs do not provide:
Private analytics or retention for competitors
Competitor history from before you start collecting snapshots
Arbitrary third-party video transcripts
YouTube UI autocomplete
vidIQ estimates, Google Trends, Reddit, GitHub, or cross-platform signals
Every action present in YouTube Studio
This MCP is a YouTube data spine, not a complete market-research methodology.
Development
npm ci
npm run check
npm test
npm run build
npm run validate
npm run inspectSee CONTRIBUTING.md, SECURITY.md, and CHANGELOG.md. Deployment, backup, rotation, and incident procedures are in docs/OPERATIONS.md.
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceAn 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.Last updated
- AlicenseAqualityBmaintenanceMCP server for YouTube creator-ops — video metadata, comments, playlists, channel analytics, plus a ComfyUI bridge for AI thumbnail generation.Last updated1555MIT
- AlicenseAqualityFmaintenanceA comprehensive MCP server integrating YouTube Data, Analytics, and Reporting APIs, providing 40 tools for channel management, analytics, video publishing, transcripts, SEO, and comments.Last updated4013MIT
- AlicenseBqualityCmaintenanceLocal read-only MCP server for YouTube Data API v3 and YouTube Analytics API, enabling public video searches and OAuth-based private channel reads.Last updated9MIT
Related MCP Connectors
YouTube MCP — wraps the YouTube Data API v3 (BYO API key)
Personal MCP server for humans who create. Proof of authorship, license control.
MCP server for Google Veo AI video generation
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/t4god/youtube-creator-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server