Skip to main content
Glama

Publish or schedule a post

create_post
Destructive

Publishes a post, or schedules one to be published. This is not how a draft is saved: use save_draft for that, which needs no confirmation. Publishes immediately by default; pass scheduledTime for a specific moment, or useNextFreeSlot to take the next opening in the calendar. Use variants to word the same post differently per platform. To publish something you saved with save_draft, pass its postId and the draft becomes the post rather than a second copy of it. altText is not supported for Instagram Reels; ignored for Instagram video posts.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "create_post"
  }
}

Input Schema

NameRequiredDescriptionDefault
textNoThe post body. Per-platform limits apply; see variants to differ by platform. Leave it out when publishing an existing draft by postId: the draft already has its words.
titleNoInternal title, never published.
postIdNoA draft to publish, by its id or by the number shown to the user (#1). Its text, pictures and per-platform wording are used unless you pass your own.
threadNoContinuations, posted as replies to the first one. X and Threads only; other platforms ignore them.
mediaIdsNoMedia ids from an upload tool.
variantsNoPer-platform overrides, keyed by platform name.
destinationsNoWhere to publish. Leave it out when publishing a draft by postId: it goes to the connected account for each platform the draft was written for.
scheduledTimeNoISO 8601 instant to publish at.
platformTargetsNoSettings per platform, keyed by platform, applied to that platform's destination - also when publishing a draft by postId. TikTok needs privacyLevel chosen by the user (read the options with get_tiktok_settings, ask, never pick one yourself), and the interaction and commercial-content choices they made. YouTube needs a title, privacyStatus and isMadeForKids, all asked of the user (get_youtube_settings shows the channel); the video must be vertical or square and at most 3 minutes, which makes it a Short.
useNextFreeSlotNoTake the next free opening in the calendar.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, openWorldHint=true, idempotentHint=false, so the safety profile is carried elsewhere. The description still adds real behavior: publishing a draft by postId converts the draft rather than creating a duplicate, per-platform requirements exist (YouTube title/privacyStatus/isMadeForKids, TikTok privacyLevel) and platform-specific unsupported fields (altText on IG Reels) are called out. It does not discuss partial-failure behavior across multiple destinations or that a repeat call creates a second live post, which is the main remaining gap.

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?

Front-loaded with the core action and the key exclusion, and roughly 110 words for 10 parameters with nested objects is economical. The structure is a single dense paragraph, and the closing altText note duplicates the schema text word-for-word rather than earning space.

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 a 10-parameter, zero-required, destructive, open-world tool with nested variants/destinations and no output schema, the description covers the decision space well: timing modes, draft conversion, and platform prerequisites. It never says what a successful call returns (e.g. the created post id/status), which an agent needs to chain into get_post or get_post_status.

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 description coverage is 100%, so the baseline is 3; the description still adds meaning by explaining that variants are per-platform rewordings of the same post and that postId suppresses the need for text/destinations. The altText sentence is a verbatim restatement of the schema field description, so not all of it is net-new.

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 first sentence names a specific verb (Publishes) and resource (a post), plus the scheduling variant, so the tool's scope is unambiguous. The second sentence explicitly distinguishes it from save_draft, which the agent might otherwise confuse with it.

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?

It states when not to use it (saving a draft -> save_draft, "which needs no confirmation") and enumerates the mutually exclusive timing modes: immediate by default, scheduledTime for a moment, useNextFreeSlot for the next opening. It also covers the alternative entry path for publishing an existing draft by postId.

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