Skip to main content
Glama

update_post

Destructive

Update a scheduled or draft post. You can change the caption, schedule time, accounts, or media.

Input Schema

NameRequiredDescriptionDefault
idYesThe post ID to update
mediaNoNew array of media IDs
captionNoNew caption text
is_draftNoSet draft status
media_urlsNoNew array of public media URLs
scheduled_atNoNew scheduled datetime (ISO 8601)
social_accountsNoNew array of social account IDs
account_configurationsNo
platform_configurationsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / platform_configurations / properties / youtube / description
      Previous value: -"YouTube overrides. title sets the video title; thumbnail applies to long-form videos only."New value: +"YouTube overrides. title sets the video title; thumbnail sets a custom thumbnail (Shorts and long-form)."
    • changedInput schema / properties / platform_configurations / properties / youtube / properties / thumbnail / description
      Previous value: -"Media ID of an uploaded image to use as the video thumbnail. Upload the image first (upload_media), then pass its ID here. Regular/long-form videos only — YouTube ignores custom thumbnails on Shorts. The channel must be verified; image should be JPEG/PNG, 1280x720, under 2MB. A thumbnail that fails to apply won't fail the post."New value: +"Media ID of an uploaded image to use as the video thumbnail. Upload the image first (upload_media), then pass its ID here. Works on Shorts and long-form videos. The channel must be verified; image should be JPEG/PNG, 1280x720, under 2MB. A thumbnail that fails to apply won't fail the post."
  2. Changed3 schema fields changed
    • changedInput schema / properties / platform_configurations / properties / threads / properties / thread / description
      Previous value: -"Turns the post into a multi-post thread: each string is published as a reply to the one before it, in order, under the main post. Text only, up to 25 entries, each trimmed to 500 chars. Links are allowed in thread entries. If an entry fails the chain stops there; the main post still publishes."New value: +"Turns the post into a multi-post thread: each entry is published as a reply to the one before it, in order, under the main post. An entry is a string, or { text, media } to attach media IDs (up to 20 images or videos) to that post. Up to 25 entries, each trimmed to 500 chars. Links are allowed in thread entries. If an entry fails the chain stops there; the main post still publishes."
    • addedInput schema / properties / platform_configurations / properties / threads / properties / thread / items / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "media": {
      +        "description": "Media IDs for this post: up to 20 images or videos (2+ post as a carousel).",
      +        "items": {
      +          "type": "string"
      +        },
      +        "maxItems": 20,
      +        "type": "array"
      +      },
      +      "text": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / platform_configurations / properties / threads / properties / thread / items / type
      Removed value: -"string"
  3. Changed3 schema fields changed
    • changedInput schema / properties / platform_configurations / properties / twitter / properties / thread / description
      Previous value: -"Turns the post into a multi-post thread: each string is published as a reply to the one before it, in order, under the main post. Text only, up to 25 entries, each trimmed to 280 chars (25,000 for X Premium accounts). Links are allowed in thread entries. If an entry fails the chain stops there; the main post still publishes."New value: +"Turns the post into a multi-post thread: each entry is published as a reply to the one before it, in order, under the main post. An entry is a string, or { text, media } to attach media IDs (up to 4 images or 1 video) to that tweet. Up to 25 entries, each trimmed to 280 chars (25,000 for X Premium accounts). Links are allowed in thread entries. If an entry fails the chain stops there; the main post still publishes."
    • addedInput schema / properties / platform_configurations / properties / twitter / properties / thread / items / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "media": {
      +        "description": "Media IDs for this tweet: up to 4 images, or 1 video.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "maxItems": 4,
      +        "type": "array"
      +      },
      +      "text": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / platform_configurations / properties / twitter / properties / thread / items / type
      Removed value: -"string"
  4. Changed1 schema field changed
    • changedInput schema / properties / platform_configurations / properties / instagram / properties / audio_id / description
      Previous value: -"Reels only. Attach a track from Instagram's music library (or an original sound) to the reel: an audio_id from search_instagram_audio. ONLY works for Instagram accounts connected through Facebook login (supports_instagram_music: true in list_social_accounts); accounts connected with Instagram login are rejected with a clear error, because Meta only offers music on the Facebook-login API. Ignored for photos, carousels and stories. Reels with music cannot be previewed before they publish."New value: +"Reels only. Attach a track from Instagram's music library (or an original sound) to the reel: an audio_id from search_instagram_audio. ONLY works for Instagram accounts connected through Facebook login (supports_instagram_music: true in list_social_accounts); accounts connected with Instagram login are rejected with a clear error, because Meta only offers music on the Facebook-login API. Reels only (exactly one video): photos and carousels/slideshows are rejected, because Meta does not allow music on them through the API. For a slideshow with music, turn the slides into one video and post it as a reel. Ignored for stories. Reels with music cannot be previewed before they publish."
  5. Changed3 schema fields changed
    • addedInput schema / properties / platform_configurations / properties / instagram / properties / audio_id
      Added value: +{
      +  "description": "Reels only. Attach a track from Instagram's music library (or an original sound) to the reel: an audio_id from search_instagram_audio. ONLY works for Instagram accounts connected through Facebook login (supports_instagram_music: true in list_social_accounts); accounts connected with Instagram login are rejected with a clear error, because Meta only offers music on the Facebook-login API. Ignored for photos, carousels and stories. Reels with music cannot be previewed before they publish.",
      +  "type": "string"
      +}
    • addedInput schema / properties / platform_configurations / properties / instagram / properties / audio_volume
      Added value: +{
      +  "description": "Volume of the audio_id track, 0-100 (default 100). Only with audio_id.",
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / platform_configurations / properties / instagram / properties / video_volume
      Added value: +{
      +  "description": "Volume of the video's own sound under the track, 0-100 (default 100). 0 = music only. Only with audio_id.",
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "integer"
      +}
  6. Changed6 schema fields changed
    • changedInput schema / properties / platform_configurations / properties / facebook / description
      Previous value: -"Facebook overrides. Supports feed posts, Page Stories (placement), and first_comment."New value: +"Facebook overrides. Supports feed posts, Page Stories (placement), first_comment and a custom video thumbnail."
    • addedInput schema / properties / platform_configurations / properties / facebook / properties / thumbnail
      Added value: +{
      +  "description": "Media ID of an uploaded image to use as the video thumbnail. Upload the image first (upload_media), then pass its ID here. Single-video feed posts only (ignored for stories). JPEG or PNG. A thumbnail that fails to apply won't fail the post.",
      +  "type": "string"
      +}
    • changedInput schema / properties / platform_configurations / properties / threads / description
      Previous value: -"Threads overrides. Supports location and first_comment."New value: +"Threads overrides. Supports location, first_comment and thread (multi-post thread chains)."
    • addedInput schema / properties / platform_configurations / properties / threads / properties / thread
      Added value: +{
      +  "description": "Turns the post into a multi-post thread: each string is published as a reply to the one before it, in order, under the main post. Text only, up to 25 entries, each trimmed to 500 chars. Links are allowed in thread entries. If an entry fails the chain stops there; the main post still publishes.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 25,
      +  "type": "array"
      +}
    • changedInput schema / properties / platform_configurations / properties / twitter / description
      Previous value: -"Twitter/X overrides. Put links in first_comment (they are stripped from the main tweet)."New value: +"Twitter/X overrides. Put links in first_comment or thread (they are stripped from the main tweet). thread posts a multi-tweet thread."
    • addedInput schema / properties / platform_configurations / properties / twitter / properties / thread
      Added value: +{
      +  "description": "Turns the post into a multi-post thread: each string is published as a reply to the one before it, in order, under the main post. Text only, up to 25 entries, each trimmed to 280 chars (25,000 for X Premium accounts). Links are allowed in thread entries. If an entry fails the chain stops there; the main post still publishes.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 25,
      +  "type": "array"
      +}
  7. Changed1 schema field changed
    • addedInput schema / properties / platform_configurations / properties / instagram / properties / share_to_feed
      Added value: +{
      +  "description": "Reels only. false keeps the reel off the profile grid: it still publishes and shows in the Reels tab, just not in the main grid. Omit for Instagram's default (grid and Reels tab). Ignored for photos, carousels and stories.",
      +  "type": "boolean"
      +}
  8. Changed2 schema fields changed
    • changedInput schema / properties / platform_configurations / properties / linkedin / description
      Previous value: -"LinkedIn overrides. document_title only matters for PDF (document) posts."New value: +"LinkedIn overrides. Supports first_comment; document_title only matters for PDF (document) posts."
    • addedInput schema / properties / platform_configurations / properties / linkedin / properties / first_comment
      Added value: +{
      +  "description": "Optional comment posted on the LinkedIn post immediately after it publishes (a 'first comment'), as the same person or page. A good spot for a link. Trimmed to 1,250 characters. A failed comment won't fail the post.",
      +  "type": "string"
      +}
  9. Changed2 schema fields changed
    • changedInput schema / properties / platform_configurations / properties / linkedin / description
      Previous value: -"LinkedIn overrides. Supports first_comment; document_title only matters for PDF (document) posts."New value: +"LinkedIn overrides. document_title only matters for PDF (document) posts."
    • removedInput schema / properties / platform_configurations / properties / linkedin / properties / first_comment
      Removed value: -{
      -  "description": "Optional comment posted on the LinkedIn post immediately after it publishes (a 'first comment'), as the same person or page. A good spot for a link. Trimmed to 1,250 characters. A failed comment won't fail the post.",
      -  "type": "string"
      -}
  10. Changed2 schema fields changed
    • changedInput schema / properties / platform_configurations / properties / linkedin / description
      Previous value: -"LinkedIn overrides. document_title only matters for PDF (document) posts."New value: +"LinkedIn overrides. Supports first_comment; document_title only matters for PDF (document) posts."
    • addedInput schema / properties / platform_configurations / properties / linkedin / properties / first_comment
      Added value: +{
      +  "description": "Optional comment posted on the LinkedIn post immediately after it publishes (a 'first comment'), as the same person or page. A good spot for a link. Trimmed to 1,250 characters. A failed comment won't fail the post.",
      +  "type": "string"
      +}
  11. Changed1 schema field changed
    • addedInput schema / properties / platform_configurations / properties / youtube / properties / has_paid_product_placement
      Added value: +{
      +  "description": "Set true when the video includes paid product placement, a sponsorship or an endorsement. YouTube shows viewers an \"Includes paid promotion\" label. Maps to the YouTube Data API paidProductPlacementDetails.hasPaidProductPlacement field.",
      +  "type": "boolean"
      +}
  12. Changed10 schema fields changed
    • changedInput schema / properties / platform_configurations / properties / bluesky / properties / caption / description
      Previous value: -"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption."New value: +"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption. Write one whenever the shared caption is longer than this platform allows (Bluesky 300, Threads 500, Pinterest 800, Google Business 1,500 characters; X 280 unless has_x_premium is true on the account) so nothing gets cut."
    • changedInput schema / properties / platform_configurations / properties / facebook / properties / caption / description
      Previous value: -"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption."New value: +"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption. Write one whenever the shared caption is longer than this platform allows (Bluesky 300, Threads 500, Pinterest 800, Google Business 1,500 characters; X 280 unless has_x_premium is true on the account) so nothing gets cut."
    • changedInput schema / properties / platform_configurations / properties / google_business / properties / caption / description
      Previous value: -"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption."New value: +"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption. Write one whenever the shared caption is longer than this platform allows (Bluesky 300, Threads 500, Pinterest 800, Google Business 1,500 characters; X 280 unless has_x_premium is true on the account) so nothing gets cut."
    • changedInput schema / properties / platform_configurations / properties / instagram / properties / caption / description
      Previous value: -"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption."New value: +"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption. Write one whenever the shared caption is longer than this platform allows (Bluesky 300, Threads 500, Pinterest 800, Google Business 1,500 characters; X 280 unless has_x_premium is true on the account) so nothing gets cut."
    • changedInput schema / properties / platform_configurations / properties / linkedin / properties / caption / description
      Previous value: -"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption."New value: +"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption. Write one whenever the shared caption is longer than this platform allows (Bluesky 300, Threads 500, Pinterest 800, Google Business 1,500 characters; X 280 unless has_x_premium is true on the account) so nothing gets cut."
    • changedInput schema / properties / platform_configurations / properties / pinterest / properties / caption / description
      Previous value: -"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption."New value: +"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption. Write one whenever the shared caption is longer than this platform allows (Bluesky 300, Threads 500, Pinterest 800, Google Business 1,500 characters; X 280 unless has_x_premium is true on the account) so nothing gets cut."
    • changedInput schema / properties / platform_configurations / properties / threads / properties / caption / description
      Previous value: -"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption."New value: +"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption. Write one whenever the shared caption is longer than this platform allows (Bluesky 300, Threads 500, Pinterest 800, Google Business 1,500 characters; X 280 unless has_x_premium is true on the account) so nothing gets cut."
    • changedInput schema / properties / platform_configurations / properties / tiktok / properties / caption / description
      Previous value: -"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption."New value: +"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption. Write one whenever the shared caption is longer than this platform allows (Bluesky 300, Threads 500, Pinterest 800, Google Business 1,500 characters; X 280 unless has_x_premium is true on the account) so nothing gets cut."
    • changedInput schema / properties / platform_configurations / properties / twitter / properties / caption / description
      Previous value: -"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption."New value: +"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption. Write one whenever the shared caption is longer than this platform allows (Bluesky 300, Threads 500, Pinterest 800, Google Business 1,500 characters; X 280 unless has_x_premium is true on the account) so nothing gets cut."
    • changedInput schema / properties / platform_configurations / properties / youtube / properties / caption / description
      Previous value: -"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption."New value: +"Platform-specific caption. Overrides the top-level caption for this platform only. Omit to use the shared caption. Write one whenever the shared caption is longer than this platform allows (Bluesky 300, Threads 500, Pinterest 800, Google Business 1,500 characters; X 280 unless has_x_premium is true on the account) so nothing gets cut."
  13. First observed

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety burden on the description is lower, but it still adds almost nothing behavioral. It never says whether omitted fields are preserved or wiped (critical for a partial-update tool with 9 params), whether replacing media destroys prior uploads, or what happens if the post is already published. For a destructive mutation this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler, and the scope-limiting clause ('scheduled or draft') is placed before the field enumeration where it matters most. Nothing is wasted or buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description provides no return information, no partial-vs-full update semantics, and no mention of per-platform overrides despite the schema's large nested platform_configurations object. For a destructive tool of this complexity, the description leaves the agent to infer behavior entirely from the schema.

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 description coverage is 78%, so the schema carries most of the explanatory load and the baseline of 3 applies. The description indexes four of the nine params (caption, schedule time, accounts, media) but omits is_draft, media_urls, account_configurations, and — most importantly — the entire platform_configurations override tree, which is the tool's largest and most consequential surface.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (update) and resource (post) and bounds the scope to scheduled or draft posts, which is meaningful information. It does not explicitly distinguish itself from siblings like create_post or delete_post, but the scope constraint makes its role reasonably unambiguous.

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

Usage Guidelines3/5

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

The phrase 'scheduled or draft post' implies a precondition (the post must not be published yet) but never states it as an exclusion or names an alternative path. There is no guidance on when to use update versus delete-then-create, nor on prerequisites such as required account permissions.

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.