Skip to main content
Glama

Confirm a proposed action

confirm_action
Destructive

Confirm and execute a write previously proposed by another tool. Use it ONLY when a tool answered with status='confirmation_required' — a write the server performed straight away has no action_id and needs nothing further. Pass the 'action_id' and 'plan_token' returned in that tool's proposal. Only the user who proposed it may confirm, and only within the plan_token's validity window of 15 MINUTES from when it was proposed — after that the confirm is rejected (409) and you must re-issue the original tool call to get a fresh plan_token. So a proposal can be safely deferred later in the conversation, but not beyond 15 minutes. A deletion whose proposal says confirm_via='telegram' is approved ONLY by the user's tap in @OrgLinesBot; for it this tool executes nothing and just reports the state ('awaiting_out_of_band', or 'executed' with the result).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "confirm_action"
  }
}

Input Schema

NameRequiredDescriptionDefault
actionsNoConfirm several proposals at once, after showing the person ALL of their descriptions. Each pair is checked on its own and gets its own verdict in 'results'; some may execute while others are rejected.
action_idNo
plan_tokenNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, but the description adds substantially more: the 15-minute plan_token validity window, the 409 rejection on expiry, the requirement that only the proposing user may confirm, and the out-of-band path where the call executes nothing and only reports 'awaiting_out_of_band' or 'executed'. These are exactly the behavioral facts an agent cannot get from the annotations.

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?

Purpose and the hard ONLY constraint are front-loaded, and the density of operational detail is high. It runs a little long, with the sentence restating the 15-minute limit ('a proposal can be safely deferred... but not beyond 15 minutes') repeating what the prior sentence already said.

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?

For a destructive, permission-sensitive confirmation tool with no output schema, the description covers the safety envelope, expiry, authorization, and the returned states well. The one real gap is the batch 'actions' path, which the description omits entirely even though the schema exposes it.

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 only 33%, so the description does useful work by explaining that action_id and plan_token come from the prior tool's proposal and that plan_token carries a time window. However, it never mentions the top-level 'actions' array — the entire batch mode, its per-pair verdicts, and the requirement to show the person all descriptions first are documented only in the schema, leaving a significant parameter undocumented in the description.

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 — 'Confirm and execute a write previously proposed by another tool' — and immediately distinguishes this tool from the write tools that execute directly ('a write the server performed straight away has no action_id and needs nothing further'). An agent can tell exactly what this does and what it is not.

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 an explicit trigger condition (status='confirmation_required'), an explicit exclusion (writes already performed need nothing), a fallback procedure when the window lapses (re-issue the original tool call), and a separate routing rule for confirm_via='telegram' proposals. Nothing about when to call this versus doing nothing is left to inference.

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