Skip to main content
Glama

Create Post Draft

autoposter_draft_post

Creates a draft post for human review. If API key lacks direct publish, post is saved as pending_approval and notifications are sent to workspace approvers. Accepts mediaUrls (public URLs) or files (AI-generated images or uploaded files from chat up to 100MB). For large video files over 100MB, tell the user to provide a direct public file URL or use autoposter_get_media_upload_url.

Input Schema

NameRequiredDescriptionDefault
filesNoOptional files generated in chat or uploaded by user to attach to the post.
contentYesBase text content of the post.
mediaIdsNoOptional list of existing media IDs from workspace media library (from autoposter_list_media).
postTypeNoOptional target format where applicable: 'post' (default feed post/carousel), 'reel' (Instagram or Facebook Reel; requires video), 'story' (Instagram or Facebook 24h Story; requires image or video), or 'shorts' (YouTube Shorts; vertical video under 60s). Ignored on platforms without format variants.
mediaUrlsNoOptional public image or video URLs to attach (e.g. from autoposter_upload_media).
accountIdsYesList of account IDs from autoposter_list_accounts.
platformContentNoOptional platform-specific content overrides (e.g. twitter, linkedin).

Output Schema

NameRequiredDescriptionDefault
messageYesStatus message indicating draft creation.
draftPostsYesList of created draft posts per account.
instructionsNoInstructions for approving or viewing the draft.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / postType
      Added value: +{
      +  "description": "Optional target format where applicable: 'post' (default feed post/carousel), 'reel' (Instagram or Facebook Reel; requires video), 'story' (Instagram or Facebook 24h Story; requires image or video), or 'shorts' (YouTube Shorts; vertical video under 60s). Ignored on platforms without format variants.",
      +  "enum": [
      +    "post",
      +    "reel",
      +    "story",
      +    "shorts"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / draftPosts / items / properties / postType
      Added value: +{
      +  "description": "Target format ('post', 'reel', 'story', or 'shorts').",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "draftPosts": {
      +      "description": "List of created draft posts per account.",
      +      "items": {
      +        "properties": {
      +          "accountName": {
      +            "description": "Target account name.",
      +            "type": "string"
      +          },
      +          "id": {
      +            "description": "Draft post ID.",
      +            "type": "string"
      +          },
      +          "platform": {
      +            "description": "Target social media platform.",
      +            "type": "string"
      +          },
      +          "scheduledAt": {
      +            "description": "Scheduled timestamp if any.",
      +            "type": "string"
      +          },
      +          "status": {
      +            "description": "Current post status (drafts or pending_approval).",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "platform",
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "instructions": {
      +      "description": "Instructions for approving or viewing the draft.",
      +      "type": "string"
      +    },
      +    "message": {
      +      "description": "Status message indicating draft creation.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "message",
      +    "draftPosts"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Adds real context beyond annotations: the approval workflow (pending_approval + notifications to approvers), media size limit (100MB), and the fallback to a public URL. Annotations cover safety (readOnlyHint=false, destructiveHint=false, openWorldHint=true), so the description's role is to add workflow detail, which it does well.

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?

Four sentences, well front-loaded: core behavior first, then approval fallback, then media rules, then escalation path. Only minor redundancy in restating the URL alternative, but no filler.

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?

Covers creation behavior, approval flow, media constraints, and escalation for large files. An output schema exists, so return values need not be described. For a 7-param tool with nested objects, it leaves minor gaps (e.g., platformContent override details) but is otherwise sufficient.

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 100%, so the baseline is 3; the description adds practical semantics by clarifying mediaUrls' 100MB limit and the files alternative ('AI-generated images or uploaded files from chat'), which goes beyond the schema.

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 ('Creates a draft post') and distinguishes from siblings like autoposter_publish_draft by emphasizing human review. The pending_approval fallback and media-acceptance rules make the intent unmistakable.

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 routes large-media cases to autoposter_get_media_upload_url, and explains the alternative path (public URL) when the 100MB limit is exceeded. It also clarifies when the post becomes pending_approval, giving clear when-to-use guidance.

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