Skip to main content
Glama

Approveit

Update an approval request

update_request
Destructive

Change field values on an approval request the user submitted and that is still open. Editing a request that has already been approved is rejected by the tool. Saving DISCARDS every approval already given: the approvers are cleared and have to decide again. Pending and change-requested requests return to pending; deferred, scheduled and draft ones keep their status. The approvers are re-notified except on scheduled and draft, where only the requestor hears about it. Tell the user that before calling, not after. Two-step: call with confirmed=false (the default) first for a preview of the new values with NOTHING written yet; call again with the same ar_identifier and fields plus confirmed=true to save them.

Input Schema

NameRequiredDescriptionDefault
fieldsYesMap of field key to NEW value — ONLY the fields being changed. Prefer the field's `id` (UUID) from get_workflow_details / describe_approval_request as the key; the binding name or exact label are accepted fallbacks. Values follow the field type (numbers for amount/number, YYYY-MM-DD for dates, option values for dropdowns, resolved IDs for vendor/customer/etc. — use search_entities to resolve names to IDs first). A line-item tax cell takes the tax's id, never its percentage; the tool stores the tax's rate.
confirmedNofalse (default) returns a preview of the new values and writes NOTHING. true saves the change. Preview, show the user, wait for their yes, then call again with the same ar_identifier and fields plus true.
ar_identifierYesThe approval request to edit — friendly number like 'AR-15' / '15' or the internal integer id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the destructiveHint=true annotation: it discloses that saving discards all existing approvals, clears approvers, and lists the status transitions per request state (pending/change-requested revert, deferred/scheduled/draft keep status). It also details who gets re-notified and warns the agent to inform the user before calling rather than after.

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 critical side effects are front-loaded ahead of the mechanics, and each sentence conveys distinct information about statuses or notifications. It is on the long side and partly repeats the confirmed-flag wording already in the schema, but no sentence is wasted.

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 destructive, non-idempotent mutation with a nested field map and no output schema, the description covers consequences, status transitions, notification behavior, and a preview-then-commit flow. Nothing essential to invoking it safely is missing.

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 the field map, confirmed, and ar_identifier are already documented in the schema. The description restates the two-step confirmed protocol and the 'only changed fields' semantics that the schema already carries, adding little new meaning beyond it, so the baseline of 3 applies.

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 ('Change field values on an approval request') plus a scope constraint ('the user submitted and that is still open'). This clearly separates it from approve_request, reject_request, and cancel_request, which act on requests rather than editing their values.

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 an explicit precondition ('still open') and an exclusion ('editing a request that has already been approved is rejected'), and spells out the call sequence: preview with confirmed=false, then save with confirmed=true. It does not name sibling tools or say where to obtain field ids beyond a passing mention, so it falls short of a full when/when-not/alternatives statement.

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