Skip to main content
Glama

Create a post draft

create_post_draft
Idempotent

Create a new draft post for a platform. Drafts are not auto-published. When the user has multiple connected channels for the same platform (e.g. three Twitter accounts), pass channelName (e.g. "@bogdanvazzolla") to target a specific one — call list_connected_accounts first to see the available handles. You can also pass the account providerId (with or instead of channelName): it still identifies the account after its handle changes. Pass clientRequestId for idempotent retries within 5 minutes. For an Instagram draft with exactly one video in mediaUrls, pass instagramTrialReel ("auto" or "manual") to publish it as a trial reel shown to non-followers first; "auto" lets Instagram share it with followers if it performs well; the video URL must end in .mp4, .mov or .avi with no query string, which is how PostNext recognises a video. Returns dashboardUrl — a clickable link to view/edit the draft in the PostNext dashboard.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYes
platformYes
mediaUrlsNo
providerIdNo
channelNameNo
clientRequestIdNo
instagramTrialReelNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
postIdYes
statusYes
platformYes
createdAtNo
dashboardUrlYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / instagramTrialReel
      Added value: +{
      +  "enum": [
      +    "auto",
      +    "manual"
      +  ],
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / providerId
      Added value: +{
      +  "maxLength": 256,
      +  "minLength": 1,
      +  "type": "string"
      +}
  3. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, but the description adds context annotations cannot carry: drafts are not auto-published, the idempotency window is 5 minutes, the video-URL format PostNext requires, and the trial-reel follower/non-follower behaviour. This is substantive behavioral disclosure well beyond structured fields.

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-loads the core action, then layers conditional guidance in a logical order. The Instagram trial-reel sentence is long but each clause carries a real constraint; still, the paragraph is dense enough that a short bulleted structure would scan faster.

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 7-parameter conditional tool with an output schema, this covers everything an agent needs: required platform/content, account targeting, idempotency, and the conditional media rule. The output schema handles return values, and the description still names dashboardUrl for convenience.

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 0%, so the description must carry the load, and it does for the non-obvious parameters: channelName vs providerId precedence, clientRequestId semantics, and instagramTrialReel's enum meanings plus the mediaUrls video constraint. It does not cover content length limits or the mediaUrls max of 10, so it is strong but not exhaustive.

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 ('Create a new draft post') and immediately scopes it against siblings by noting drafts are not auto-published, which distinguishes it from schedule_post. An agent can tell what this 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?

Gives explicit routing conditions: call list_connected_accounts first when multiple channels exist for one platform, pass channelName/providerId to target an account, use clientRequestId for idempotent retries within 5 minutes, and the precise precondition for instagramTrialReel (Instagram + exactly one video). Nothing about when to use it is left to inference.

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