runsheet-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RUNSHEET_URL | No | Base URL for Runsheet server (for development). Defaults to https://runsheet.buildifyapp.in | https://runsheet.buildifyapp.in |
| RUNSHEET_API_KEY | Yes | Your Runsheet API key, starts with rsk_live_ |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| runsheet_get_channelA | The connected YouTube channel's current state as Runsheet last recorded it: title, handle, subscriber count, total views, video count, and when it was last synced. Read only. |
| runsheet_get_scheduleA | Videos that are scheduled or ready but not yet published, soonest first. This is the running order: what is going out and when. Each line ends with the video's video_id, which is what runsheet_schedule_video, runsheet_update_metadata and runsheet_file_to_playlist take. Read only. Returns at most 50. |
| runsheet_get_libraryA | Published videos, most recent first. Each line has the video's views as of Runsheet's latest snapshot, how many it gained over the last seven days where Runsheet has that much history (fewer days are stated as such), and the video_id that the write tools take. Read only. Returns at most 50. View counts come from Runsheet's snapshots, taken twice a day, and are not live from YouTube; history starts on the day the channel was connected and is limited to the plan's history window. |
| runsheet_get_watchlistA | The other YouTube channels this channel watches, measured with the same maths as the creator's own: each one's uploads per week, share of Shorts, and its breakout videos, meaning videos that reached two and a half times the median views of their own format on that channel. Also returns this channel's own uploads per week and Shorts share, so the comparison is like for like. Each watched channel carries a watch_id and each breakout a video_id, which runsheet_break_down_breakout takes. Their numbers are Runsheet's stored copy of public YouTube data, refreshed in the background and held for at most 30 days, not live. Read only. |
| runsheet_count_charactersA | Count text against YouTube's limits. Reports the hard cap and the softer cutoff that matters more: a title may be 100 characters but search truncates around 60, and a description may be 5000 but only about 120 show before the more button. Also reports both code points and UTF-16 units, which differ when emoji are present and which is what YouTube's field actually measures. No cost, no allowance used. |
| runsheet_preserve_line_breaksA | Insert the invisible character (U+2060 WORD JOINER) that stops YouTube collapsing blank lines in a description, comment or community post. Returns the text ready to paste. Idempotent: running it on already-processed text does not stack characters. No cost, no allowance used. |
| runsheet_style_textA | Produce bold or italic text for YouTube. Returns BOTH the native asterisk or underscore syntax, which YouTube interprets in comments and community posts, AND Unicode mathematical letters, which are the only option in titles and descriptions where the syntax is shown literally. Prefer the native syntax wherever it works: the Unicode letters are not matched by search and are read letter by letter or skipped by screen readers. No cost, no allowance used. |
| runsheet_list_playlistsA | The playlists on the connected channel, with their ids and how many videos each holds. Use this to find the id for runsheet_file_to_playlist. Read only. |
| runsheet_make_thumbnailA | Render a YouTube thumbnail as a PNG from a headline and a layout. Returns a URL for the 16:9 version used by long cuts and the 9:16 version used by Shorts, which are different files on YouTube and cannot be substituted for each other. |
| runsheet_list_local_videosA | List video files in a folder on THIS machine, with their size, duration and whether each is vertical or landscape. Use this before runsheet_upload_video to see what is there and to spot the matching thumbnail files. Reads nothing except file metadata. |
| runsheet_upload_videoA | Upload a video file from THIS machine to YouTube through Runsheet, and schedule it. The file is read from local disk and streamed straight to YouTube; it is never sent to Runsheet's servers. The upload always goes up PRIVATE and can never be published immediately: either give it a publish_at at least fifteen minutes in the future, in which case YouTube publishes it itself at that time, or leave it out and it stays a private draft. Short versus long is detected from the file's dimensions when ffprobe is available, so you usually do not need to pass |
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 11 tools
Each tool targets a distinct resource or action: reads are separated by channel, schedule, library, and watchlist, while local listing, text utilities, thumbnail generation, and upload have non-overlapping purposes. The descriptions make the boundaries clear, so an agent should not confuse them.
All tools use the same runsheet_ prefix and snake_case verb_noun convention (get_*, list_*, count_*, preserve_*, style_*, make_*, upload_*), with no deviations or mixed styles.
Eleven tools is well within the typical 3-15 range for a focused YouTube channel management server. Each tool appears to earn its place by covering a distinct read, utility, or upload operation.
Several descriptions reference write tools that are not present in the surface (runsheet_schedule_video, runsheet_update_metadata, runsheet_file_to_playlist, runsheet_break_down_breakout), creating dead ends for scheduling existing videos, updating metadata, filing to playlists, and breakout analysis. Missing core write operations beyond upload means agents will fail on common workflows.