Skip to main content
Glama

Report the outcome of an effect you executed

ratchet_report_effect

Call this IMMEDIATELY AFTER performing an action that ratchet_begin_effect authorised. Pass the lease_token you were given. Report "succeeded" with a result — future duplicate callers replay that result instead of repeating the action. Report "failed" ONLY when you are certain the action did NOT reach the outside world (for example, a validation error before the request was sent). That permits a clean retry. If you are UNSURE whether it went through — a timeout, a dropped connection, an ambiguous error — do NOT report anything. Say so to the user. Letting the lease lapse records an honest "indeterminate", which is far safer than a false "failed" that licenses a duplicate.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultNoWhat the action produced (ids, confirmation numbers, links). Replayed verbatim to duplicate callers, so include what a retry would need.
outcomeYes
effect_idYes
lease_tokenYes
failure_reasonNoRequired when outcome is "failed".
actual_cost_microsNoWhat it really cost, if different from the estimate.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations carry little behavioral information, so the description carries the full burden. It discloses replay semantics for 'succeeded', the clean-retry implication of 'failed', and the safer 'indeterminate' outcome when the lease lapses. This is rich behavioral context beyond the schema.

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?

Every sentence earns its place: timing, success semantics, failure semantics, and uncertainty handling. The guidance is front-loaded with the most urgent instruction ('Call this IMMEDIATELY AFTER...') and uses reader-focused emphasis without bloat.

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 tool with no output schema, the description provides a complete decision procedure: when to invoke, what to pass, which outcome to choose, and what to do in ambiguous situations. Optional parameters like actual_cost_micros are already covered by the schema, so nothing critical is 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?

The schema already describes result, failure_reason, and actual_cost_micros. The description adds decision-critical meaning to lease_token and outcome, explaining what each outcome actually triggers and which token to pass. effect_id is not elaborated, but its role is self-evident from the context.

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 states a specific action ('report the outcome'), the resource ('an effect'), and the exact timing ('immediately after performing an action that ratchet_begin_effect authorised'). It is distinguishable from sibling tools like ratchet_check_effect and ratchet_resolve_effect without needing to open them.

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?

It gives explicit when-to-call guidance and, more importantly, explicit when-not-to-call guidance: do not report anything if unsure, and instead let the lease lapse. It also distinguishes the success, failure, and indeterminate cases with concrete examples.

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.

TDQS

A4.2/5.0
Disambiguation4/5

Most tools map to clearly distinct lifecycle phases (begin/report/resolve/heartbeat) and are strongly described, but recall, group_status, and list_effects all deal with looking up past effect or workflow state and could be confused when resuming work. The use-case guidance in the descriptions mostly disambiguates them, so this is a minor rather than systemic issue.

Naming Consistency4/5

All tools share the ratchet_ prefix and snake_case, which gives a strong predictable family feel. However, some names follow verb_noun (begin_effect, resolve_effect) while others are noun phrases (effect_receipts, group_status, prevented_loss), so the pattern is consistent in style but not in grammatical form.

Tool Count5/5

Fifteen tools is at the upper end of the ideal range, but the domain is broad enough to justify every entry: effect lifecycle, lease maintenance, state inspection, circuit breakers, policies, receipts, reconciliation, rollback, and usage. Each tool fills a distinct role with no obvious redundancy.

Completeness5/5

The surface covers the full idempotency and safety lifecycle: authorize, execute, report, heartbeat, recover from indeterminate outcomes, verify with receipts, reconcile vendor truth, roll back multi-step work, and monitor budgets and policies. There are no dead ends or missing operations that would strand an agent in this domain.