Skip to main content
Glama

Update a post draft

update_post_draft
Idempotent

Update an existing draft post. At least one of content, threadParts, mediaUrls or media is required. To give images alt text (an image description for screen readers), pass media instead of mediaUrls: [{ "url": "...", "alt": "..." }] with an optional type (IMAGE, VIDEO or GIF); it replaces the media on the draft. Alt text limits: X and Instagram 1,000 characters, Bluesky 2,000, LinkedIn 300 (saved for LinkedIn but not sent to it yet); it is ignored on video and GIF. For a thread draft (X/Threads), pass threadParts (one string per post) to replace its posts; content only edits a single-post draft. Optional platform scopes the update to one platform on a multi-platform cross-post (e.g. rewrite just the Twitter copy without overwriting the Instagram caption). When the user has multiple channels per platform (e.g. three Twitter accounts), additionally pass channelName (e.g. "@acme") to narrow the update to one specific account's copy. When both are omitted, all providers in the draft are overwritten uniformly. Returns dashboardUrl — a clickable link to view/edit the just-updated draft in the PostNext dashboard.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
mediaNo
postIdYes
contentNo
platformNo
mediaUrlsNo
channelNameNo
threadPartsNo
clientRequestIdNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
postIdYes
statusYes
contentNo
mediaUrlsYes
updatedAtNo
dashboardUrlYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / media
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "alt": {
      +        "maxLength": 2000,
      +        "type": "string"
      +      },
      +      "type": {
      +        "enum": [
      +          "IMAGE",
      +          "VIDEO",
      +          "GIF"
      +        ],
      +        "type": "string"
      +      },
      +      "url": {
      +        "$ref": "#/properties/mediaUrls/items"
      +      }
      +    },
      +    "required": [
      +      "url"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 10,
      +  "type": "array"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / content / maxLength
      Previous value: -2200New value: +25000
    • addedInput schema / properties / threadParts
      Added value: +{
      +  "items": {
      +    "maxLength": 25000,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "maxItems": 25,
      +  "minItems": 2,
      +  "type": "array"
      +}
  3. Changed1 schema field changed
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  4. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important behaviors: media replaces the draft's media, threadParts replaces thread posts, content only works on single-post drafts, and omitting platform/channelName overwrites all providers uniformly. It also documents alt-text limits and platform-specific caveats, which go well beyond the annotation hints.

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 description is front-loaded with purpose and the core validation rule, then proceeds through parameter-specific guidance in a logical order. It is dense and paragraph-form rather than structured, but nearly every sentence adds actionable detail for this complex mutation tool.

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?

Annotations already cover safety properties, and an output schema exists, so return values need not be explained — yet the description still mentions dashboardUrl as a bonus. The main gap is the undocumented clientRequestId, which matters for an idempotent update tool, but the rest of the behavioral contract is well covered.

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?

With 0% schema description coverage, the description carries the burden and explains most semantic parameters: content vs threadParts, media vs mediaUrls, platform scoping, channelName narrowing, and the alt/type fields on media. It leaves clientRequestId entirely unexplained and does not clarify postId or mediaUrls in detail, so compensation is strong but not complete.

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?

The description opens with a specific verb+resource: 'Update an existing draft post.' It clearly distinguishes updating a draft from creating, deleting, or reading one, so an agent can select it without ambiguity against siblings like create_post_draft or delete_draft.

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?

It explicitly states the at-least-one-field requirement and gives detailed conditions for when to use platform or channelName to scope the update, including what happens when both are omitted. It stops short of naming alternative tools such as create_post_draft or schedule_post, so usage is clear but not fully comparative.

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