Skip to main content
Glama

find_material_substitute

Read-only

Find ranked substitute filament materials when your preferred FDM material is unavailable or unsuitable, filtered by reason and minimum compatibility score.

Instructions

Find substitute filament materials when your preferred material is unavailable (returns ranked list).

Checks a built-in knowledge base of FDM filament compatibility and returns
ranked alternatives with trade-off descriptions.  For a single best match,
use ``get_best_material_substitute`` instead.

Args:
    material: The original filament material (e.g. "PLA", "PETG", "ABS").
    reason: Optional filter — only return substitutions matching this reason
        (unavailable, cost, strength, finish_quality, heat_resistance, lead_time).
    min_score: Minimum compatibility score threshold (0.0–1.0).

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": {
      "material": "<material>"
    },
    "name": "find_material_substitute"
  }
}

Input Schema

NameRequiredDescriptionDefault
reasonNoOptional filter — only return substitutions matching this reason (unavailable, cost, strength, finish_quality, heat_resistance, lead_time).
materialYesThe original filament material (e.g. "PLA", "PETG", "ABS").
min_scoreNoMinimum compatibility score threshold (0.0–1.0). Default: 0.5.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.5.1
    • addedInput schema / properties / material / description
      Added value: +"The original filament material (e.g. \"PLA\", \"PETG\", \"ABS\")."
    • changedInput schema / properties / min_score / description
      Previous value: -"Default: 0.5."New value: +"Minimum compatibility score threshold (0.0–1.0). Default: 0.5."
    • addedInput schema / properties / reason / description
      Added value: +"Optional filter — only return substitutions matching this reason (unavailable, cost, strength, finish_quality, heat_resistance, lead_time)."
  2. Changed3 schema fields changedv1.5.0
    • removedInput schema / properties / min_score / default
      Removed value: -0.5
    • addedInput schema / properties / min_score / description
      Added value: +"Default: 0.5."
    • removedInput schema / properties / reason / default
      Removed value: -null
  3. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

With readOnlyHint/openWorldHint=false already declaring the safety profile, the description adds meaningful context beyond annotations: the results come from a built-in FDM compatibility knowledge base (consistent with openWorldHint=false) and include ranked alternatives with trade-off descriptions. It does not state how many alternatives are returned or how ties/absent materials are handled, but the closed-KB and ranked-output behavior is the key disclosure an agent needs.

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?

The opening two sentences and the routing sentence are front-loaded and earn their place. However, the Args block duplicates parameter text already present at 100% schema coverage, which is wasted length for a tool with only three params. Trimmed to its first paragraph, this would score higher.

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 three-parameter, read-only lookup with no output schema, the description supplies the essential pieces: what the input material means, what the filter does, and that output is a ranked list with trade-off text. The min_score default is left to the schema, which is acceptable. Missing only minor detail about result count or behavior when no substitute meets the threshold.

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%, and the Args block restates the parameter descriptions nearly verbatim rather than adding interpretation. The closed set of valid reason values is useful, but it is already enumerated in the schema, so the description adds little semantic meaning beyond the structured fields. Baseline 3 applies 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?

States a specific verb and resource ("Find substitute filament materials") plus its triggering condition ("when your preferred material is unavailable") and the return shape ("returns ranked list"). It explicitly names the sibling get_best_material_substitute and the condition that selects it, so an agent can distinguish the two 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 Guidelines4/5

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

Gives clear usage context — preferred material unavailable — and an explicit alternative for the single-best-match case. The reason filter options (cost, strength, finish_quality, heat_resistance, lead_time) also implicitly tell the agent when to narrow results. It does not address other adjacent siblings such as find_closest_filaments or compare_material_properties, so routing is clear against the nearest competitor but not exhaustive.

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