Skip to main content
Glama

Propose: Void an invoice or quote

propose_void_record

AI Agents (inside one system): Use when the person asks for this in a system whose AI agent may change records: An invoice or quote voided in the person's system, so nothing is owed on it any more; it stays there, marked void. Only the person can approve it, and it is never undone from here. Give one item per record, at most 25. Nothing is written yet: the answer shows, per record, what it holds now and would hold after, plus a proposal id. Show it to the person, say so first when something would be sent to the people in their system, ask whether to go ahead, and only then call apply_proposal; when needsApproval is true, share the approve link instead. Not for reading (use search_records or get_record).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "system": "<system>",
      "items": "<items>"
    },
    "name": "propose_void_record"
  }
}

Input Schema

NameRequiredDescriptionDefault
itemsYesOne object per record, at most 25.
systemYesWhich AI agent: the system's id from get_ai_agent_options, or the name of the system or its connection. Ask the person which AI agent they mean unless they named it in this conversation; never pick one yourself.

Output Schema

NameRequiredDescriptionDefault
noticeNo
changesYes
systemIdYes
warningsYes
expiresAtYes
approveUrlYes
proposalIdYes
systemNameYes
needsApprovalYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / system / description
      Previous value: -"Which AI agent: the system's id from get_ai_agents_info, or the name of the system or its connection. Ask the person which AI agent they mean unless they named it in this conversation; never pick one yourself."New value: +"Which AI agent: the system's id from get_ai_agent_options, or the name of the system or its connection. Ask the person which AI agent they mean unless they named it in this conversation; never pick one yourself."
  2. Added

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, and the description adds real value beyond them: nothing is written yet, a per-record before/after diff plus proposal id is returned, only the person can approve, and the effect is never undone from here. However, it says nothing about permission requirements, error conditions, or what happens to linked records/payments when an invoice is voided, which is important for a financial mutation on an open-world tool.

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 preview/approval contract are front-loaded, and nearly every clause carries operational meaning (25-item cap, no-write preview, approval branching). It loses a point for dense, semicolon-chained sentences that mix purpose, side effects, and workflow into one block, making the critical warning ('say so first when something would be sent to the people in their system') easy to skim past.

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?

An output schema exists, so return values need not be spelled out, yet the description still explains the proposal id and the per-record before/after payload. For a two-parameter proposal tool in a large sibling family, the description supplies the preview semantics, approval routing, and batching limit an agent needs to invoke it 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 coverage is 100% and the schema itself documents items (type enum, id) and system (id from get_ai_agent_options, never auto-pick). The description only restates the batching rule ('Give one item per record, at most 25') that the schema's maxItems/minItems already enforce, adding no new semantics for either parameter.

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 ('An invoice or quote voided in the person's system, so nothing is owed on it any more; it stays there, marked void') and explicitly names what it is not for ('Not for reading (use search_records or get_record)'). An agent can distinguish it from the many other propose_* siblings without opening the 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 ('Use when the person asks for this...'), explicit alternatives for the read case, and a full escalation path: show the diff, warn first about outward sends, ask, then call apply_proposal, or share the approve link when needsApproval is true. Both branches of the workflow are covered.

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