Skip to main content
Glama

Create asset lifecycle event

create_asset_lifecycle_event

Create a facility lifecycle strategy event. Events attach to an asset-type SCOPE - exactly ONE of asset_type_id or asset_type_group_id - never to individual assets; an asset resolves its type's own strategy first, else its type group's. Replacement is NOT an event (it stays the renewal forecast + replacement value) - model the interventions BEFORE replacement: roof recoats, boiler retubes, overhauls. Resolve type ids with list_asset_types / list_asset_type_groups, and list existing events first to reuse a scope. Requires asset_lifecycle_events:write scope.

Input Schema

NameRequiredDescriptionDefault
nameYesEvent name (required, e.g. "Roof recoat")
fixed_costNoFixed cost per application (current dollars, never indexed)
sort_orderNoEvaluation order within the strategy
cost_sourceNoProvenance of the cost ("Engineering 2026", a tender reference)
event_classYesEvent type - preventative maintenance or rehabilitation
asset_type_idNoAsset type the strategy scope applies to (exactly one of the two scope ids)
impact_methodYesEffect: add years of life, or reset condition to a value
impact_reset_toNoCondition after the event (required when impact_method is reset_condition)
work_generationNoWhat a due application of this event becomes when created from the interventions list: none (plan only, default), work_order, or project. Nothing is created on a schedule.
impact_add_yearsNoYears added (required when impact_method is add_years)
max_applicationsNoHow many times the event may fire over an asset's life (default 1)
min_years_betweenNoMinimum years between firings of a recurring event (default 1)
asset_type_group_idNoAsset type group the scope applies to (exactly one of the two scope ids)
trigger_condition_maxYesUpper bound of the trigger window - the event fires when projected condition falls to this
trigger_condition_minNoLower bound of the trigger window (default 0); an asset already below it has missed the event
work_generation_priorityNoPriority for generated work orders. Ignored unless work_generation is work_order.
work_generation_category_idNoWork category for generated work orders - resolve with list_work_categories. Ignored unless work_generation is work_order.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / asset_type_group_id / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • addedInput schema / properties / asset_type_id / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • addedInput schema / properties / sort_order / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / work_generation_category_id / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
  2. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"https://json-schema.org/draft/2020-12/schema"New value: +"http://json-schema.org/draft-07/schema#"
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / asset_type_group_id / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • removedInput schema / properties / asset_type_id / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • removedInput schema / properties / sort_order / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / work_generation_category_id / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
  3. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / asset_type_group_id / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • addedInput schema / properties / asset_type_id / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • addedInput schema / properties / sort_order / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / work_generation_category_id / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
  4. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-destructive, non-idempotent. The description adds value beyond that: the required asset_lifecycle_events:write scope (auth), the scope-resolution precedence rule (type strategy before type group), and the semantic boundary that replacement is not an event. It does not describe idempotency or duplicate-handling behavior, which is a minor gap for a create tool.

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-loaded with the core action, then scope rules, then the replacement exclusion and the id-resolution workflow. Dense but every sentence carries information; the brief intervention examples add domain grounding without bloat. Slightly long, but justified by 17 params and a subtle domain model.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 17-parameter create tool with no output schema, the description supplies the scope model, auth requirement, precedence rule, and prerequisite lookups an agent needs before calling correctly, while the fully-covered schema handles field-level detail. Nothing essential is missing.

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. The description goes further by explaining the 'exactly ONE of asset_type_id or asset_type_group_id' scope rule and its resolution order, which is the key selection decision for two otherwise-similar UUID params. It still leaves enum behaviors like work_generation to the schema.

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+resource ('Create a facility lifecycle strategy event') and immediately disambiguates scope: events attach to an asset-type scope, never to individual assets, and names sibling-ish concepts (replacement, renewal forecast). An agent can tell this apart from create_infrastructure_lifecycle_event and update_asset_lifecycle_event.

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?

Explicitly says what NOT to model (replacement), what TO model instead (recoats, retubes, overhauls), names the sibling tools to resolve type ids (list_asset_types / list_asset_type_groups), instructs to list existing events first to reuse a scope, and states the required write scope. When/when-not/alternatives are all present.

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