Skip to main content
Glama

Create a post (draft or scheduled)

create_draft_post

Create a post in PurrPlan, attached to one or more connected social accounts. content takes either a string (a simple post — an empty line starts a new paragraph) or an ARRAY of strings whose first element is the post and whose following elements are published automatically AFTER it. What the second block becomes depends on the network: a THREAD (chained reply) on X/Twitter, Threads, Mastodon and Bluesky — a FIRST COMMENT on Facebook Page, Instagram and Instagram Direct, which automates the "link or call to action in the first comment" habit. On the other networks (LinkedIn, TikTok, YouTube, Pinterest, Reddit, Telegram, Google Business) the extra blocks are IGNORED and the response carries a warnings field. By default this creates a draft. Pass scheduled_at (ISO 8601 UTC) to schedule it instead; publication then happens at that time, not during this call. Media imported with upload_media_from_url can be attached (they go on the first block). options carries network-specific settings keyed by provider — for example {"threads": {"topic_tag": "buildinpublic"}} to post inside a Threads topic. Do not use this tool for a STORY: it creates a FEED post. Use create_stories, or pass options {"": {"type": "story"}} explicitly (Instagram, Instagram Direct, Facebook Page, Facebook extension). Without that option the post goes to the feed. — FR : crée un post (brouillon par défaut, programmé avec scheduled_at) ; post de FIL, pas une story.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYesTexte du post (appliqué à tous les comptes). String = post simple. Tableau de strings = post + suites : thread sur X/Threads/Mastodon/Bluesky, PREMIER COMMENTAIRE sur Facebook/Instagram, ignoré ailleurs (voir `warnings` dans la réponse).
optionsNoRéglages propres à un réseau, indexés par nom de provider (celui renvoyé par list_accounts). Exemple : {"threads": {"topic_tag": "buildinpublic"}}. Pour publier une STORY plutôt qu'un post de fil : {"facebook_page": {"type": "story"}} (valeurs post|reel|story sur Instagram, Instagram Direct et Facebook Page). Chaque réseau valide ses propres clés ; une clé inconnue ou un provider non ciblé par `account_ids` est refusé.
account_idsYesIDs numériques des comptes cibles (issus de list_accounts)
media_uuidsNoUUIDs des médias à attacher (obtenus via upload_media_from_url)
scheduled_atNoDate/heure UTC ISO 8601. Si fourni, programme le post au lieu de créer un brouillon.
workspace_uuidYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare the safety profile (readOnly=false, destructive=false, idempotent=false, openWorld=true); the description adds substantial independent behavior — draft-by-default vs deferred publication for scheduled posts, network-dependent treatment of extra content blocks, silent IGNORING on some networks, and the presence of a `warnings` field in the response. This is context the agent cannot derive from annotations.

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 content is dense and well front-loaded (purpose, then content semantics, then scheduling, then media/options, then exclusions), with no filler sentences. It is long for a tool description and the trailing French restatement duplicates information already given in English, which costs a point on tightness.

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?

For a mutating, nested-object tool with no output schema, the description covers creation mode, scheduling semantics, per-network side effects, media binding, option validation, and even flags the `warnings` response field. Nothing an agent needs to call it correctly is missing.

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

Parameters5/5

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

Schema coverage is already 83%, yet the description still adds real semantics: the string-vs-array duality of `content` and what the second element becomes per network, that media land on the first block, that `options` is keyed by provider name from list_accounts, and that unknown keys or un-targeted providers are rejected. This goes beyond restating schema text.

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?

Opens with a specific verb+resource ('Create a post in PurrPlan') and immediately scopes it to connected social accounts, then explicitly rules out stories and names create_stories as the sibling for that case. An agent can distinguish it from create_stories without reading either 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?

Explicitly states the default behavior (creates a draft), the alternative path (pass scheduled_at to schedule), the explicit exclusion (not for stories; use create_stories or the type:story option), and the media prerequisite via upload_media_from_url. When-to-use, when-not-to-use, and alternatives are all present.

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