Skip to main content
Glama

Schedule a video

schedule_post
DestructiveIdempotent

With several connected accounts, connectionId (from get_social_accounts) names the one the user chose. Schedules one video for external publication at postAt, from exactly one source: a Clypmint video (videoId, outputId, expectedEditId), an upload (mediaId) or a public link (mediaUrl). Requires the caption, platforms, IANA timezone and platform-specific choices. Instagram trial reel: platformOptions.INSTAGRAM {trial: true}. Returns a publishing receipt; pending acknowledgement is distinct from a confirmed schedule. Repeating operationId with identical arguments returns the original receipt.

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": {
      "platforms": "<platforms>",
      "caption": "<caption>",
      "postAt": "<postAt>",
      "timezone": "<timezone>",
      "operationId": "<operationId>"
    },
    "name": "schedule_post"
  }
}

Input Schema

NameRequiredDescriptionDefault
postAtYesWhen to post: an ISO time with offset, e.g. 2026-10-14T17:00:00-05:00.
captionYesThe caption the user approved.
mediaIdNoA file the user uploaded: media_id from upload_for_post. Instead of videoId.
videoIdNoThe video to post, from list_videos.
mediaUrlNoA public https link to the video file itself. Instead of videoId.
outputIdNoThe output to post (a hook, Short or shape), from check_video.
timezoneYesThe IANA time zone the user means, e.g. America/Chicago.
platformsYesWhere to post: INSTAGRAM, TIKTOK and/or YOUTUBE.
operationIdYesSame id retries run once.
connectionIdNoWhich connected account, from get_social_accounts; needed when there are several.
expectedEditIdNoThe version_id check_video showed the user, so a newer edit is never posted by mistake.
platformOptionsNoTikTok and YouTube settings, needed there. INSTAGRAM {trial: true, graduation: "auto"} posts a trial reel (non-followers first); graduation "manual" when the user will share it.

Output Schema

NameRequiredDescriptionDefault
codeNo
costNo
errorNo
stateNo
statusNo
dry_runNo
messageNo
plan_idNo
style_idNo
video_idNo
availableNo
import_idNo
output_idNo
studio_urlNo
version_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • removedInput schema / properties / connectionId / pattern
      Removed value: -"^(primary|sc_[a-f0-9]{24})$"
    • removedInput schema / properties / mediaId / pattern
      Removed value: -"^med_[a-f0-9]{24}$"
    • removedInput schema / properties / operationId / pattern
      Removed value: -"^[a-zA-Z0-9_.:-]{1,100}$"
    • removedInput schema / properties / outputId / pattern
      Removed value: -"^[a-z0-9-]{1,80}$"
    • removedInput schema / properties / videoId / pattern
      Removed value: -"^prj_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$"
  2. Added
  3. Removed
  4. Changed1 schema field changed
    • addedInput schema / properties / connectionId
      Added value: +{
      +  "pattern": "^(primary|sc_[a-f0-9]{24})$",
      +  "type": "string"
      +}
  5. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"https://json-schema.org/draft/2020-12/schema"New value: +"http://json-schema.org/draft-07/schema#"
  6. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "Clypmint schedule_post result. Error results carry error; successful requests expose the identifiers and state available for the next step. Signed media stays in private metadata.",
      +  "properties": {
      +    "available": {
      +      "type": "boolean"
      +    },
      +    "code": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "cost": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "dry_run": {
      +      "type": "boolean"
      +    },
      +    "error": {
      +      "type": "string"
      +    },
      +    "import_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "output_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "plan_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "state": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "status": {
      +      "type": [
      +        "string",
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "studio_url": {
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    "style_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "version_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "video_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  7. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare idempotentHint and destructiveHint, but the description adds real substance: a publishing receipt is returned, a pending acknowledgement is distinct from a confirmed schedule, and retrying operationId with identical arguments returns the original receipt rather than republishing. It does not spell out that publication is externally visible and only reversible through cancel_post, which is the main remaining gap for a destructive write.

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?

The text is dense and mostly front-loaded, though it opens with the connectionId caveat rather than the core action. One sentence ("Requires the caption, platforms, IANA timezone and platform-specific choices") largely restates schema required fields and could be dropped, but overall every other sentence carries information.

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?

This is a complex tool with 12 parameters, a nested platformOptions object, and an output schema, and the description covers the source-selection rule, per-platform option requirements, idempotency, and receipt semantics. The only shortfall is not stating the externally visible, hard-to-undo nature of publication and how to reverse it.

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 coverage is 100%, so the schema already documents each of the 12 parameters, and the baseline of 3 applies. The description contributes useful meaning beyond the schema by stating the source fields are mutually exclusive ("from exactly one source") and by explaining the trial/graduation interplay, but it does not clarify optional-versus-required combinations further.

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

Purpose5/5

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

"Schedules one video for external publication at postAt" states a specific verb, resource, and timing, and it enumerates the three mutually exclusive input sources (Clypmint video via videoId/outputId/expectedEditId, upload via mediaId, public link via mediaUrl). An agent can distinguish this scheduling action from upload or edit tools without opening the schema.

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

Usage Guidelines4/5

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

It gives concrete routing rules: use connectionId when several accounts are connected, pick exactly one of the three source modes, and use platformOptions.INSTAGRAM {trial: true} for a trial reel with graduation "manual" when the user will share it. It does not say when to prefer this over schedule_plan, update_post, or cancel_post, so it stops short of full alternative routing.

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