MCP

Agent Workflows

Compound MCP tools designed for AI agent use — publish video, YouTube sync, and more.

The Rad TV MCP server includes 8 compound workflow tools that combine multiple operations into single calls. These are designed specifically for AI agents, reducing the number of tool calls and handling complex coordination automatically.

verify_connection

Start here. The agent "hello world" — confirms auth is working and shows what the agent can do.

{
  "name": "verify_connection",
  "arguments": {}
}

Returns: user info, channel, subscription plan, and a permissions array (content:create, content:publish, content:enhance, virality:predict).

channel_dashboard

Get a complete view of the user's channel: info, recent content with transcode status, and playlists.

{
  "name": "channel_dashboard",
  "arguments": {}
}

Returns: channel metadata, recent content (with transcodeJob status and outputAssets), and playlists. Useful for "show me my channel" requests.

publish_video

End-to-end video publishing. Supports two modes:

Mode 1: URL (server-side download)

{
  "name": "publish_video",
  "arguments": {
    "title": "My Video",
    "summary": "Description",
    "sourceUrl": "https://example.com/video.mp4",
    "contentType": "landscape",
    "enhance": true,
    "publish": true
  }
}

Server downloads the video, creates content, transcodes, and publishes.

Mode 2: Local file (upload)

{
  "name": "publish_video",
  "arguments": {
    "title": "My Video",
    "filename": "video.mp4",
    "size": 524288000,
    "contentType": "landscape",
    "publish": true
  }
}

Returns an upload endpoint and curl command. After upload completes, the server auto-finalizes (transcodes and publishes).

Arguments

ArgumentTypeRequiredDescription
titlestringYesContent title
summarystringNoDescription
channelDIDNoTarget channel (defaults to user's)
sourceUrlURLMode 1Video URL for server download
filenamestringMode 2Local file name
sizenumberMode 2File size in bytes
contentTypestringNolandscape, portrait, vr, short
layoutstringNoLANDSCAPE, PORTRAIT, VR
enhancebooleanNoAI upscaling + audio upmixing (Creator+)
publishbooleanNoAuto-publish after transcoding
releaseDatestringNoScheduled release (ISO 8601)
thumbnailUrlURLNoCustom thumbnail URL

finalize_content_upload

Fallback for Mode 2 publish_video if auto-finalize didn't trigger. Manually submits for transcoding and publishes.

{
  "name": "finalize_content_upload",
  "arguments": {
    "contentId": "did:rad.live:content/feature/123",
    "layout": "LANDSCAPE",
    "enhance": false,
    "publish": true
  }
}

import_youtube_and_publish

Import a YouTube video and optionally publish in one call:

{
  "name": "import_youtube_and_publish",
  "arguments": {
    "videoId": "dQw4w9WgXcQ",
    "publish": true
  }
}

import_youtube_library

Batch import from the connected YouTube account:

{
  "name": "import_youtube_library",
  "arguments": {
    "maxResults": 50,
    "publishedAfter": "2024-01-01",
    "autoPublish": true
  }
}

Returns count of imported, failed, and per-video results.

create_playlist_with_items

Create a playlist and add content in one call:

{
  "name": "create_playlist_with_items",
  "arguments": {
    "title": "My Playlist",
    "summary": "Curated collection",
    "contentIds": [
      "did:rad.live:content/feature/123",
      "did:rad.live:content/feature/456"
    ]
  }
}

wait_for_processing

Server-side blocking wait for transcode completion. Eliminates agent-side polling loops.

{
  "name": "wait_for_processing",
  "arguments": {
    "contentId": "did:rad.live:content/feature/123",
    "timeoutSeconds": 300
  }
}

Returns when the job completes, errors, or hits the timeout. The response includes the final job status and output assets if complete.

get_processing_status

Non-blocking status check — returns the current transcode state immediately.

{
  "name": "get_processing_status",
  "arguments": {
    "contentId": "did:rad.live:content/feature/123"
  }
}

When to Use Compound vs Individual Tools

Use compound tools when you want the simplest path to a result. publish_video handles 4-5 individual operations in one call.

Use individual tools when you need fine-grained control — for example, creating content first, then deciding whether to upload based on some condition before publishing.

ScenarioRecommended Tool
Publish a video from URLpublish_video (Mode 1)
Upload and publish local filepublish_video (Mode 2)
Import one YouTube videoimport_youtube_and_publish
Import many YouTube videosimport_youtube_library
Check what I can doverify_connection
Show my channel overviewchannel_dashboard
Wait for transcodingwait_for_processing
Quick status checkget_processing_status

On this page