Skip to main content
Glama

Reverse CRM Write

reverse_audit_event
Destructive

Undo one recorded CRM write, restoring every field to the value it held before. Runs as a background task, so the row's status moves when it finishes. It is refused unless the event is the NEWEST un-reversed one OF ITS RUN (events are grouped by caller_request_id, not by which tool wrote them) -- reversing an older write first would restore values a newer one still holds. Find the id with list_audit_events, whose reversible flag applies this same rule, so an entry marked reversible is one this tool will accept.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
connection_idYesThe CRM connection. Call list_crm_connections first.
audit_event_idYesThe audit event to reverse. Call list_audit_events first.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare destructiveHint=true and openWorldHint=true, but the description adds crucial beyond-annotation behavior: it runs as a background task with asynchronous status transitions, and it is refused unless the event is the newest un-reversed one of its run (grouped by caller_request_id). This is exactly the kind of constraint annotations cannot convey.

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?

Front-loads the core action in the first sentence, then layers constraints. The parenthetical about caller_request_id grouping is slightly dense, but every sentence earns its place and there is no filler.

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, asynchronous mutation with no output schema, the description covers the action, the async nature, the eligibility constraint, the grouping model (caller_request_id), and the lookup path. Nothing an agent needs to call it correctly 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% and both parameters already have descriptions pointing to the correct lookup tools. The description adds the conceptual meaning of audit_event_id (must be newest un-reversed of its run) but does not add syntax or format details beyond 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 (undo/reverse) and resource (one recorded CRM write) and the precise effect: restoring every field to its prior value. It clearly distinguishes itself from siblings like reverse_duplicate_group and preview_plan_reversal by scoping to a single audit event.

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 names the prerequisite lookup tools (list_audit_events, list_crm_connections per schema) and explains the acceptance rule: only the newest un-reversed event of its run is accepted. It explains why older events are refused, and points to the `reversible` flag as the routing signal.

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.