youtube-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| auth_statusA | Confirm the stored credentials work and report which channel they control. Run this first when something is misbehaving. Quota cost: 1 unit. |
| upload_videoA | Upload a video file to the authorized channel. Quota cost: ~1600 units - about six uploads on the default daily allowance. privacy_status is one of private/unlisted/public. Set publish_at (ISO 8601, e.g. 2026-09-10T15:00:00Z) to schedule a release; YouTube requires a scheduled video to be private until its moment arrives, so publish_at forces privacy_status to private. made_for_kids is a legal declaration under COPPA, not a preference - set it to match what the content actually is. Common category_id values: 22 People & Blogs, 27 Education, 28 Science & Technology, 24 Entertainment, 20 Gaming, 10 Music. |
| update_videoA | Change the metadata on an existing video. Only the fields you pass change. Quota cost: ~51 units (1 to read the current state, 50 to write). The underlying API replaces the whole snippet on write, so this reads the
video first and merges - passing only |
| schedule_videoA | Schedule an existing private video to go public at a given time. Quota cost: ~51 units. publish_at is ISO 8601, e.g. 2026-09-10T15:00:00Z; a bare timestamp is read as UTC. The video must stay private until then, which this sets for you. |
| set_thumbnailA | Set a custom thumbnail. Quota cost: ~50 units. Needs a verified channel with custom thumbnails enabled. JPEG or PNG, under 2MB, 1280x720 recommended. |
| list_my_videosA | List recent uploads on the authorized channel, newest first. Quota cost: ~3 units. Use this to find the video_id the other tools need. |
| video_analyticsB | Performance for one video over a date range (YYYY-MM-DD). Uses the YouTube Analytics API, which has its own quota separate from the Data API. Figures lag real time by roughly two to three days. |
| channel_analyticsA | Channel-wide performance over a date range (YYYY-MM-DD). Pass dimensions="day" for a time series, or "video" for a per-video breakdown of the period. Figures lag real time by roughly two to three days. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a distinct action: auth status, upload, metadata update, scheduling, thumbnail, list, and analytics. schedule_video is the only possible overlap with update_video, but its dedicated publishing workflow is clearly separated. An agent can reliably select the right tool.
Most tools follow a clear verb_noun pattern: upload_video, update_video, schedule_video, set_thumbnail, list_my_videos. auth_status and the analytics tools use noun-based names, but these are consistent and recognizable as status/analytics operations.
Eight tools cover the core channel management and analytics workflow without bloat. Each tool earns its place, and the count is well-scoped for a YouTube-focused MCP server.
The set covers the essential video lifecycle: upload, list, update metadata, schedule publishing, set thumbnail, and retrieve analytics. Missing delete and single-video fetch are minor gaps given the server's clear focus on publishing and performance.