Skip to main content
Glama

Field Service Business Platform by Doing Work

maintenance_createPlan

Start a maintenance plan for a job's customer (owner or office). You write the priced lines for one term (never filled in by AI). The first term's invoice is created now (and sent if send_first is true). When a term ends, the next term's invoice is created automatically and sent if auto_send is on. With visits_per_term, each term also gets that many service due dates (see services.listDue), so the shop knows when each covered visit is due; schedule the actual visit with visits.create as usual.

Input Schema

NameRequiredDescriptionDefault
nameYes
linesYes
job_idYes
auto_sendNo
starts_onNo
send_firstNo
tax_rate_idNoTax rate each term charges. Leave out for the shop default rate; null for no tax.
term_monthsYes
visit_titleNoWhat each visit is called, for example "Furnace tune-up". Default: the plan name and "visit".
visits_per_termNoVisits the plan covers each term, for example 2 for two tune-ups a year. Each term gets that many service due dates, spread evenly from the term's start. Default 0.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / visit_title
      Added value: +{
      +  "description": "What each visit is called, for example \"Furnace tune-up\". Default: the plan name and \"visit\".",
      +  "maxLength": 190,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / visits_per_term
      Added value: +{
      +  "description": "Visits the plan covers each term, for example 2 for two tune-ups a year. Each term gets that many service due dates, spread evenly from the term's start. Default 0.",
      +  "maximum": 12,
      +  "minimum": 0,
      +  "type": "integer"
      +}
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the disclosure burden and does well: it states that the first term's invoice is created immediately, optionally sent via send_first, and that future invoices are created automatically and sent when auto_send is on. It also explains that visits_per_term creates service due dates. It omits permissions, reversibility, and failure behavior.

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?

The description is front-loaded with the purpose, then explains invoice lifecycle and visit due-date behavior in a tight sequence. Every sentence adds operational information, and there is no repetition or filler.

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 complex mutating tool with ten parameters, no annotations, no output schema, and low schema coverage, the description covers the core lifecycle: plan creation, first invoice behavior, recurring invoices, and service due dates. It still omits some invocation details such as term date semantics, tax defaults, and required permissions.

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 only 30%, so the description needs to compensate. It adds useful meaning for lines, send_first, auto_send, and visits_per_term, including workflow implications, but leaves job_id, name, term_months, starts_on, tax_rate_id, and visit_title unexplained or only covered by sparse schema descriptions.

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 verb and resource: starting a maintenance plan for a job's customer (owner or office). It distinguishes the tool from siblings like maintenance_cancelPlan, maintenance_listPlans, and maintenance_setVisits by describing first-term invoice creation and automatic future-term invoices.

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

Usage Guidelines4/5

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

It gives clear context for when to use the tool: setting up a plan for a job's customer and writing priced lines for one term. It also warns that lines are never filled in by AI and directs actual visit scheduling to visits.create and due-date viewing to services.listDue. It lacks explicit when-not-to-use guidance or named alternatives.

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