Skip to main content
Glama

Create Estimate

create_estimate
Destructive

Make a DRAFT estimate for a customer. Pass lines, every one with the price the owner told you; template prices are placeholders and are never used. A template (by name) adds the business's proposal wording and design. Nothing is sent. Optional discount ($ or %, with a label the customer sees). Show the owner the lines and total, then call send_estimate only after they say send. Logged and undoable until sent.

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": {
      "customer_id": "<customer_id>"
    },
    "name": "create_estimate"
  }
}

Input Schema

NameRequiredDescriptionDefault
linesNo
titleNo
depositNo
discountNo
templateNo
customer_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well past the annotations by explaining what does NOT happen ('Nothing is sent') and why the destructiveHint is safe in practice ('Logged and undoable until sent'). It also warns that template prices are placeholders and are never used, which is a behavioral trap an agent would otherwise fall into.

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 action and the key constraint (real prices, not template prices) before the optional features. Dense but nearly every clause carries a rule; the parenthetical about discount is the only slightly compressed spot.

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 six-parameter creation tool with no output schema, the description covers the critical semantics and the send hand-off. It does not say what the call returns (e.g. an estimate identifier to pass to send_estimate), which is the one thing an agent still has to discover.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0% and a nested object, the description carries the burden and largely does: it says lines must each carry an owner-supplied price (not the template's), that template is a name that supplies proposal wording and design, and that discount takes $ or % plus a customer-visible label. Deposit and title are left to the schema's types, a minor residual gap.

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 plus a scope qualifier: 'Make a DRAFT estimate for a customer.' The DRAFT framing immediately distinguishes it from send_estimate and the other estimate siblings.

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 sequencing: build the draft, 'Show the owner the lines and total, then call send_estimate only after they say send.' That is an unambiguous when-to-use rule plus the named alternative and the gate condition for it.

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