Skip to main content
Glama

AssetLab

Create PM schedule

create_pm_schedule

Create a new preventive maintenance schedule. Requires pm_schedules:write scope. IMPORTANT - 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. Provide all three IDs explicitly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tasksNoChecklist of tasks for this PM schedule
titleYesPM schedule title (required)
statusNoSchedule status
site_idNoSite ID - resolve first via list_sites
asset_idNoAsset ID
floatingNoFloating schedule (due date based on completion)
next_dueNoNext due date (ISO 8601)
asset_idsNoAssets this schedule covers - use instead of asset_id when there is more than one.
frequencyNoFrequency
meter_unitNoMeter unit (km, miles, hours, cycles)
start_dateNoStart date (ISO 8601)
system_idsNoSystems this schedule covers. Systems have no singular field; this array is the only way to associate them.
building_idNoBuilding ID - resolve second via list_buildings filtered by site_id
descriptionNoDescription
location_idNoLocation ID - resolve last via list_locations filtered by building_id
meter_basedNoWhether this PM triggers at meter intervals (e.g. every 5000 km)
location_idsNoLocations this schedule covers - use instead of location_id when there is more than one. Sending location_id alone replaces this with that single id.
schedule_typeNoSchedule type
work_categoryNoWork category label
estimated_costNoEstimated cost
lead_time_daysNoLead time in days
meter_intervalNoMeter interval - trigger every N units
estimated_hoursNoEstimated hours
auto_generate_woNoAuto-generate work orders
form_template_idNoForm template ID to attach to every work order this generates - resolve via list_form_templates. Use a PUBLISHED template: generation resolves the current published version of the form, so a draft attaches nothing until it is published.
grace_period_daysNoGrace period in days
safety_requirementsNoSafety requirements
custom_interval_weeksNoCustom interval in weeks (when frequency is CUSTOM)
infrastructure_asset_idsNoInfrastructure features this schedule covers - resolve via list_infrastructure_assets. One schedule over several features generates one work order per cycle covering all of them. Mutually exclusive with asset/location/system targets.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the write/non-idempotent profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), so the bar is lower. The description adds two things annotations cannot: the pm_schedules:write scope requirement and the mandatory top-down ID resolution sequence. It does not mention side effects like auto-generated work orders, though auto_generate_wo is documented in 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?

Three sentences, front-loaded with the action, then the auth prerequisite, then the flagged IMPORTANT workflow note. No filler and nothing buried.

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 29-parameter creation tool with no output schema and only one required field, the description covers the two things most likely to cause a failed call: missing scope and unresolved location hierarchy. It omits guidance on the mutually exclusive target families (asset vs location vs system vs infrastructure), though the schema flags that mutual exclusivity itself.

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 100%, so the baseline is 3 and the schema already explains every parameter including the asset_id/asset_ids and location_id/location_ids conventions. The description adds only the cross-parameter ordering constraint ('provide all three IDs explicitly'), which is useful but does not go beyond the individual field docs.

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?

The description states a specific verb+resource ('Create a new preventive maintenance schedule'), which is unambiguous against most siblings. It does not differentiate itself from the close sibling create_compliance_pm_schedule or from create_pm_template, so an agent must infer the distinction from the name alone.

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 a concrete pre-call workflow (resolve site -> building -> location via list_sites/list_buildings/list_locations) and states the required scope, which is real usage guidance. It stops short of saying when to prefer this tool over create_compliance_pm_schedule or create_pm_template.

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