Skip to main content
Glama

Ask for changes

ask_for_changes
Destructive

Asks the department to change one thing about a post from a plain-language note — the chat equivalent of the post page's "Ask for changes". The note is classified into a scope (the caption; one slide or image; all the media; add or remove a slide, e.g. a "Download the app" closing slide; timing) and ONLY that scope is redone, through the same generation path the post was first made with. Lands as a new version of the same post with the previous version retained and restorable — never a silent no-op. A request Rebbel can't fulfil here (a channel that isn't connected, a slide that doesn't exist, a format this brand can't make) comes back as one honest line plus the choices offered, with nothing changed — the first two are decided instantly, before any generation. For a post whose whole idea is wrong (not just a line or an image), use remake_post instead. Never approves or publishes: the post stays in review, and an approved/scheduled post comes back needing a fresh approve_post. Quick changes (a caption) answer inline with the caption before and after; media work keeps running — call get_post to see it land. The response's note is written for the owner.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteYesThe user's change request in their own words, e.g. "make the caption shorter", "different photo on slide 2", "add a Download-the-App closing slide", "post it Friday morning instead". Rebbel classifies what to change from this — pass it as said, don't pre-digest it.
postIdYesThe post's id, from list_posts.
reviewNoOnly after review_post: the reviewId it returned plus what the owner said (agreed, and when they disagreed, what was wrong / their answer to the one fact question). Omit it otherwise.
brandIdYesThe brand's id, from list_brands.
verboseNoDefault false: the compact owner view. Pass true only when you need the full stored record (every internal field, ids, provenance) — it's several times larger.
campaignIdYesAn existing campaign's id, from list_campaigns or generate_campaign.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnly=false and non-idempotent, so the mutate/replace nature is covered structurally. The description nonetheless adds substantial context: it lands as a new version with the prior version retained and restorable, is never a silent no-op, and stays in review rather than publishing. That is meaningful added value beyond the annotations, but it stops short of documenting auth/permission requirements or the size/rate profile of generation work.

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 core purpose is front-loaded in the first clause, followed by outcome and edge-case handling. It is dense and leans on long parenthetical asides and em-dash chains, so it reads as slightly rambling even though nearly every sentence carries distinct information.

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?

With no output schema and a complex nested-object schema, the description carries the burden well: it covers the outcome (new version, old restorable), the no-op guard, failure handling for unfulfillable requests, approval/publish boundaries, and the inline-vs-async return behavior with a pointer to get_post. An agent has what it needs to call this correctly.

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 100%, so the schema already documents every parameter including the nested review object and the verbose flag. The description's scoping discussion of `note` (classified into caption / one slide / all media / timing) adds meaning about how the input is interpreted, but the per-field mechanics are already covered.

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 and resource (asks for changes to a post, from a plain-language note) and anchors it to a known UI affordance. It explicitly names the sibling it is not: 'For a post whose whole idea is wrong ... use remake_post instead,' so an agent can distinguish the two without opening either schema.

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?

Gives explicit when-to-use (one scoped change) versus when-not (whole idea wrong → remake_post), plus routing for approved/scheduled posts (needs a fresh approve_post). It also explains what happens when the request can't be fulfilled and which sub-cases fail instantly.

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.