Skip to main content
Glama

Edit a post

update_post
DestructiveIdempotent

Change a draft or scheduled post before it goes out: its caption, media, TikTok visibility or time, or take it off the schedule as a draft. Only what you pass changes; the rest stays. THE NEW VALUES REPLACE THE OLD ONES — confirm the change with the person. The edited post is checked against each platform's limits just like a new one. It refuses a post that is published or publishing (it is already live — edit it on the platform), a failed post (some platforms may have succeeded, so re-sending could post twice — create a new one with schedule_post instead), and a post in a running hook test. To delete a post use cancel_post; to create one use schedule_post.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
postIdYesThe post id from list_posts, schedule_post or get_post. With or without dashes.
captionNoNew caption, replacing the old one. Checked against each platform's limit: X 280, Bluesky 300, Threads 500, Pinterest 500, Google Business 1,500, Instagram 2,200, TikTok 2,200, LinkedIn 3,000, YouTube 5,000, Facebook 63,206. Omit to keep the current caption.
mediaUrlsNoNew media as public https links, replacing all current media; [] removes it (not allowed for Instagram, TikTok, YouTube or Pinterest, which need media). Kind comes from the file extension; append #video or #image to a link without one. Omit to keep the current media.
saveAsDraftNoSet to true to take a scheduled post off the schedule and keep it as a draft. Cannot be combined with scheduledAtUtc.
tiktokPrivacyNoFor a post that goes to TikTok: public, friends or private. The person must choose it; ask them. Omit to keep the current setting.
scheduledAtUtcNoMove the post to this time, as an ISO-8601 UTC timestamp such as 2026-10-20T17:00:00Z — convert from the person's time zone first. Must be in the future. Schedules a draft. Omit to keep the current time.
replacePlatformCaptionsNoSet to true to also drop the per-platform captions the person set in the app, so the new caption is used everywhere. Needed only when changing the caption of a post that has them; the tool says so if it does.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark this destructive, idempotent and open-world; the description goes well beyond them by explaining that only passed fields mutate, that new values fully replace old ones, that edits are re-validated against per-platform limits, that a human must confirm, and why create-new beats re-sending a failed post. This is exactly the mutation-risk context an agent needs before invoking.

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?

Front-loads what the tool changes, then the replace-and-confirm rule in caps, then validation, then the refusal list and alternatives. No sentence is filler; each carries either a rule or a routing decision.

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 mutation tool with no output schema, the description covers the preconditions, the non-obvious mutation semantics, human-confirmation needs, and the sibling escape hatches. Nothing an agent needs to invoke this correctly appears to be missing.

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 100%, so the schema carries the parameter detail and baseline 3 would be acceptable. The description still adds cross-parameter reasoning the schema does not: tiktokPrivacy must be chosen by the person, the caption/media replacements are wholesale, and replacePlatformCaptions is only needed in a specific case. That is a modest but real value-add over 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 (change/edit) and resource (a draft or scheduled post) plus the editable facets: caption, media, TikTok visibility or time, and unscheduling. It also names the sibling tools it is not (cancel_post for delete, schedule_post for create), so an agent can discriminate without reading sibling schemas.

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 declares the refusal conditions that redirect the agent elsewhere: published/publishing posts (edit on the platform), failed posts (create a new one via schedule_post, because re-sending could double-post), and posts in a running hook test. It also states the delete and create alternatives by name.

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.