Skip to main content
Glama

get_active_material

Read-only

Reads live AMS tray data to identify the filament physically active on a Bambu Lab printer and returns type, colour, remaining percentage, and temperature range.

Instructions

Get the filament physically active in the AMS hardware right now (Bambu Lab).

        Reads live tray data from the AMS hardware. For the software-tracked
        material (what was told to Kiln via ``set_material``), use
        ``get_material`` instead.

        For Bambu Lab printers with an AMS, reads the active tray and
        returns its type, colour, remaining percentage, and temperature
        range.  For non-Bambu printers (or printers without AMS), the
        material is reported as ``"unknown"``.

        ``tray_now`` is the printer's own tray id (``unit * 4 + slot``
        on a chained unit, the unit id itself on an AMS HT); ``254``
        is the external spool and ``255`` no tray.  An A1 / AMS Lite
        can report ``255`` with trays loaded; then Kiln falls back to
        the selected/target tray fields or returns the loaded
        candidates instead of claiming the external spool.

        Args:
            printer_name: Named printer to query.  Omit to use the
                default printer.
        

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_active_material"
  }
}

Input Schema

NameRequiredDescriptionDefault
printer_nameNoNamed printer to query. Omit to use the default printer.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.5.1
    • addedInput schema / properties / printer_name / description
      Added value: +"Named printer to query.  Omit to use the default printer."
  2. Changed1 schema field changedv1.5.0
    • removedInput schema / properties / printer_name / default
      Removed value: -null
  3. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/non-destructive/closed-world, yet the description adds substantial context beyond them: which fields are returned (type, colour, remaining %, temperature range), the "unknown" fallback for non-Bambu hardware, and the A1/AMS Lite quirk where tray 255 can coexist with loaded trays and Kiln falls back to target-tray fields or candidate lists. That is exactly the kind of hardware weirdness an agent cannot infer from structured fields.

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 purpose followed by the sibling disambiguation, then progressively deeper detail. The tray-id discussion (unit*4+slot, 254, 255) is longer than strictly needed for a one-parameter tool, but it is structured and each paragraph carries distinct information.

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?

There is no output schema, yet the description enumerates the returned fields and the degradation case, so an agent knows what to expect. For a single-optional-parameter read tool, the definition leaves no material 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?

Only one optional parameter exists and schema description coverage is 100%, so the schema already carries the meaning. The description restates 'Named printer to query. Omit to use the default printer' without adding format, naming, or lookup guidance, so baseline 3 applies.

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 states a specific verb and resource with scope: 'Get the filament physically active in the AMS hardware right now (Bambu Lab).' It explicitly contrasts with the sibling get_material, so an agent can select between hardware-state and software-state reads 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?

Names the alternative tool explicitly ('For the software-tracked material ... use get_material instead') and states the condition that selects each. It also covers the failure regime: non-Bambu or AMS-less printers return "unknown", so the agent knows when a null-ish result is expected rather than an error.

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