Skip to main content
Glama

analyze_warping_risk

Read-only

Predict 3D printing warping risk from model geometry and material thermal behavior, returning a risk level, adhesion needs, and mitigation recommendations.

Instructions

Analyze warping risk for a 3D model based on geometry and material.

        Examines the mesh for warping risk factors: large flat surfaces that
        tend to curl at corners, tall/narrow geometry prone to thermal
        contraction pulling, and sharp base corners that lift. Cross-references
        with the material's known warping tendency (from thermal properties).

        Returns a risk assessment with:
        - risk_level: "low", "moderate", "high", or "critical"
        - large_flat_surfaces: detected flat areas prone to warping
        - height_to_base_ratio: geometry aspect ratio risk factor
        - material_warping_tendency: material's inherent warp behavior
        - recommendations: actionable mitigation advice, led by the brim
          or raft to use when the part calls for one
        - adhesion: the brim / raft decision for this part (width, raft,
          reason, slicer overrides) — the same one analyze_printability
          reports

        Args:
            file_path: Path to a mesh (.stl, .obj, .glb, .3mf) or a CAD
                file (.step, .stp), which is converted automatically.
            material: Material ID (e.g. "pla", "abs", "petg"). Defaults to PLA.
                Used to look up thermal warping tendency.
            printer_id: Optional registered printer whose real geometry
                and calibration should inform the analysis.

        Examples:
            analyze_warping_risk("/path/to/model.stl", material="abs")
            analyze_warping_risk("/path/to/plate.stl")  # defaults to PLA
        

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "file_path": "<file_path>"
    },
    "name": "analyze_warping_risk"
  }
}

Input Schema

NameRequiredDescriptionDefault
materialNoMaterial ID (e.g. "pla", "abs", "petg"). Defaults to PLA. Used to look up thermal warping tendency. Default: "pla".
file_pathYesPath to a mesh (.stl, .obj, .glb, .3mf) or a CAD file (.step, .stp), which is converted automatically.
printer_idNoOptional registered printer whose real geometry and calibration should inform the analysis. Default: "".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.5.1
    • addedInput schema / properties / file_path / description
      Added value: +"Path to a mesh (.stl, .obj, .glb, .3mf) or a CAD file (.step, .stp), which is converted automatically."
    • changedInput schema / properties / material / description
      Previous value: -"Default: \"pla\"."New value: +"Material ID (e.g. \"pla\", \"abs\", \"petg\"). Defaults to PLA. Used to look up thermal warping tendency. Default: \"pla\"."
    • changedInput schema / properties / printer_id / description
      Previous value: -"Default: \"\"."New value: +"Optional registered printer whose real geometry and calibration should inform the analysis. Default: \"\"."
  2. Changed4 schema fields changedv1.5.0
    • removedInput schema / properties / material / default
      Removed value: -"pla"
    • addedInput schema / properties / material / description
      Added value: +"Default: \"pla\"."
    • removedInput schema / properties / printer_id / default
      Removed value: -""
    • addedInput schema / properties / printer_id / description
      Added value: +"Default: \"\"."
  3. Changed1 schema field changedv1.3.0
    • addedInput schema / properties / printer_id
      Added value: +{
      +  "default": "",
      +  "title": "Printer Id",
      +  "type": "string"
      +}
  4. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered; the description goes further by explaining the analysis methodology, the four-value risk_level scale, and the individual risk factors and recommendations returned. It does not mention cost, runtime, or limits for very large meshes, so it stops short of fully describing operational behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded and well structured, but the Args section duplicates the input schema almost verbatim and the Examples section restates the default-material behavior already stated in the Args, making the description noticeably longer than needed.

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?

With no output schema, the description carries the return-value burden and does so by listing each returned field (risk_level, large_flat_surfaces, height_to_base_ratio, material_warping_tendency, recommendations, adhesion). It is nearly complete for a read-only three-parameter analysis tool; only the material tendency lookup source and performance characteristics are left implicit.

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 three parameters are already documented; the description's Args block largely restates those same schema descriptions (formats for file_path, PLA default for material, printer_id's role). It adds little interpretation beyond the schema, which is the expected baseline when the schema does the heavy lifting.

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?

The first sentence gives a specific verb, resource, and basis: 'Analyze warping risk for a 3D model based on geometry and material.' It then enumerates the concrete risk factors it looks for (flat surfaces curling at corners, tall/narrow thermal contraction, sharp base corner lift), which makes it clearly distinguishable from adjacent tools like analyze_printability or analyze_structural_risks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is only implied: two example calls show default-material behavior, and the note that the adhesion block is 'the same one analyze_printability reports' hints at overlap. There is no explicit statement of when to prefer this tool over analyze_printability, analyze_model_geometry, or analyze_structural_risks, and no when-not-to-use conditions.

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

Deploy Server

Other Tools