Skip to main content
Glama

katto_publish_clip

Destructive

Publishes a finished clip to a connected social account now or up to 7 days ahead, supporting YouTube, TikTok, LinkedIn, Instagram, Bluesky, Mastodon, and Threads.

Instructions

Publish a finished clip to one of the user's connected social accounts (YouTube, TikTok, LinkedIn, Instagram, Bluesky, Mastodon, Threads), now or at schedule_at (future, at most 7 days ahead). Call katto_list_connected_accounts first to see which platforms are connected (and not in need of a reconnect); katto_generate_post_text can draft the caption. This posts PUBLICLY on the user's behalf and cannot be undone from Katto: before calling, show the user the clip, the platform, the caption (and TikTok privacy level) and get their explicit confirmation; never publish on your own initiative or retry a publish blindly (each call is a new post). Requires a paid plan; scheduling requires Creator. If the platform is not connected you get an error with code platform_not_connected and a connect_url: ask the user to connect it in the Katto dashboard, then retry. TikTok requires privacy_level chosen by the user (no default) and disclosure of commercial content (brand_content / brand_organic); until Katto's TikTok app is audited, TikTok only accepts posts to a private account. Returns { status: 'published', result } or { status: 'scheduled', scheduled_post_id, scheduled_at }.

Input Schema

NameRequiredDescriptionDefault
idYesJob id.
tagsNoYouTube tags.
titleNoYouTube video title (max 100 characters). Defaults to the caption, then the clip's title.
captionNoPost text. On YouTube it is used as the title and description unless title/description are given.
platformYesWhere to post. The account must already be connected in the Katto dashboard.
clip_indexYes0-based clip index.
descriptionNoYouTube description. Defaults to the caption.
schedule_atNoOptional ISO 8601 date-time to publish later instead of now (future, at most 7 days ahead). Scheduling is a Creator feature.
disable_duetNoTikTok only: turn duets off.
brand_contentNoTikTok only: the post is a paid partnership (labelled 'Paid partnership'; cannot be SELF_ONLY).
brand_organicNoTikTok only: the post promotes the user's own business (labelled 'Promotional content').
privacy_levelNoTikTok only, REQUIRED for TikTok: who can see the post. Must be chosen by the user, never assumed.
disable_stitchNoTikTok only: turn stitches off.
privacy_statusNoYouTube visibility (defaults to public).
disable_commentNoTikTok only: turn comments off.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.6.1

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the provided annotations (destructiveHint=true, idempotentHint=false, openWorldHint=true), the description discloses critical behavioral traits: posts PUBLICLY on the user's behalf, cannot be undone from Katto, each call produces a new post, and blind retries are dangerous. It also documents error handling (platform_not_connected with connect_url) and TikTok-specific constraints (privacy_level required, audit-related private-account limitation).

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

Conciseness5/5

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

The description is front-loaded with the core action and platform list, then progresses to prerequisites, safety warnings, error handling, and platform-specific details. Every sentence contributes meaningfully to safe and correct invocation, and the structure is logical despite the length. Nothing appears redundant or wasteful.

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?

Given the tool's high-stakes, destructive, and open-world nature, the description covers all necessary context: when to call, safety requirements, error recovery, platform-specific rules, plan limits, and even return shapes. No output schema exists, but the description explicitly states the return payloads for published and scheduled outcomes. An agent has enough information to use the tool correctly and responsibly.

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%, so the schema already documents all 15 parameters in detail, including defaults and platform-specific fields. The description adds some contextual constraints (schedule_at max 7 days, TikTok privacy_level must be user-chosen, brand content disclosure), but these largely overlap with the schema. With the schema carrying the parameter burden, a baseline 3 is appropriate.

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?

The description opens with a specific verb and resource: 'Publish a finished clip to one of the user's connected social accounts', and enumerates the supported platforms. It clearly distinguishes the action from sibling tools like katto_create_clip_job, katto_generate_post_text, and katto_list_connected_accounts by focusing on the publish step. An agent can immediately tell what this tool does 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 Guidelines5/5

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

The description gives explicit when-to-use guidance: call katto_list_connected_accounts first, optionally use katto_generate_post_text, and require explicit user confirmation before publishing. It also states when-not-to-use in strong terms: 'never publish on your own initiative or retry a publish blindly (each call is a new post)'. Prerequisites such as paid plan and Creator-only scheduling are explicitly noted.

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