Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_videos | Search YouTube videos by query. Costs 100 quota units per call. Args: query: Search query string max_results: Number of results (1-50, default 10) order: Sort order — relevance, date, rating, viewCount, title video_type: Filter — any, episode, movie |
| get_video_details | Get detailed metadata for one or more videos. Costs 1 quota unit. Args: video_ids: Comma-separated video IDs (up to 50) |
| upload_video | Upload a video file to YouTube. Costs 1600 quota units. Resumable upload. Args: file_path: Absolute path to the video file on disk title: Video title description: Video description tags: List of tags category_id: YouTube category ID (default "22" = People & Blogs) privacy_status: private, unlisted, or public (default private) |
| update_video | Update video metadata. Costs 50 quota units. Only provided fields are changed. Args: video_id: The video ID to update title: New title (or None to keep current) description: New description (or None to keep current) tags: New tags list (or None to keep current) category_id: New category ID (or None to keep current) privacy_status: New privacy — private, unlisted, public (or None to keep current) |
| delete_video | Delete a video. Costs 50 quota units. This is irreversible. Args: video_id: The video ID to delete |
| get_captions | List available caption tracks for a video. Costs 200 quota units to download. Args: video_id: The video ID |
| get_my_channel | Get info about the authenticated user's YouTube channel. Costs 1 quota unit. |
| list_channel_videos | List videos on a channel. Costs 100 quota units (uses search.list). Args: channel_id: The channel ID max_results: Number of results (1-50, default 25) order: Sort order — date, rating, viewCount, relevance, title |
| list_playlists | List playlists. If channel_id is omitted, lists the authenticated user's playlists. Costs 1 quota unit. Args: channel_id: Channel ID to list playlists for (omit for your own) max_results: Number of results (1-50, default 25) |
| create_playlist | Create a new playlist. Costs 50 quota units. Args: title: Playlist title description: Playlist description privacy_status: private, unlisted, or public (default private) |
| update_playlist | Update playlist metadata. Costs 50 quota units. Args: playlist_id: The playlist ID title: New title (or None to keep current) description: New description (or None to keep current) privacy_status: New privacy — private, unlisted, public (or None to keep current) |
| delete_playlist | Delete a playlist. Costs 50 quota units. This is irreversible. Args: playlist_id: The playlist ID to delete |
| list_playlist_items | List videos in a playlist. Costs 1 quota unit. Args: playlist_id: The playlist ID max_results: Number of results (1-50, default 50) |
| add_to_playlist | Add a video to a playlist. Costs 50 quota units. Args: playlist_id: The playlist ID video_id: The video ID to add |
| list_comments | List top-level comments on a video. Costs 1 quota unit. Args: video_id: The video ID max_results: Number of comment threads (1-100, default 20) order: Sort — relevance or time |
| add_comment | Post a top-level comment on a video. Costs 50 quota units. Args: video_id: The video ID to comment on text: Comment text |
| reply_to_comment | Reply to a comment. Costs 50 quota units. Args: parent_comment_id: The comment ID to reply to text: Reply text |
| delete_comment | Delete a comment. Costs 50 quota units. Args: comment_id: The comment ID to delete |
| list_subscriptions | List the authenticated user's subscriptions. Costs 1 quota unit. Args: max_results: Number of results (1-50, default 25) |
| subscribe | Subscribe to a YouTube channel. Costs 50 quota units. Args: channel_id: The channel ID to subscribe to |
| unsubscribe | Unsubscribe (delete a subscription). Costs 50 quota units. Args: subscription_id: The subscription ID (from list_subscriptions) |
| get_channel_analytics | Get channel-level analytics. Requires yt-analytics.readonly scope. Args: start_date: Start date in YYYY-MM-DD format end_date: End date in YYYY-MM-DD format metrics: Comma-separated metrics (default: views,estimatedMinutesWatched,subscribersGained,subscribersLost,likes,dislikes) dimensions: Optional comma-separated dimensions (e.g. day, country, video) |
| get_video_analytics | Get analytics for a specific video. Requires yt-analytics.readonly scope. Args: video_id: The video ID to get analytics for start_date: Start date in YYYY-MM-DD format end_date: End date in YYYY-MM-DD format metrics: Comma-separated metrics (default: views,estimatedMinutesWatched,averageViewDuration,likes,dislikes,shares) |
| list_categories | List available YouTube video categories. Costs 1 quota unit. Args: region_code: ISO 3166-1 alpha-2 country code (default US) |
| set_thumbnail | Upload a custom thumbnail for a video. Costs 50 quota units. Args: video_id: The video ID file_path: Absolute path to the thumbnail image (JPEG, PNG, GIF, BMP; max 2MB) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |