Skip to main content
Glama

AssetLab

Create work order

create_work_order

Create a new work order. Requires work_orders:write scope. REQUIRED fields: title, site_id, building_id, AND at least one association (asset_id OR location_id). A work order with no asset/location association is not valid - ask the user which one applies before calling. RECOMMENDED: work_category_id (look up via list_work_categories; omit only if no reasonable match exists). Location hierarchy: always resolve top-down by calling list_sites first, then list_buildings filtered by site_id, then list_locations filtered by building_id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoWork order type
titleYesWork order title (required)
statusNoStatus
site_idNoSite ID - resolve first via list_sites
asset_idNoAsset this work order is for - resolve via list_assets. The server mirrors it into asset_ids.
due_dateNoDue date (ISO 8601)
priorityNoPriority level
asset_idsNoAssets this work order covers - use instead of asset_id when there is more than one.
assigneesNoArray of assigned user IDs (alternative to assigned_to for multiple assignees)
image_urlNoImage storage path (upload via create_upload_url with bucket "attachments", then set this to the returned path)
meter_unitNoMeter unit (km, miles, hours, cycles)
start_dateNoStart date (ISO 8601)
system_idsNoSystems this work order covers - resolve via list_systems. Systems have no singular field; this array is the only way to associate them.
assigned_toNoAssigned user ID (mapped to assignees array)
building_idNoBuilding ID - resolve second via list_buildings filtered by site_id
descriptionNoDetailed description
location_idNoLocation this work order is for - resolve last via list_locations filtered by building_id. The server mirrors it into location_ids, so send this OR location_ids, not a conflicting pair.
location_idsNoLocations this work order covers - use instead of location_id when there is more than one. Sending location_id alone replaces this with that single id.
meter_readingNoMeter/odometer reading at time of service
estimated_costNoEstimated cost
estimated_timeNoEstimated time in hours
work_category_idNoWork category ID
purchase_order_idNoPurchase order that paid this work order's actual cost - resolve via list_purchase_orders. Counts against the order's remaining balance.
infrastructure_asset_idsNoInfrastructure features this work order covers - resolve via list_infrastructure_assets. Use this when one job covers several features (a round of hydrant flushing); the whole selection is one work order with one completion and one cost, split across the features. Mutually exclusive with asset/location/system targets.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already tell the agent this is a non-destructive, non-idempotent write. The description adds value beyond them by disclosing the required work_orders:write scope and a non-obvious server-side validation rule (an order without an asset/location association is rejected), which is real behavioral context an agent cannot infer from the schema.

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?

Front-loads the action, then layers REQUIRED, RECOMMENDED and resolution-order guidance in scannable labeled segments. Every sentence carries an actionable rule; nothing is filler despite the density of a 24-parameter tool.

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 24-parameter mutation with only coarse annotations, the description covers auth, hard validation rules, recommended categorization, and dependency resolution ordering. The remaining gap is what a successful call returns, which matters slightly more here because no output schema exists, though the return of a create tool is largely predictable.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema lacks: it declares site_id/building_id and an association as REQUIRED even though the schema only marks title required, and flags work_category_id as RECOMMENDED rather than optional. It does not address the id-vs-ids pairing or assignees/assigned_to alternatives beyond what the schema already documents.

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 ('Create a new work order') plus the fields the server actually requires, so the agent knows exactly which entity is being created. It never names a sibling, so the agent gets no explicit help distinguishing this from create_work_request or create_work_order_schedule in a 250+ tool list.

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 preconditions and sequencing: resolve the location hierarchy top-down (list_sites -> list_buildings -> list_locations), look up work_category_id via list_work_categories, and ask the user which association applies when neither asset nor location is present. This is exactly the when/when-not/precondition guidance the dimension asks for.

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