Skip to main content
Glama

Add a maintenance task

add_maintenance

Schedule recurring or one-off upkeep for an item, location, or household, including time intervals, usage-based triggers, due dates, parts, providers, and notes.

Instructions

Adds upkeep to track: on an item (itemId), a place (locationId) or the whole household. Give intervalCount + intervalUnit for something that repeats ("every 3 months"), or neither for a one-off. dueOn defaults to one interval from today (today for a one-off). By use ("every 5,000 miles"): usageEvery, on an item that counts something — set the item's usageUnit (update_item) and log a reading (record_reading) first; it can have a time interval too (whichever comes first). Check list_maintenance first so you don't add it twice. Due tasks show in what_needs_attention and the household's reminders.

Input Schema

NameRequiredDescriptionDefault
dueOnNoWhen it's next due, yyyy-mm-dd; defaults to one interval from today (today for a one-off)
notesNoHow to do it: the part number, steps, what to watch for
titleYesWhat to do: "Replace furnace filter", "Clean gutters"
itemIdNoThe item it's for (search_inventory); leave out for a place or the whole household
locationIdNoThe place it's for, e.g. "Clean gutters" on the roof (list_locations)
partItemIdNoThe consumable it uses (a filter item): marking it done takes partQuantity out of stock
providerIdNoWho usually does it, from list_providers
usageEveryNoAlso (or only) due every this much use, in the item's usageUnit ("every 5,000 miles": 5000). Needs itemId
attachmentIdNoThe manual it came from: a document's id from get_item
intervalUnitNoThe unit of intervalCount
partQuantityNoHow many of the part each time (default 1)
intervalCountNoRepeats every this many intervalUnits ("every 3 months": 3); leave both out for a one-off

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changedv0.1.1
    • addedInput schema / properties / attachmentId / description
      Added value: +"The manual it came from: a document's id from get_item"
    • addedInput schema / properties / dueOn / description
      Added value: +"When it's next due, yyyy-mm-dd; defaults to one interval from today (today for a one-off)"
    • addedInput schema / properties / intervalCount / description
      Added value: +"Repeats every this many intervalUnits (\"every 3 months\": 3); leave both out for a one-off"
    • addedInput schema / properties / intervalUnit / description
      Added value: +"The unit of intervalCount"
    • addedInput schema / properties / itemId / description
      Added value: +"The item it's for (search_inventory); leave out for a place or the whole household"
    • addedInput schema / properties / locationId / description
      Added value: +"The place it's for, e.g. \"Clean gutters\" on the roof (list_locations)"
    • addedInput schema / properties / notes / description
      Added value: +"How to do it: the part number, steps, what to watch for"
    • addedInput schema / properties / partItemId / description
      Added value: +"The consumable it uses (a filter item): marking it done takes partQuantity out of stock"
    • addedInput schema / properties / partQuantity / description
      Added value: +"How many of the part each time (default 1)"
    • addedInput schema / properties / providerId / description
      Added value: +"Who usually does it, from list_providers"
    • addedInput schema / properties / title / description
      Added value: +"What to do: \"Replace furnace filter\", \"Clean gutters\""
    • addedInput schema / properties / usageEvery / description
      Added value: +"Also (or only) due every this much use, in the item's usageUnit (\"every 5,000 miles\": 5000). Needs itemId"
  2. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare a non-destructive write; the description adds the computed default for dueOn, the 'whichever comes first' rule for combined time+usage intervals, and downstream visibility (what_needs_attention, household reminders). It does not say what happens on a duplicate title or near-duplicate, which is the one behavioral gap for a create tool that relies on a manual dedupe step.

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?

Dense but well ordered: what is created and where, then recurrence mode, then default due date, then the usage-based variant, then dedupe and downstream visibility. The usage-based sentence stacks several clauses and is the only place readability slips.

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 12-parameter create tool with no output schema and only generic annotations, the description covers the decision-relevant parts: target selection, recurrence mode, defaults, prerequisites, and dedupe. Remaining secondary fields are fully documented in the schema, so 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%, so most semantics are already in the schema. The description adds genuine cross-parameter logic (intervalCount+intervalUnit as a pair, usageEvery requiring itemId, dueOn derived from those), but it does not touch attachmentId, providerId, partItemId/partQuantity, or notes, leaving those to the schema alone. Baseline 3 fits since the schema carries most of the load.

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?

Opening verb+resource ("Adds upkeep to track") plus explicit target scoping (itemId, locationId, or whole household) makes clear exactly what is created. Siblings add_maintenance vs list_maintenance vs complete_maintenance are trivially separable from this text.

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 pre-call checks ("Check list_maintenance first so you don't add it twice") and prerequisite ordering for usage-based tasks (set usageUnit via update_item, log a reading via record_reading first). Also states the alternative shape: give interval fields for repeats, neither for a one-off.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.