Skip to main content
Glama

check_material_sufficiency

Read-only

Checks whether a printer has enough filament for a job's required grams before printing, and identifies usable spools or pause-and-swap options when material is short.

Instructions

Check if a printer has enough material for a print job.

        When material is insufficient, says what the person can do with
        what they have: a spool on the shelf, a pause-and-swap.  Only
        when nothing they have will do does it end with one offer of
        help finding a filament.  Relay that offer as written and never
        suggest buying filament unless the person asks or says yes;
        then use ``find_closest_filaments``.  Suggestions that point at
        OTHER machines are a fleet-wide answer and need Kiln Business;
        the check itself — does THIS printer have enough — works on
        every tier.

        Args:
            printer_name: Name of the printer to check.
            required_grams: Amount of material needed in grams.
            material_type: Optional material type filter.
        

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": {
      "printer_name": "<printer_name>",
      "required_grams": "<required_grams>"
    },
    "name": "check_material_sufficiency"
  }
}

Input Schema

NameRequiredDescriptionDefault
printer_nameYesName of the printer to check.
material_typeNoOptional material type filter.
required_gramsYesAmount of material needed in grams.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.5.1
    • addedInput schema / properties / material_type / description
      Added value: +"Optional material type filter."
    • addedInput schema / properties / printer_name / description
      Added value: +"Name of the printer to check."
    • addedInput schema / properties / required_grams / description
      Added value: +"Amount of material needed in grams."
  2. Changed1 schema field changedv1.5.0
    • removedInput schema / properties / material_type / default
      Removed value: -null
  3. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the readOnly/openWorld annotations it discloses the shape of the answer (offers based on what is on hand, a spool swap or a pause), a hard escalation limit (one offer of help only), relay-as-written instruction, and tier gating for cross-machine answers. This is behavioral context an agent cannot infer from 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.

Conciseness4/5

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

Purpose is front-loaded in one sentence, then the response/escalation policy follows. The policy paragraph is somewhat long and carries awkward typography (double spaces, reStructuredText backticks), but each sentence about escalation and tier gating carries operative instruction.

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 check with no output schema, the description covers purpose, response behavior, and escalation rules thoroughly. It does not say what happens on an unknown printer name or how 'insufficient' is computed (margin/threshold), which leaves a modest gap.

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 merely restates the schema wording for printer_name, required_grams, and material_type. No extra meaning — units interpretation, whether material_type is a strict filter or a preference — is added beyond structured fields.

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 opening sentence gives a specific verb and resource ('Check if a printer has enough material for a print job') and the scope is further narrowed to a single printer rather than the fleet. It is immediately distinguishable from nearby siblings such as check_material_match or fleet-level material tools.

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 names the follow-up tool (find_closest_filaments) and the precise condition for using it — only after the person asks or accepts, and only for fleet-wide/other-machine suggestions requiring Kiln Business. It does not explicitly contrast with adjacent checks like get_filament_status or check_printer_material_support, which keeps it short of a 5.

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