Skip to main content
Glama
aaronckj
by aaronckj

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
VAULTPROXY_URLNoURL of vaultproxy server for vaultproxy backend
YT_MCP_SECRETSNoSecrets backend: file (default), env, or vaultproxy
YT_MCP_CLIENT_IDNoOAuth client ID for env backend
YT_MCP_CLIENT_SECRETNoOAuth client secret for env backend
YT_MCP_REFRESH_TOKENNoOAuth refresh token for env backend

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
channel_infoB

Get the authorized channel's profile, statistics, and uploads playlist id.

list_videosC

List the channel's uploaded videos, newest first, with basic stats.

get_videoB

Get full metadata and statistics for one video.

update_videoA

Update video metadata. Only supplied fields change; others are preserved.

set_thumbnailC

Set a custom thumbnail from a local image file (JPG/PNG, <2MB).

upload_videoC

Upload a video (resumable). privacy: private|unlisted|public. publish_at (RFC3339) schedules publication and requires privacy=private.

delete_videoB

Permanently delete a video. Irreversible.

list_playlistsC

List the channel's playlists.

create_playlistB

Create a playlist. privacy: public|unlisted|private.

delete_playlistB

Delete a playlist (videos are not deleted).

add_to_playlistC

Add a video to a playlist, optionally at a specific position.

remove_from_playlistA

Remove an item from a playlist by playlist-item id (from list results).

list_playlist_itemsC

List videos in a playlist.

list_commentsB

List comment threads for one video, or channel-wide when video_id is omitted.

post_video_questionA

Post a top-level comment on a video as the channel (e.g. a question prompt for viewers). Note: the API cannot pin comments — pin manually in YouTube Studio if desired.

reply_to_commentC

Reply to a comment as the channel.

moderate_commentC

Set moderation status: published | heldForReview | rejected.

mark_spamC

Flag a comment as spam.

delete_commentB

Delete a comment authored by the channel (own comments only).

list_broadcastsC

List live broadcasts. status: all|active|upcoming|completed.

create_broadcastC

Schedule a live broadcast. start_time is RFC3339 (e.g. 2026-08-01T18:00:00Z).

list_streamsC

List reusable stream keys and their health.

bind_broadcastC

Bind a broadcast to a stream key.

live_chat_messagesA

Read messages from a live chat (chat_id from list_broadcasts).

post_chat_messageC

Post a message to a live chat as the channel.

delete_chat_messageC

Delete a live chat message.

ban_chat_userC

Ban a user from live chat; temporary when duration_seconds given, else permanent.

list_captionsB

List caption tracks on a video.

upload_captionC

Upload a caption track (SRT/VTT file).

download_captionA

Download a caption track's text. fmt: srt|vtt.

channel_reportC

Channel analytics between start/end (YYYY-MM-DD).

video_reportB

Per-video analytics between start/end (YYYY-MM-DD).

top_videosB

Top videos by views between start/end (YYYY-MM-DD).

collect_entriesA

Collect giveaway entries: walk every upload's comments in the window (RFC3339 timestamps), one entry per distinct video per commenter, capped per user. Writes an auditable snapshot file and returns its hash.

draw_winnersA

Deterministically draw n winners (distinct channels) from a snapshot. Same snapshot + seed always reproduces the same winners. Writes an audit record next to the snapshot.

make_verification_codeC

Generate a short verification code for a winner and record it in the audit file.

check_verification_replyB

Verify a winner's reply: fetches the comment and checks it was authored by the winning channel and contains their verification code.

export_entries_csvA

Export a snapshot's entries to CSV (channel_id, author, video_id, comment_id, published) for spreadsheets or records.

winner_announcementA

Draft winner-announcement text (for a pinned comment / community post) from a draw's audit record. Review before posting.

post_winner_replyC

Reply to a winning comment as the channel (winner announcement/notification).

banned_words_listA

Show the managed banned-word list used by scan_comments.

banned_words_addC

Add words/phrases to the banned list.

banned_words_removeC

Remove words from the banned list.

scan_commentsA

Sweep comments (one video, or channel-wide when video_id omitted) for banned words. auto_action: none | heldForReview | rejected — matches get that moderation status applied (dry_run previews instead). incremental=True only examines comments newer than the previous incremental scan (watermark stored locally) — cheap to run daily.

batch_update_descriptionsA

Update descriptions across many videos in one sweep.

mode=append: add text at the end (skips videos that already contain it). mode=footer: everything after the last "---" marker line is replaced with text (marker added if missing) — ideal for a links/giveaway footer kept in sync across all videos. mode=replace: replace occurrences of find with text. Scope: video_ids, or every upload when omitted. Quota: ~51 units per changed video.

made_for_kids_auditA

Audit every upload's made-for-kids designation (COPPA). Reports both the platform-effective flag and the self-declared one per video.

post_stream_digestA

Channel performance digest for a date window (YYYY-MM-DD): totals, per-day trend, and top videos — run it the morning after a stream.

post_giveaway_questionA

Post the formatted giveaway question comment (unique question + official-rules link) on a video as the channel. Tracks state locally and refuses to double-post unless force=True. Result includes the Studio URL for the one-click manual pin (no pin API exists).

giveaway_question_statusA

Cross-reference every upload against posted question comments: which videos still need one, which are posted (with pin links).

quota_statusA

Quota units spent this session (local estimate from the official cost table).

health_checkA

Verify stored credentials refresh and the channel is reachable.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/aaronckj/yt-studio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server