MCP Tools
All 59 MCP tools available on the Rad TV API server.
The Rad TV MCP server exposes 59 tools organized by category. Call them via tools/call JSON-RPC.
Raw GraphQL uses Relay connections (first, after, edges, node). MCP list tools may still use limit / start-style arguments; see Pagination for the underlying API shape.
Authentication labels below describe access through the MCP endpoint. A tool description may also note that its underlying GraphQL query is public.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_me",
"arguments": {}
}
}Identity & User
logout
Log out this MCP OAuth session by revoking its access and refresh tokens. The client may still need to disconnect the server to clear its local credential cache.
MCP authentication: Required
Arguments: None
get_me
Get the currently authenticated user (id, username, email, channel). Requires Bearer token.
MCP authentication: Required
Arguments: None
list_followed_channels
List channels the authenticated user follows. Requires Bearer token.
MCP authentication: Required
Arguments: None
Channels
get_channel
Get a single channel by DID. Requires Bearer token.
MCP authentication: Required
Arguments
id(string, required) — Channel DID (e.g. did:rad.live:channel/<uuid>)
update_channel
Update your channel's metadata: name, summary, short summary, keywords, categories. Only the fields you pass are changed; omitted fields keep their current values. Omit id to edit your own channel. Read current values with get_channel first. Requires Bearer token.
MCP authentication: Required
Arguments
categories(string[], optional) — Category DIDs from list_categories, replacing the current setid(string, optional) — Channel DID; defaults to your own channelkeywords(string[], optional) — Keywords, replacing the current setname(string, optional) — Channel nameshortSummary(string, optional) — Short channel summarysummary(string, optional) — Long-form channel summary
create_channel_asset
Start an upload for channel art — avatar, banner or background. Returns an ingestion session with a TUS endpoint to PUT the file to, the same pattern as create_content_asset. Images only. Omit id to upload to your own channel. Requires Bearer token.
MCP authentication: Required
Arguments
filename(string, required) — Original filename, e.g. "banner.png" — the extension sets the typeid(string, optional) — Channel DID; defaults to your own channelpurpose(string, optional) — What the image is for Accepted values:AVATAR,BANNER,BACKGROUND,THUMBNAIL. Default:AVATAR.size(number, optional) — File size in bytes, if known; enables upload progress
search_channels
Find channels by keyword, matching name and summary. Use this instead of paging through list_channels — the catalog holds tens of thousands of channels. Returns lean rows (DID, name, summary, categories, one thumbnail URL) plus totalCount and nextStart for the following page. Requires Bearer token.
MCP authentication: Required
Arguments
limit(number, optional) — Max number of channels to return (default 25)query(string, required) — Keyword to search for, at least 2 characters, e.g. "skate punk"start(number, optional) — Offset for pagination; pass the nextStart from the previous response
list_channel_content
List a channel's content, newest first, with real pagination. The rad-tv://channels/mine/content resource is capped at the first 50 items and MCP resources take no arguments, so use this tool to reach anything past that. Defaults to the authenticated user's own channel. Returns lean rows plus totalCount and nextStart for the following page. Requires Bearer token.
MCP authentication: Required
Arguments
channel(string, optional) — Channel DID (e.g. did:rad.live:channel/<uuid>); defaults to your own channellimit(number, optional) — Max number of items to return (default 50, max 100)start(number, optional) — Offset for pagination; pass the nextStart from the previous response
list_channels
List channels as a lean Relay connection with DID, name, summary, category names, and one primary image URL. Requires Bearer token.
MCP authentication: Required
Arguments
limit(number, optional) — Max number of channels to returnstart(number, optional) — Offset for pagination
Taxonomy
list_categories
List content categories as a lean Relay connection with DID, name, summary, and one primary image URL. Requires Bearer token.
MCP authentication: Required
Arguments
limit(number, optional) — Max number of categories to returnstart(number, optional) — Offset for pagination
list_ratings
List all content ratings (paginated). For filtering/UI (e.g. MPAA, TV). Public; no auth required.
MCP authentication: Required
Arguments
limit(number, optional) — Max number of ratings to returnstart(number, optional) — Offset for pagination
list_genres
List all content genres (paginated). For filtering/UI. Public; no auth required.
MCP authentication: Required
Arguments
limit(number, optional) — Max number of genres to returnstart(number, optional) — Offset for pagination
Content Creation
create_content
Create new content. Requires Bearer token. Returns content id (DID) and lrn.
MCP authentication: Required
Arguments
summary(string, optional) — Short summarytitle(string, optional) — Content titletype(string, optional) — Content type Accepted values:FEATURE,LIVE,SERIES,EPISODE,SHORT. Default:FEATURE.
get_content
Fetch a single content item by DID: title, name, summaries, keywords, visibility, playback source, duration, rating, transcode job, and assets. Use it before update_content to read current values, since update_content changes only the fields you pass. Requires Bearer token.
MCP authentication: Required
Arguments
id(string, required) — Content DID (e.g. did:rad.live:content/feature/<uuid>, as returned by channel_dashboard)
search_content
Find content by keyword, matching title and summary. Returns lean rows (content DID, title, name, summary, duration, one thumbnail URL) plus totalCount and nextStart for the following page. Field names match update_content, so a result can be edited and written back directly. Requires Bearer token.
MCP authentication: Required
Arguments
limit(number, optional) — Max number of items to return (default 25)query(string, required) — Keyword to search for, at least 2 characters, e.g. "downhill session"start(number, optional) — Offset for pagination; pass the nextStart from the previous response
update_content
Update an existing content item. Only the fields you pass are changed; omitted fields keep their current values. Requires Bearer token.
MCP authentication: Required
Arguments
containsAds(string, optional) — Ad disclosure hint Accepted values:YES,NO,MAYBE.id(string, required) — Content DID (e.g. did:rad.live:content/feature/<uuid>, as returned by channel_dashboard)name(string, optional) — New short titleshortSummary(string, optional) — New short summarysummary(string, optional) — New long-form summarytitle(string, optional) — New title
create_content_asset
Create an ingestion session for uploading a file to content. Returns endpoint for TUS upload (POST to endpoint with multipart/form-data). Requires Bearer token.
MCP authentication: Required
Arguments
contentId(string, required) — Content DID (e.g. from create_content)filename(string, required) — Original filenamehint(string, optional) — Video presentation hint Accepted values:EQUIRECTANGULAR,NONE,PORTRAIT,CUBEMAP,STEREOSCOPIC,OTHER. Default:NONE.size(number, optional) — File size in bytes (optional, auto-detected if omitted)
submit_content_for_processing
Submit content for transcoding. Reuses an existing live job for the same source unless force is set; rejects non-video sources (e.g. thumbnails). Requires Bearer token.
MCP authentication: Required
Arguments
assetName(string, required) — Name of the VIDEO source asset in ingestion (e.g. filename from create_content_asset). Thumbnails are separate image assets and cannot be transcoded.contentId(string, required) — Content DID (e.g. did:rad.live:content/feature/<id>)enhance(boolean, optional) — Enable AI upscaling and upmixing (requires Creator+ subscription) Default:false.force(boolean, optional) — Create a new transcode job even if a live one already exists for this source (re-transcode) Default:false.layout(string, optional) — Content layout Accepted values:LANDSCAPE,PORTRAIT,VR. Default:LANDSCAPE.
On update_content, containsAds is one of YES, NO, or MAYBE. Pass force to submit_content_for_processing to start a new transcode job even when a live one already exists for the same source (a re-transcode).
AI Tools
These tools require an active Creator+ subscription in addition to a Bearer token.
predict_virality
Score content for viral potential before publishing: returns a virality score, predicted click-through rate, confidence, and actionable recommendations for a title plus optional thumbnail, description, and category. Use it to A/B test titles or thumbnails before calling publish_video. Requires Bearer token and an active Creator+ subscription.
MCP authentication: Required
Arguments
categories(string[], optional) — Every category the content is tagged with. Send the full list: the score counts an inferred category as a match against any of them, so multi-tagged content is not told to switch to a category it already has.category(string, optional) — Primary content category (e.g. Technology). Derived from the first entry of categories when omitted.description(string, optional) — Content description or summary.imageUrl(string, optional) — Thumbnail image URL for visual analysis.title(string, required) — Content title to analyze (the primary signal).
Publishing
publish_content
Publish content (set ACL to public, mark as released). Requires Bearer token.
MCP authentication: Required
Arguments
id(string, required) — Content DID (e.g. did:rad.live:content/feature/<id>)releaseDate(string, optional) — Optional ISO 8601 release date (must be in the past). Defaults to now or preserves existing release_date.
unpublish_content
Unpublish content (set ACL to protected, mark as unreleased). Requires Bearer token.
MCP authentication: Required
Arguments
id(string, required) — Content DID (e.g. did:rad.live:content/feature/<id>)
Playlists
create_playlist
Create a new playlist. Optionally associate with a channel by DID. Requires Bearer token.
MCP authentication: Required
Arguments
channel(string, optional) — Channel DID (optional)summary(string, optional) — Playlist summarytitle(string, optional) — Playlist title
get_playlist
Read a playlist by DID: metadata plus its items in order, each with its content DID and title. Use this before add_playlist_items or remove_playlist_items to see what is already there. Requires Bearer token.
MCP authentication: Required
Arguments
id(string, required) — Playlist DID (e.g. did:rad.live:content/playlist/<id>, or the did:rad.live:playlist/<id> form channel listings return)
add_playlist_items
Append content to an existing playlist, keeping what is already there. Items already in the playlist are skipped rather than duplicated. Returns the playlist as it now stands. Requires Bearer token.
MCP authentication: Required
Arguments
contentIds(string[], required) — Content DIDs to append, in the order they should appearid(string, required) — Playlist DID
remove_playlist_items
Remove content from a playlist, leaving the rest in their current order. A DID that is not in the playlist is ignored. Returns the playlist as it now stands. Requires Bearer token.
MCP authentication: Required
Arguments
contentIds(string[], required) — Content DIDs to removeid(string, required) — Playlist DID
set_playlist_items
Replace a playlist's contents with exactly this ordered list. Use it to reorder, or to set the whole playlist at once; read it with get_playlist first, since anything omitted is removed. An empty list clears the playlist. Requires Bearer token.
MCP authentication: Required
Arguments
contentIds(string[], required) — The complete ordered list of content DIDs the playlist should containid(string, required) — Playlist DID
update_playlist
Update an existing playlist metadata. Requires Bearer token.
MCP authentication: Required
Arguments
id(string, required) — Playlist DID (e.g. did:rad.live:content/playlist/<id>)summary(string, optional) — Playlist summarytitle(string, optional) — Playlist title
create_playlist_asset
Create an ingestion session for uploading an image to a playlist. Returns TUS upload endpoint. Requires Bearer token.
MCP authentication: Required
Arguments
filename(string, required) — Original filenameplaylistId(string, required) — Playlist DID (e.g. did:rad.live:content/playlist/<id>)size(number, optional) — File size in bytes
delete_playlist
Remove a playlist owned by the authenticated creator from normal visibility. Support can recover it; confirmId must exactly match id.
MCP authentication: Required
Arguments
confirmId(string, required) — Repeat the exact playlist DID to confirm removalid(string, required) — Playlist DID to delete
Engagement
follow_channel
Follow a channel by its DID. Requires Bearer token.
MCP authentication: Required
Arguments
channel(string, required) — Channel DID (e.g. did:rad.live:channel/<uuid>)
unfollow_channel
Unfollow a channel by its DID. Requires Bearer token.
MCP authentication: Required
Arguments
channel(string, required) — Channel DID (e.g. did:rad.live:channel/<uuid>)
like_content
Like a piece of content by DID. Idempotent. Requires Bearer token.
MCP authentication: Required
Arguments
id(string, required) — Content DID (e.g. did:rad.live:content/feature/<id>)
unlike_content
Remove like from content by DID. Idempotent. Requires Bearer token.
MCP authentication: Required
Arguments
id(string, required) — Content DID (e.g. did:rad.live:content/feature/<id>)
create_comment
Create a comment on content. Requires Bearer token.
MCP authentication: Required
Arguments
body(string, required) — Comment text (non-empty)contentId(string, required) — Content DID (e.g. did:rad.live:content/feature/<id>)
delete_comment
Permanently delete a comment authored by the authenticated user. This cannot be undone; confirmId must exactly match id.
MCP authentication: Required
Arguments
confirmId(string, required) — Repeat the exact comment ID to confirm permanent deletionid(string, required) — Comment ID to delete
list_comments
List comments for content by content DID. Requires Bearer token.
MCP authentication: Required
Arguments
contentId(string, required) — Content DID (e.g. did:rad.live:content/feature/<id>)limit(number, optional) — Max comments to returnstart(number, optional) — Offset for pagination
YouTube
list_youtube_videos
List the authenticated user's YouTube videos. Requires connected YouTube account and Bearer token.
MCP authentication: Required
Arguments
limit(number, optional) — Max results (default 12)pageToken(string, optional) — YouTube API page token for pagination
get_youtube_publish_job
Get status of a YouTube publish job by ID. Requires Bearer token.
MCP authentication: Required
Arguments
id(string, required) — Publish job ID (from publish_content_to_youtube)
create_youtube_reference
Create an external YouTube reference. Copies metadata and a thumbnail, but does not copy source media, transcode it, or create Rad-hosted playback. Requires a connected YouTube account and Bearer token.
MCP authentication: Required
Arguments
channel(string, optional) — Channel DID to associate (optional)videoId(string, required) — YouTube video ID (e.g. from list_youtube_videos or URL)
create_content_from_youtube
Legacy alias for create_youtube_reference. Creates an external reference from metadata and a thumbnail; it does not copy source media or create Rad-hosted playback.
MCP authentication: Required
Arguments
channel(string, optional) — Channel DID to associate (optional)videoId(string, required) — YouTube video ID (e.g. from list_youtube_videos or URL)
publish_content_to_youtube
Publish a Rad TV video to YouTube. Returns a job ID; poll with get_youtube_publish_job. Requires connected YouTube account and Bearer token.
MCP authentication: Required
Arguments
id(string, required) — Content DID (e.g. did:rad.live:content/feature/<id>)privacyStatus(string, optional) — YouTube privacy status Accepted values:PUBLIC,UNLISTED,PRIVATE. Default:PRIVATE.
Creator Analytics
Read-only analytics for the authenticated creator's own channel. Each tool forwards your Bearer token to the analytics service, which scopes every response to your channel via the token's identity — there is no cross-channel access.
Analytics data is production-only. On api-staging.rad.live these tools return correctly-shaped but zeroed responses.
get_creator_analytics_overview
Headline analytics for the authenticated creator's channel: views, watch minutes, unique viewers, subscribers, and deltas vs the prior period. Requires Bearer token.
MCP authentication: Required
Arguments
from(string, optional) — Start date (ISO 8601, e.g. 2025-01-01). Used with range=CUSTOM.range(string, optional) — Preset window (default LAST_30D). Use CUSTOM with from/to. Accepted values:LAST_7D,LAST_28D,LAST_30D,LAST_90D,MTD,YTD,CUSTOM.to(string, optional) — End date (ISO 8601). Used with range=CUSTOM.
get_creator_analytics_audience
Audience breakdown for the authenticated creator's channel by country and device. Requires Bearer token.
MCP authentication: Required
Arguments
from(string, optional) — Start date (ISO 8601, e.g. 2025-01-01). Used with range=CUSTOM.range(string, optional) — Preset window (default LAST_30D). Use CUSTOM with from/to. Accepted values:LAST_7D,LAST_28D,LAST_30D,LAST_90D,MTD,YTD,CUSTOM.to(string, optional) — End date (ISO 8601). Used with range=CUSTOM.
get_creator_analytics_timeseries
Timeseries of a chosen metric for the authenticated creator's channel at a chosen granularity. Requires Bearer token.
MCP authentication: Required
Arguments
from(string, optional) — Start date (ISO 8601, e.g. 2025-01-01). Used with range=CUSTOM.granularity(string, optional) — Bucket size (default DAY) Accepted values:DAY,WEEK,MONTH. Default:DAY.metric(string, optional) — Metric to chart (default VIEWS) Accepted values:VIEWS,WATCH_MINUTES,UNIQUE_VIEWERS,CHANNEL_SUBSCRIBERS,NEW_CHANNEL_SUBSCRIBERS. Default:VIEWS.range(string, optional) — Preset window (default LAST_30D). Use CUSTOM with from/to. Accepted values:LAST_7D,LAST_28D,LAST_30D,LAST_90D,MTD,YTD,CUSTOM.to(string, optional) — End date (ISO 8601). Used with range=CUSTOM.
get_creator_analytics_subscribers
Subscriber growth, recency buckets, and per-country split for the authenticated creator's channel. Requires Bearer token.
MCP authentication: Required
Arguments
from(string, optional) — Start date (ISO 8601, e.g. 2025-01-01). Used with range=CUSTOM.range(string, optional) — Preset window (default LAST_30D). Use CUSTOM with from/to. Accepted values:LAST_7D,LAST_28D,LAST_30D,LAST_90D,MTD,YTD,CUSTOM.to(string, optional) — End date (ISO 8601). Used with range=CUSTOM.
list_creator_analytics_videos
Paginated per-video analytics for the authenticated creator's channel, sorted by the chosen metric. Requires Bearer token.
MCP authentication: Required
Arguments
after(string, optional) — Pagination cursor from a previous responsefirst(number, optional) — Max videos to return (default 50)from(string, optional) — Start date (ISO 8601, e.g. 2025-01-01). Used with range=CUSTOM.range(string, optional) — Preset window (default LAST_30D). Use CUSTOM with from/to. Accepted values:LAST_7D,LAST_28D,LAST_30D,LAST_90D,MTD,YTD,CUSTOM.sort(string, optional) — Sort key (default VIEWS) Accepted values:VIEWS,WATCH_MINUTES,UNIQUE_VIEWERS,LIKES,COMMENTS,RELEASE_DATE. Default:VIEWS.to(string, optional) — End date (ISO 8601). Used with range=CUSTOM.
get_creator_analytics_video
Per-video analytics deep-dive (daily views/watch, country/device breakdowns, engagement). Requires Bearer token.
MCP authentication: Required
Arguments
contentLrn(string, required) — Full content LRN, e.g. lrn:12core:media:content:feature:<uuid>from(string, optional) — Start date (ISO 8601, e.g. 2025-01-01). Used with range=CUSTOM.range(string, optional) — Preset window (default LAST_30D). Use CUSTOM with from/to. Accepted values:LAST_7D,LAST_28D,LAST_30D,LAST_90D,MTD,YTD,CUSTOM.to(string, optional) — End date (ISO 8601). Used with range=CUSTOM.
list_creator_analytics_comments
Inbox feed of comments on the authenticated creator's content (paginated, newest first). Requires Bearer token.
MCP authentication: Required
Arguments
after(string, optional) — Pagination cursor from a previous responsefirst(number, optional) — Max comments to return (default 25)
creator_analytics_dashboard
One-call analytics dashboard for the authenticated creator's channel: overview KPIs, audience breakdown, and top videos. Requires Bearer token.
MCP authentication: Required
Arguments
from(string, optional) — Start date (ISO 8601, e.g. 2025-01-01). Used with range=CUSTOM.range(string, optional) — Preset window (default LAST_30D). Use CUSTOM with from/to. Accepted values:LAST_7D,LAST_28D,LAST_30D,LAST_90D,MTD,YTD,CUSTOM.to(string, optional) — End date (ISO 8601). Used with range=CUSTOM.topVideos(number, optional) — Number of top videos to include (default 10) Default:10.
range accepts LAST_7D, LAST_28D, LAST_30D (default), LAST_90D, MTD, YTD, or CUSTOM (pair with from/to). metric is one of VIEWS, WATCH_MINUTES, UNIQUE_VIEWERS, CHANNEL_SUBSCRIBERS, NEW_CHANNEL_SUBSCRIBERS.
Compound Workflows
These tools combine multiple operations for agent convenience. See Agent Workflows for detailed guides.
publish_video
Publish a video to Rad TV. Two modes: 1. With sourceUrl: Server downloads and processes the video entirely server-side (single call, fully automatic). 2. Without sourceUrl: Creates content and returns upload endpoint + curl command. Run the curl command — the server automatically submits for processing and publishes after upload completes (no separate finalize call needed). Thumbnail support: Use thumbnailUrl for server-side download (works in both modes), or thumbnailFilename for local file upload (Mode 2 only — returns a separate curl command). IMPORTANT: Always determine and include size (video) and thumbnailSize (thumbnail) in bytes when uploading local files. Use filesystem stat or equivalent to get file sizes before calling this tool. Uploads without size may produce corrupted files.
MCP authentication: Required
Arguments
channel(string, optional) — Channel DID (optional, defaults to primary channel)enhance(boolean, optional) — Enable AI upscaling/upmixing (Creator+ only) Default:false.filename(string, optional) — Filename (required if no sourceUrl)idempotencyKey(string, required) — Stable creator-scoped key for this operation and every retry. Reusing it with different input fails.layout(string, optional) — Content layout Accepted values:LANDSCAPE,PORTRAIT,VR. Default:LANDSCAPE.publish(boolean, optional) — Make the content publicly visible when the upload finishes. Defaults to true, since this call names a single item and unpublish_content reverses it. Pass false to keep it as a draft. Default:true.releaseDate(string, optional) — Optional ISO 8601 release date (must be in the past). Defaults to now.size(number, optional) — File size in bytes. Required for local file uploads — get this from filesystem stat before calling.sourceUrl(string, optional) — URL to download video from (enables single-call mode)summary(string, optional) — Video descriptionthumbnailFilename(string, optional) — Local thumbnail filename for upload. Returns a separate curl command for the thumbnail.thumbnailSize(number, optional) — Thumbnail file size in bytes. Required when thumbnailFilename is provided — get this from filesystem stat before calling.thumbnailUrl(string, optional) — URL of thumbnail image. Server downloads and attaches automatically.title(string, required) — Video titlevideoHint(string, optional) — Video presentation hint Accepted values:NONE,EQUIRECTANGULAR,PORTRAIT,SQUARE,CUBEMAP,STEREOSCOPIC. Default:NONE.
finalize_content_upload
Fallback: manually complete video publishing after file upload. Usually not needed — publish_video now auto-finalizes after upload. Use this only if auto-finalize failed or you need to override layout/enhance/publish settings.
MCP authentication: Required
Arguments
contentId(string, required) — Content DID from publish_video resultenhance(boolean, optional) — Enable AI upscaling/upmixing (Creator+ only) Default:false.layout(string, optional) — Content layout Accepted values:LANDSCAPE,PORTRAIT,VR. Default:LANDSCAPE.publish(boolean, optional) — Make the content publicly visible when the upload finishes. Defaults to true, since this call names a single item and unpublish_content reverses it. Pass false to keep it as a draft. Default:true.releaseDate(string, optional) — Optional ISO 8601 release date (must be in the past). Defaults to now.
import_youtube_and_publish
Legacy compatibility workflow. Creates an external YouTube reference, then attempts Rad publication. It does not copy or transcode source media. The required idempotencyKey makes matching retries return the original result instead of creating another content object.
MCP authentication: Required
Arguments
channel(string, optional) — Channel DID (optional)idempotencyKey(string, required) — Stable creator-scoped key for this operation and every retry. Reusing it with different input fails.publish(boolean, optional) — Make the content publicly visible when the upload finishes. Defaults to true, since this call names a single item and unpublish_content reverses it. Pass false to keep it as a draft. Default:true.videoId(string, required) — YouTube video ID
create_playlist_with_items
Create a playlist and populate it with content items in one call.
MCP authentication: Required
Arguments
channel(string, optional) — Channel DID (optional)contentIds(string[], optional) — Array of content DIDs to addsummary(string, optional) — Playlist descriptiontitle(string, required) — Playlist title
verify_connection
Agent "hello world" — verify auth, get user info, channel, subscription plan, permissions, and YouTube connection status. Call this first to confirm your API key works.
MCP authentication: Required
Arguments: None
channel_dashboard
Get a channel overview: channel info, the most recent content with transcode status, and playlists. Returns 10 content items by default, not the whole catalog; check hasMoreContent and raise contentLimit if you need more. Defaults to the authenticated user's channel.
MCP authentication: Required
Arguments
channel(string, optional) — Channel DID (optional, defaults to your channel)contentLimit(number, optional) — How many recent content items to return. Defaults to 10, capped at 100.
import_youtube_library
Create or resume a durable synchronization of external references from the connected YouTube library. It does not copy or transcode source media.
MCP authentication: Required
Arguments
autoPublish(boolean, optional) — Make synchronized external references publicly visible. Playback remains hosted by YouTube. Default:false.batchId(string, optional) — Batch ID returned by an earlier call; resumes its next or failed pagechannel(string, optional) — Channel DID (optional)maxResults(number, optional) — Videos to inspect in this page (default 12, maximum 50) Default:12.pageToken(string, optional) — YouTube page token when starting at a specific pagepublishedAfter(string, optional) — ISO date — only reference videos published after this date
get_workflow_operation
Read a durable creator workflow by operation ID. Returns its current stage, stage history, verified result or safe failure, expiry, and next supported action.
MCP authentication: Required
Arguments
operationId(string, required) — Opaque operation ID returned by publish_video or import_youtube_and_publish
wait_for_processing
Wait for video transcoding to complete. Polls server-side until the transcode job finishes, fails, or times out. Returns final job status.
MCP authentication: Required
Arguments
contentId(string, required) — Content DID to wait fortimeoutSeconds(number, optional) — Max seconds to wait (default 300) Default:300.
get_processing_status
Get current transcode job status without waiting. Returns status, progress, and job details immediately (non-blocking). Use this to check progress before deciding whether to call wait_for_processing.
MCP authentication: Required
Arguments
contentId(string, required) — Content DID to check
The full machine-readable tool listing is always available at GET https://api.rad.live/llms.txt.