Skip to main content
Glama

Schedule publish

schedule_publish
Destructive

Schedule a rendered video for the selected channel or connected accounts (TikTok, YouTube, Instagram, X, Facebook Pages, webhook). Pass scheduledTime to publish at an exact date and time; omit it to use the next open queue slot. Use list_social_accounts first to find ids and handles.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "videoUrl": "<videoUrl>"
    },
    "name": "schedule_publish"
  }
}

Input Schema

NameRequiredDescriptionDefault
xNoPost the video to a connected X (Twitter) account. Pick the destination from `list_social_accounts` (platform "x"): pass its id, or its username. Video must be 2:20 or shorter (10 min on X Premium), max 512 MB. Skip accounts with tokenInvalid: true and ask the user to reconnect them in Revid settings.
tiktokNoPost to a connected TikTok account: { id or username, title?, privacy_level? }.
webhookNoSend the video to a configured webhook: { id or username, title?, description? }.
youtubeNoPost to a connected YouTube channel: { id or username, title?, description? }.
facebookNoPost the video to a connected Facebook Page (Pages only, not personal profiles). Pick the destination from `list_social_accounts` (platform "facebook"): pass its id, or its name. Skip Pages with tokenInvalid: true and ask the user to reconnect them in Revid settings.
videoUrlYesPublic URL for the video to publish.
channelIdNoSaved Revid channel id (channels[].id from `list_social_accounts`). A channel bundles several accounts; mutually exclusive with per-platform accounts.
instagramNoPost to a connected Instagram account: { id or username, caption? }.
channelNameNoSaved Revid channel name (channels[].name from `list_social_accounts`).
extraParamsNoAdditional content metadata forwarded to Revid. extraParams.title and extraParams.description are the default caption/title/description for every destination; extraParams.thumbnailUrl the default cover. A default title longer than a destination's title limit (YouTube 100, webhook 100, Facebook 255 characters) is shortened for that destination, at a word boundary when possible; captions keep it whole. An explicit youtube.title, webhook.title or facebook.title over its limit is refused, never shortened.
scheduledTimeNoExact publish time. ISO 8601 with Z or an offset (e.g. 2026-10-04T18:00:00+02:00), ISO 8601 without offset (read in the account timezone, like the queue page), or unix seconds. Must be in the future and within 365 days. Omit to use the next open queue slot of the channel.

Output Schema

NameRequiredDescriptionDefault
okYes
dataNo
errorNo
methodYes
statusYes
endpointYes
retryAfterSecondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true. The description adds useful context that the action targets live social accounts and requires pre-fetched ids, but it does not spell out that scheduling is publicly visible and hard to undo, or that retrying may create duplicates — the traits the annotations flag as risky. With annotations present the bar is lower, but the gap for a destructive publish action is still meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, then destination options, then the scheduling-mode branch, then the prerequisite. No filler; the only slight inefficiency is that the platform list partly duplicates what the schema's property names already convey.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter tool with full schema coverage and an output schema, the description covers the core decision (scheduled time vs queue), the destination model, and the lookup prerequisite. The main missing piece is the relationship to publish_now and post-schedule lifecycle tools, which keeps it just short of complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the nested per-platform objects, limits and defaults are all documented there. The description only restates the scheduledTime semantics already in the schema and does not add per-platform or channel-vs-accounts exclusivity guidance beyond what the properties say. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Schedule a rendered video') and enumerates destination types (channel or connected accounts on TikTok, YouTube, Instagram, X, Facebook Pages, webhook). It does not name the closest sibling, publish_now, so an agent must infer the scheduled-vs-immediate distinction from the word 'Schedule' alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one concrete prerequisite ('Use `list_social_accounts` first to find ids and handles') and explains the scheduledTime branch (exact time vs next open queue slot). It never says when to use this instead of publish_now, nor points to get_publish_status or cancel_episode after scheduling, so the routing guidance is partial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources