Skip to main content
Glama

autoshort_publish_video

Idempotent

Publish one of the user's COMPLETED videos. YOUTUBE: uploads to the connected channel with your title/description and privacy (public, unlisted, private); the "altered or synthetic content" disclosure is always set; madeForKids is the user's COPPA answer (ask them for a kids audience); nothing is appended to the description unless addAttribution is true (default false — only when the user asked for "Made with AutoShort"). TIKTOK: sends the video to the creator's TikTok Drafts (inbox) — they add the caption, switch on the AI-generated label and post in the app; pass userConsent: true only after the user agreed. FACEBOOK / INSTAGRAM / THREADS: publishes publicly as a Facebook Page Reel, an Instagram Reel or a Threads video with your caption (or a default one); #AIGenerated is always added. Meta processes the video for a minute or more: the first call answers QUEUED, call again with the same arguments to read the status (POSTED with the url). A FAILED publish is retried only with retry: true. Idempotent per (videoId, platform): a repeat returns the first result and never posts twice. Respects platform caps (YouTube ≈5 uploads/day; TikTok's pending-drafts limit; Facebook 25, Instagram 25, Threads 50 posts/day). Not connected → NOT_CONNECTED with a connectUrl. Free.

Input Schema

NameRequiredDescriptionDefault
retryNoFacebook/Instagram/Threads only: publish again after a FAILED attempt (nothing was posted).
titleNoYouTube title (cleaned and cut to 60 characters on a word). Defaults to the video title.
captionNoFacebook/Instagram/Threads caption (Threads ≤500, Instagram ≤2,200 characters and 30 hashtags). Defaults to the video title and topic hashtags.
privacyNoYouTube visibility (default public).
videoIdYes
platformYes
descriptionNoYouTube description. #Shorts is added if missing.
madeForKidsNoYouTube COPPA declaration. Omit to use the series answer, or the niche default (false except KIDS_SONGS).
userConsentNoTikTok only: the user agreed to send this video to their TikTok drafts.
addAttributionNoYouTube only. Append "Made with AutoShort", a link to autoshort.org and #AutoShort to the description. Default false: set true ONLY if the user explicitly asked for it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses idempotency key (videoId, platform), the QUEUED/POSTED/FAILED async status flow for Meta, NOT_CONNECTED with connectUrl, per-platform rate caps (YouTube ≈5/day, Facebook 25, etc.), and that nothing is appended unless addAttribution. These are exactly the traits an agent needs and cannot infer from readOnlyHint/openWorldHint/idempotentHint.

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?

Dense but well-organized by platform (YOUTUBE / TIKTOK / FACEBOOK-INSTAGRAM-THREADS), with cross-cutting rules (idempotency, caps, NOT_CONNECTED) at the end. Long for a single tool, but nearly every clause carries actionable information; minor redundancy with schema param descriptions.

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

Completeness5/5

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

Despite no output schema, the description explains return values (QUEUED, POSTED with url, FAILED, NOT_CONNECTED with connectUrl) and the retry path, plus per-platform constraints. Nothing an agent needs to invoke it correctly across five platforms is missing.

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

Parameters4/5

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

Schema coverage is already 80%, so baseline is 3; the description adds genuine value by tying madeForKids to the COPPA/kids-audience question, framing userConsent as a consent gate, and clarifying addAttribution's default-off intent. It doesn't cover every param (e.g., caption limits are left to the schema), so not a 5.

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?

States a specific verb+resource: 'Publish one of the user's COMPLETED videos', then immediately disambiguates per platform (YouTube upload, TikTok drafts, Meta public Reels). This clearly separates it from siblings like draft_video, render_draft, and generate_video, and the 'COMPLETED' qualifier is a concrete precondition.

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?

Gives strong conditional guidance for optional params: retry only after a FAILED attempt, userConsent only after the user agreed, addAttribution only when the user asked for 'Made with AutoShort'. It doesn't explicitly route to an alternative sibling (e.g., draft_video for unfinished work), but the COMPLETED-video prerequisite does most of that work.

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.