Skip to main content
Glama

save_hull

Destructive

Saves an approved hull as a Stormworks vehicle .xml with a Load-menu thumbnail, storing its spec as a design and refusing to overwrite files this tool did not write.

Instructions

Write a hull into the Stormworks vehicles folder as .xml with its Load-menu thumbnail, and store the spec as a design of the same name. Use it once the preview is approved, e.g. save_hull(name="Iowa", design="Iowa"); drafts edited part by part (imports, land vehicles) use save_vehicle. Refuses a name already used by a vehicle this tool did not write, and replaces its own earlier save only with overwrite=true. Returns the file path, part count and summary; the player loads it from a workbench's Load menu.

Input Schema

NameRequiredDescriptionDefault
nameYesName for the file in the vehicles folder and the game's Load menu: letters, digits, spaces, _ - ( ), at most 64 characters.
specNoHull spec, partial or full (fields: hull_design_guide topic=spec); merged over preset or design. Lengths in metres.
patchNoJSON-Patch ops applied last, e.g. [{"op": "replace", "path": "/superstructure/bridge/height", "value": 2.5}]; list items can be named instead of indexed.
designNoStored design to start from instead of a preset; names from list_designs.
presetNoBuilt-in hull preset to start from, e.g. 'runabout'; names from list_hull_presets.
overwriteNoReplace an earlier vehicle of this name written by this tool. Files this tool did not write are never replaced.
spec_pathNoPath to a .json file holding a spec or a stored design, read before spec and patch.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv0.2.0
    • addedInput schema / properties / design / description
      Added value: +"Stored design to start from instead of a preset; names from list_designs."
    • addedInput schema / properties / name / description
      Added value: +"Name for the file in the vehicles folder and the game's Load menu: letters, digits, spaces, _ - ( ), at most 64 characters."
    • addedInput schema / properties / overwrite / description
      Added value: +"Replace an earlier vehicle of this name written by this tool. Files this tool did not write are never replaced."
    • addedInput schema / properties / patch / description
      Added value: +"JSON-Patch ops applied last, e.g. [{\"op\": \"replace\", \"path\": \"/superstructure/bridge/height\", \"value\": 2.5}]; list items can be named instead of indexed."
    • addedInput schema / properties / preset / description
      Added value: +"Built-in hull preset to start from, e.g. 'runabout'; names from list_hull_presets."
    • addedInput schema / properties / spec / description
      Added value: +"Hull spec, partial or full (fields: hull_design_guide topic=spec); merged over preset or design. Lengths in metres."
    • addedInput schema / properties / spec_path / description
      Added value: +"Path to a .json file holding a spec or a stored design, read before spec and patch."
  2. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructive=false? No, destructiveHint=true and readOnlyHint=false, so safety profile is known. The description adds valuable specifics beyond that: it refuses names owned by vehicles it did not write, replaces its own earlier save only with overwrite=true, and returns file path, part count, and summary. It does not cover failure modes such as invalid spec handling, but the key side effects are well disclosed.

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?

Four sentences with no filler, front-loading the main action, then routing guidance, then safety constraints, then return values. Every sentence adds distinct value.

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?

Output schema exists, so the description need not explain return values, but it briefly does anyway. It covers the critical precondition (preview approved), the alternative tool, and overwrite/collision behavior. A minor gap is not naming the preview tool explicitly, though siblings make this inferable.

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 all seven parameters are documented in the schema. The description adds only a usage example and a mention of overwrite=true, so the schema does the heavy lifting; baseline 3 is appropriate.

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 and dual resource: writes a hull XML with thumbnail into the Stormworks vehicles folder and stores the spec as a design. It explicitly distinguishes itself from save_vehicle, so an agent can route correctly without opening either schema.

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 to use it once the preview is approved and names the alternative for drafts edited part by part: save_vehicle for imports and land vehicles. The overwrite condition is also stated, leaving no routing ambiguity.

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