Skip to main content
Glama

Create post

create_post
Destructive

Create a post: per-platform captions, optional prompt, optional scheduled_at (ISO, future), optional media_urls (strings). Without scheduled_at or draft, this publishes immediately to the connected social platforms. Set draft: true to save it for the user to review in Fuxux instead; nothing is published. TikTok posts go to the creator's TikTok inbox unless the target has tiktok_privacy_level, which the user must choose.

Input Schema

NameRequiredDescriptionDefault
draftNoSave as a draft instead of publishing or scheduling (can't be combined with scheduled_at)
promptNoOptional note on the idea behind the post (max 500 chars). Stored with the post for reference; it is not published.
targetsNoWhich accounts to post to. Without it, each captioned platform posts to its first connected account. Reddit isn't supported.
captionsYesMap of platform id to caption text. Platform ids: twitter, instagram, linkedin, facebook, tiktok, youtube, bluesky, threads, pinterest, discord, kick, twitch, telegram, slack
media_urlsNoUp to 4 public https image/video URLs to attach
scheduled_atNoISO datetime with a time zone (Z or an offset such as +01:00; convert the user's local time first); if set, post is scheduled instead of published immediately

Output Schema

NameRequiredDescriptionDefault
postYesThe created post
resultsNoPer-platform outcome; present only when published immediately

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / targets / items / properties / instagram_trial_reel
      Added value: +{
      +  "description": "instagram only, one video: post it as a trial Reel, shown to non-followers first. manual: the user shares it to followers from the Instagram app; auto: Instagram shares it if it performs well.",
      +  "enum": [
      +    "manual",
      +    "auto"
      +  ],
      +  "type": "string"
      +}
  2. Changed4 schema fields changed
    • addedInput schema / properties / targets / items / properties / tiktok_allow_comments
      Added value: +{
      +  "description": "tiktok only, with tiktok_privacy_level: true lets people comment. Off unless the user asks for it.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / targets / items / properties / tiktok_allow_duet
      Added value: +{
      +  "description": "tiktok video only, with tiktok_privacy_level: true allows Duets. Off unless the user asks for it.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / targets / items / properties / tiktok_allow_stitch
      Added value: +{
      +  "description": "tiktok video only, with tiktok_privacy_level: true allows Stitches. Off unless the user asks for it.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / targets / items / properties / tiktok_privacy_level
      Added value: +{
      +  "description": "tiktok only: who can see the post. Set it to publish directly to the profile; leave it out and the post goes to the creator's TikTok inbox to finish in the app. Never choose this yourself: ask the user who should see it, and only pass the value they picked. It must be one of the account's allowed levels (a private account can't use PUBLIC_TO_EVERYONE).",
      +  "enum": [
      +    "PUBLIC_TO_EVERYONE",
      +    "MUTUAL_FOLLOW_FRIENDS",
      +    "FOLLOWER_OF_CREATOR",
      +    "SELF_ONLY"
      +  ],
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • addedInput schema / properties / targets / items / properties / alt_text
      Added value: +{
      +  "description": "pinterest only: the image description read by screen readers (up to 500 characters)",
      +  "maxLength": 500,
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / targets / description
      Previous value: -"Which accounts to post to. Without it, each captioned platform posts to its first connected account. Reddit is not available here: Reddit posts are created in the Fuxux web app only."New value: +"Which accounts to post to. Without it, each captioned platform posts to its first connected account. Reddit isn't supported."
  5. Changed3 schema fields changed
    • removedOutput schema / properties / post / properties / scheduled_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / post / properties / scheduled_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / results / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": {},
      -      "properties": {
      -        "account_id": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "account_label": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "error": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "inbox_pending": {
      -          "anyOf": [
      -            {
      -              "type": "boolean"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "platform": {
      -          "type": "string"
      -        },
      -        "platform_post_id": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "still_processing": {
      -          "anyOf": [
      -            {
      -              "type": "boolean"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "success": {
      -          "type": "boolean"
      -        }
      -      },
      -      "required": [
      -        "platform",
      -        "success"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "account_id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "account_label": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "error": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "inbox_pending": {
      +          "type": [
      +            "boolean",
      +            "null"
      +          ]
      +        },
      +        "platform": {
      +          "type": "string"
      +        },
      +        "platform_post_id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "still_processing": {
      +          "type": [
      +            "boolean",
      +            "null"
      +          ]
      +        },
      +        "success": {
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "platform",
      +        "success"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  6. Changed1 schema field changed
    • changedInput schema / properties / scheduled_at / description
      Previous value: -"ISO datetime; if set, post is scheduled instead of published immediately"New value: +"ISO datetime with a time zone (Z or an offset such as +01:00; convert the user's local time first); if set, post is scheduled instead of published immediately"
  7. Changed2 schema fields changed
    • changedInput schema / properties / captions / description
      Previous value: -"Map of platform id to caption text. Platform ids: twitter, instagram, linkedin, facebook, tiktok, youtube, bluesky, threads, pinterest, discord, kick, twitch"New value: +"Map of platform id to caption text. Platform ids: twitter, instagram, linkedin, facebook, tiktok, youtube, bluesky, threads, pinterest, discord, kick, twitch, telegram, slack"
    • changedInput schema / properties / targets / items / properties / platform / enum
      Previous value: -[
      -  "twitter",
      -  "instagram",
      -  "linkedin",
      -  "facebook",
      -  "tiktok",
      -  "youtube",
      -  "bluesky",
      -  "threads",
      -  "pinterest",
      -  "discord",
      -  "kick",
      -  "twitch"
      -]New value: +[
      +  "twitter",
      +  "instagram",
      +  "linkedin",
      +  "facebook",
      +  "tiktok",
      +  "youtube",
      +  "bluesky",
      +  "threads",
      +  "pinterest",
      +  "discord",
      +  "kick",
      +  "twitch",
      +  "telegram",
      +  "slack"
      +]
  8. Changed2 schema fields changed
    • changedInput schema / properties / captions / description
      Previous value: -"Map of platform id to caption text. Platform ids: twitter, instagram, linkedin, facebook, tiktok, youtube, bluesky, threads, pinterest, google-business, discord, kick, twitch"New value: +"Map of platform id to caption text. Platform ids: twitter, instagram, linkedin, facebook, tiktok, youtube, bluesky, threads, pinterest, discord, kick, twitch"
    • changedInput schema / properties / targets / items / properties / platform / enum
      Previous value: -[
      -  "twitter",
      -  "instagram",
      -  "linkedin",
      -  "facebook",
      -  "tiktok",
      -  "youtube",
      -  "bluesky",
      -  "threads",
      -  "pinterest",
      -  "google-business",
      -  "discord",
      -  "kick",
      -  "twitch"
      -]New value: +[
      +  "twitter",
      +  "instagram",
      +  "linkedin",
      +  "facebook",
      +  "tiktok",
      +  "youtube",
      +  "bluesky",
      +  "threads",
      +  "pinterest",
      +  "discord",
      +  "kick",
      +  "twitch"
      +]
  9. Changed5 schema fields changed
    • changedInput schema / properties / captions / description
      Previous value: -"Map of platform id to caption text. Platform ids: twitter, instagram, linkedin, facebook, tiktok, youtube, bluesky, threads, pinterest, google-business, reddit, discord, kick, twitch"New value: +"Map of platform id to caption text. Platform ids: twitter, instagram, linkedin, facebook, tiktok, youtube, bluesky, threads, pinterest, google-business, discord, kick, twitch"
    • changedInput schema / properties / targets / description
      Previous value: -"Which accounts to post to. Without it, each captioned platform posts to its first connected account. Required for reddit (subreddit)."New value: +"Which accounts to post to. Without it, each captioned platform posts to its first connected account. Reddit is not available here: Reddit posts are created in the Fuxux web app only."
    • removedInput schema / properties / targets / items / properties / flair_id
      Removed value: -{
      -  "description": "reddit only: post flair id, if the subreddit requires one",
      -  "type": "string"
      -}
    • changedInput schema / properties / targets / items / properties / platform / enum
      Previous value: -[
      -  "twitter",
      -  "instagram",
      -  "linkedin",
      -  "facebook",
      -  "tiktok",
      -  "youtube",
      -  "bluesky",
      -  "threads",
      -  "pinterest",
      -  "google-business",
      -  "reddit",
      -  "discord",
      -  "kick",
      -  "twitch"
      -]New value: +[
      +  "twitter",
      +  "instagram",
      +  "linkedin",
      +  "facebook",
      +  "tiktok",
      +  "youtube",
      +  "bluesky",
      +  "threads",
      +  "pinterest",
      +  "google-business",
      +  "discord",
      +  "kick",
      +  "twitch"
      +]
    • removedInput schema / properties / targets / items / properties / subreddit
      Removed value: -{
      -  "description": "reddit only: subreddit name without r/ (required for reddit)",
      -  "type": "string"
      -}
  10. Changed1 schema field changed
    • addedInput schema / properties / targets / items / properties / board_id
      Added value: +{
      +  "description": "pinterest only: board id to pin to; defaults to the account's first public board",
      +  "type": "string"
      +}
  11. Changed2 schema fields changed
    • changedInput schema / properties / captions / description
      Previous value: -"Map of platform id to caption text"New value: +"Map of platform id to caption text. Platform ids: twitter, instagram, linkedin, facebook, tiktok, youtube, bluesky, threads, pinterest, google-business, reddit, discord, kick, twitch"
    • addedInput schema / properties / targets
      Added value: +{
      +  "description": "Which accounts to post to. Without it, each captioned platform posts to its first connected account. Required for reddit (subreddit).",
      +  "items": {
      +    "properties": {
      +      "account_id": {
      +        "description": "Connected account id from list_connected_accounts",
      +        "format": "uuid",
      +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +        "type": "string"
      +      },
      +      "flair_id": {
      +        "description": "reddit only: post flair id, if the subreddit requires one",
      +        "type": "string"
      +      },
      +      "format": {
      +        "description": "instagram and facebook only; defaults to feed",
      +        "enum": [
      +          "feed",
      +          "story"
      +        ],
      +        "type": "string"
      +      },
      +      "platform": {
      +        "description": "That account's platform; needs a caption in captions",
      +        "enum": [
      +          "twitter",
      +          "instagram",
      +          "linkedin",
      +          "facebook",
      +          "tiktok",
      +          "youtube",
      +          "bluesky",
      +          "threads",
      +          "pinterest",
      +          "google-business",
      +          "reddit",
      +          "discord",
      +          "kick",
      +          "twitch"
      +        ],
      +        "type": "string"
      +      },
      +      "subreddit": {
      +        "description": "reddit only: subreddit name without r/ (required for reddit)",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "account_id",
      +      "platform"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  12. Changed1 schema field changed
    • addedInput schema / properties / draft
      Added value: +{
      +  "description": "Save as a draft instead of publishing or scheduling (can't be combined with scheduled_at)",
      +  "type": "boolean"
      +}
  13. Changed3 schema fields changed
    • addedInput schema / properties / media_urls / description
      Added value: +"Up to 4 public https image/video URLs to attach"
    • addedInput schema / properties / prompt / description
      Added value: +"Optional note on the idea behind the post (max 500 chars). Stored with the post for reference; it is not published."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "post": {
      +      "additionalProperties": {},
      +      "description": "The created post",
      +      "properties": {
      +        "id": {
      +          "type": "string"
      +        },
      +        "scheduled_at": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "status": {
      +          "description": "draft | scheduled | published | failed",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "status"
      +      ],
      +      "type": "object"
      +    },
      +    "results": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "account_id": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "account_label": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "error": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "inbox_pending": {
      +                "anyOf": [
      +                  {
      +                    "type": "boolean"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "platform": {
      +                "type": "string"
      +              },
      +              "platform_post_id": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "still_processing": {
      +                "anyOf": [
      +                  {
      +                    "type": "boolean"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "success": {
      +                "type": "boolean"
      +              }
      +            },
      +            "required": [
      +              "platform",
      +              "success"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Per-platform outcome; present only when published immediately"
      +    }
      +  },
      +  "required": [
      +    "post"
      +  ],
      +  "type": "object"
      +}
  14. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations flag destructiveHint=true and openWorldHint=true, but the description adds the concrete consequence: the post goes live on connected social platforms right away unless draft or scheduled_at is set. It also discloses the TikTok-specific behavior (goes to the creator's inbox unless tiktok_privacy_level is supplied) and that the agent must not choose privacy level itself.

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 resource and fields, then the publishing behavior, then platform caveats — a sensible ordering. The final TikTok sentence is dense and slightly convoluted, but each clause carries distinct operational information.

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 mutation tool with a nested targets object and an output schema, the description covers the critical decisions (publish vs draft vs schedule, TikTok privacy handoff, media limits). It leaves the targets default behavior to the schema, which is acceptable given full coverage there.

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 coverage is 100%, so every parameter already has documentation; the description largely restates it (prompt optional, media_urls as strings, scheduled_at ISO and future). It adds a little prioritization by calling out the publish-vs-draft-vs-schedule interaction, but no new semantics for nested target fields.

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") and immediately enumerates what a post is composed of: per-platform captions, optional prompt, optional scheduled_at, optional media_urls. The verb alone separates it cleanly from the sibling update_post and delete_post.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Gives explicit mode-selection rules: no scheduled_at and no draft means immediate publishing, draft:true means nothing is published, and scheduled_at means scheduling. It does not name siblings (e.g. use update_post to edit an existing post), so the when-not-to-use side is only implied.

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