youtube-complete-mcp
Provides tools to interact with YouTube's Data API, Analytics API, and Reporting API, enabling AI agents to manage channels, videos, comments, live streams, and analytics.
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-complete-mcplist recent videos from my main channel"
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-mcp
An MCP server that exposes Google's three YouTube APIs (Data v3, Analytics v2, Reporting v1) as agent-callable tools. Built for AI assistants that need to inspect channels, fetch analytics, post comments, schedule live broadcasts, or upload videos without juggling raw OAuth refresh logic.
This server is a thin, opinionated wrapper around the official Google API client. It does not invent endpoints, hide quota costs, or try to be "smart" about the underlying API. What it does provide is brand-account-aware authentication, structured per-tool quota tracking, and an explicit safety policy that keeps destructive operations out of an agent's reach.
Features
Three API surfaces, one server. YouTube Data API v3, YouTube Analytics API v2, and YouTube Reporting API v1 are exposed side by side. Tool names use the
youtube_*,analytics_*, andreporting_*prefixes so an agent can route by surface.Multi-brand-account first-class. Each operator-configured account is keyed locally (for example
main-channel,backup-channel) and OAuth tokens are kept per key. Agents passaccount="main-channel"on every call.OS keyring for tokens. Refresh and access tokens live in the system keyring (macOS Keychain, Windows Credential Locker, freedesktop Secret Service). Tokens never sit in plaintext config files.
Quota tracking per account. Every tool declares its quota cost. The server tracks daily usage per account key and exposes it through the
youtube://quota/{account_key}resource.Mutating-op guard. Mutating tools (uploads, edits, comment posts, rating, abuse reports) are gated by an account-handle check. By default only
@jsigvardtmay run mutating operations against live YouTube. SeeINSTALL.mdfor the override.Operator CLI.
youtube-mcp serve,youtube-mcp auth add,youtube-mcp auth list,youtube-mcp auth refresh,youtube-mcp status,youtube-mcp doctor, andyoutube-mcp tools listcover the day-to-day setup and health-check loop.Skill bundle for agents. A drop-in Claude skill bundle lives at
skills/youtube-mcp/. Point your agent at it to teach the model when to use the server, which tool to pick, and how much quota each call costs.
Related MCP server: MCP YouTube Intelligence
Safety Policy: videos.delete is NOT a tool
The YouTube Data API endpoint videos.delete is deliberately excluded from this server. No tool wraps it. The youtube_videos_* module exposes list, insert, update, rate, getRating, and reportAbuse only.
The rationale is simple. Video deletion is irreversible at the API layer, and a bad agent prompt should never be one tool call away from wiping a channel's catalogue. If you need to take down a video, do it in the YouTube Studio UI. If you have a legitimate, audited workflow that requires programmatic deletion, fork this repo and add the tool yourself, with your own approval pipeline. We will not ship it upstream.
This rule is enforced both at the source level (no videos_delete symbol exists anywhere in src/) and by a CI grep that fails the build if the string ever appears.
Install
Requires Python 3.11 or 3.12 and uv.
The PyPI distribution name is youtube-complete-mcp. The shorter youtube-mcp package name is already occupied by an unrelated transcript package, so do not install it expecting this server.
Run the published server with uvx:
uvx youtube-complete-mcp --help
uvx youtube-complete-mcp serve --transport stdioThe wheel also installs a youtube-mcp console alias for persistent virtual environments. With uvx, prefer the distribution-matched youtube-complete-mcp command above. If a client must call the historical executable name, use uvx --from youtube-complete-mcp youtube-mcp serve --transport stdio.
For local development from a clone:
git clone https://github.com/sigvardt/youtube-mcp.git
cd youtube-mcp
uv sync
uv run youtube-mcp --helpOAuth setup, GCP project configuration, and the brand-account picker step are covered in INSTALL.md. Read it before the first youtube-complete-mcp auth add.
Quickstart
Follow
INSTALL.mdto create a GCP OAuth client and add at least one account.Verify the install:
uvx youtube-complete-mcp status uvx youtube-complete-mcp tools list --api youtubeWire the server into your MCP client.
Claude Desktop
Edit claude_desktop_config.json (location varies per OS; see the Anthropic docs):
{
"mcpServers": {
"youtube-mcp": {
"command": "uvx",
"args": ["youtube-complete-mcp", "serve", "--transport", "stdio"]
}
}
}If you cloned the repo instead of installing the published wheel, point command at uv and args at ["--directory", "/abs/path/to/youtube-mcp", "run", "youtube-mcp", "serve"].
OpenCode
In your OpenCode config:
{
"mcp": {
"youtube-mcp": {
"type": "local",
"command": ["uvx", "youtube-complete-mcp", "serve", "--transport", "stdio"],
"enabled": true
}
}
}Other MCP clients
The server speaks the standard MCP protocol over stdio (default), HTTP, or SSE. Pick the transport that matches your client:
uvx youtube-complete-mcp serve --transport stdio
uvx youtube-complete-mcp serve --transport http --host 127.0.0.1 --port 8765
uvx youtube-complete-mcp serve --transport sse --host 127.0.0.1 --port 8765Tool inventory
There are 17 tool modules under src/youtube_mcp/tools/. Run uvx youtube-complete-mcp tools list for the live list with quota costs and descriptions. The modules group as follows:
Data API v3 (read/write):
activities,captions,channel_sections,channels,comment_threads,comments,i18n,live_chat,livestream,members,misc,playlists,search,subscriptions,super_chat_events,video_assets,video_meta,videos.Analytics API v2:
analytics_groups,analytics_reports.Reporting API v1:
reporting_jobs,reporting_reports.
Every tool returns a structured Pydantic model. None return raw HTTP bodies.
Resources
The server also exposes three MCP resources:
youtube://accounts: list of configured account keys, handles, channel IDs, and granted scopes. Never includes tokens.youtube://quota/{account_key}: current daily quota usage for a key.youtube://status: version, transport, and configured account count.
For agents and skill authors
The skill bundle at skills/youtube-mcp/ is the canonical "when to use this server" reference for AI assistants. It explains:
Which API to pick for a given question (Data vs Analytics vs Reporting).
The brand-account model and how to pass
account="<key>".Quota cost per tool and how to budget.
Workflow guides for upload, comment moderation, live broadcast, and analytics pulls.
If you are building a Claude skill or OpenCode agent on top of this server, ingest the skill bundle. Do not re-derive the catalogue from tools list output alone.
Working on the code
See CLAUDE.md for project conventions, the module map, the "where do I add a new tool" guide, and the mutating-guard rationale. New contributors and AI assistants editing this repo should read it first.
License
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.
Hosted MCP for YouTube Studio: uploads, metadata, playlists, comments, analytics, captions.
An MCP server that gives any LLM or agent clean YouTube transcripts on demand: a single video, a whole channel, or a playlist, plus AI cleanup of auto-generated captions. API-key auth, credit-based, same backend as the public v1 API. Get a free API key with 25 free credits at youtubetranscriptdownload.com/account.
Your agent needs to find video — which channels own a topic, which videos rank for a phrase, what exists in a given country and language. **What you can ask for** • "Which videos rank for 'rag pipeline tutorial' in the US this month?" • "Find channels publishing about MCP, sorted by relevance." • "What playlists cover this subject in Japanese?" • "Search videos uploaded this week only." **How to use it** Point any MCP client at https://mcp.aisa.one/youtube-search/mcp and sign in with OAuth — there is no key to create or paste. One search tool covering videos, channels and playlists, narrowed by country, language, upload date, duration and sort order. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Find the video here, then ask the same agent what the channel's site traffic is or what the same phrase does in Google — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/social/mcp for X plus Instagram, Reddit, Pinterest and YouTube; https://mcp.aisa.one/gtm/mcp for those plus Similarweb and Apollo.
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.-
- AlicenseAqualityBmaintenanceAn MCP server for intelligent YouTube video analysis that provides token-optimized summaries, sentiment analysis, and entity extraction from transcripts. It enables AI assistants to perform video reporting, channel monitoring, and comprehensive YouTube searches through structured data tools.1052Apache 2.0
- AlicenseAqualityAmaintenanceA comprehensive MCP server integrating YouTube Data, Analytics, and Reporting APIs, providing 40 tools for channel management, analytics, video publishing, transcripts, SEO, and comments.4021MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that connects AI agents to real YouTube channel analytics and SEO management via OAuth, enabling content strategy, metadata updates, and companion WordPress posts without leaving the agent.44MIT