Skip to main content
Glama

Field Service Business Platform by Doing Work

quotes_revise

Replace an unsigned quote with a new version. Earlier signing links stop working; send it again for a new link.

Input Schema

NameRequiredDescriptionDefault
tmNoNew rates. Leave out to keep the rates of the last version; null to make it a fixed price quote.
linesYes
optionsNoGood, better, best: 2 to 5 options the customer chooses one of when signing. Each needs its own lines.
quote_idYes
tax_rate_idNoTax rate to charge (taxes.listRates). Leave out to use the shop default rate; null for no tax.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / tm
      Added value: +{
      +  "description": "New rates. Leave out to keep the rates of the last version; null to make it a fixed price quote.",
      +  "properties": {
      +    "cap_minor": {
      +      "description": "Optional not-to-exceed amount. Billing stops there until a change order is approved.",
      +      "type": "integer"
      +    },
      +    "hours_per_day": {
      +      "description": "Hours that make one day on a day rate. Default 8.",
      +      "type": "number"
      +    },
      +    "materials_markup_bps": {
      +      "description": "Added to what the shop paid for materials, in basis points (2000 is 20%)",
      +      "type": "integer"
      +    },
      +    "rate_minor": {
      +      "description": "Price per worker per hour or day, in cents",
      +      "type": "integer"
      +    },
      +    "rate_unit": {
      +      "enum": [
      +        "hour",
      +        "day"
      +      ],
      +      "type": "string"
      +    },
      +    "rush_rate_minor": {
      +      "description": "Optional higher rate for time the shop marks as rush",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "rate_unit",
      +    "rate_minor"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  2. First observed

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose the critical side effect: prior signing links are invalidated and must be reissued. That is exactly the kind of destructive consequence an agent needs. It stops short of covering permissions, whether the prior version is recoverable, or whether the customer is notified.

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?

Two short sentences with the main action first and the consequence second; no wasted words and nothing buried.

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 two-required-parameter revision tool with no output schema and no annotations, the definition covers the essential points: it is a full replacement, it is restricted to unsigned quotes, and it breaks existing signing links. An agent can call it correctly and knows to send a new link afterward.

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 description coverage is 60% and the nested objects (tm, lines items, options, tax_rate_id) are well documented inline, so the schema does most of the work. The description adds nothing about parameters, and quote_id is undocumented anywhere; 'replace' also leaves ambiguous whether lines is a full overwrite or a merge.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Replace an unsigned quote with a new version') plus the precondition that the quote must be unsigned, which separates it from quotes_create and quotes_send. It never names a sibling tool explicitly, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'unsigned' qualifier implies a precondition, and the second sentence tells the agent to re-send afterward, which is useful sequencing. However, it never says what to do when the quote is already signed (withdraw? clone via quotes_create?), nor points to quotes_send or signatures_newLink as the follow-up tool.

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