Skip to main content
Glama

get_printer_filaments

Read-onlyIdempotent

Retrieves live AMS and external filament inventory over MQTT, summarizes loaded and empty slots, resolves model-specific profile paths, and recommends filaments to load.

Instructions

Get the live AMS/external filament inventory from the printer over MQTT, including loaded/empty slot summary, resolved slicer profile paths, match confidence, and recommended load_filaments when the printer model is known.

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_printer_filaments"
  }
}

Input Schema

NameRequiredDescriptionDefault
hostNoHostname or IP address of the printer (default: value from env)
bambu_modelNoOptional model hint used to resolve Bambu/Orca filament profile JSONs for each tray.
bambu_tokenNoAccess token for the Bambu Lab printer (default: value from env)
bambu_serialNoSerial number for the Bambu Lab printer (default: value from env)
nozzle_diameterNoOptional nozzle diameter used when resolving model-specific filament profile JSONs (default: 0.4).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.1.42
    • changedInput schema / properties / bambu_model / enum
      Previous value: -[
      -  "p1s",
      -  "p1p",
      -  "p2s",
      -  "x1c",
      -  "x1e",
      -  "a1",
      -  "a1mini",
      -  "h2d",
      -  "h2s",
      -  "h2c",
      -  "x2d"
      -]New value: +[
      +  "p1s",
      +  "p1p",
      +  "p2s",
      +  "x1c",
      +  "x1e",
      +  "a1",
      +  "a1mini",
      +  "h2d",
      +  "h2dpro",
      +  "h2s",
      +  "h2c",
      +  "x2d"
      +]
  2. Changed1 schema field changedv1.1.14
    • changedInput schema / properties / bambu_model / enum
      Previous value: -[
      -  "p1s",
      -  "p1p",
      -  "p2s",
      -  "x1c",
      -  "x1e",
      -  "a1",
      -  "a1mini",
      -  "h2d",
      -  "h2s"
      -]New value: +[
      +  "p1s",
      +  "p1p",
      +  "p2s",
      +  "x1c",
      +  "x1e",
      +  "a1",
      +  "a1mini",
      +  "h2d",
      +  "h2s",
      +  "h2c",
      +  "x2d"
      +]
  3. First observedv1.1.1

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already establish that this is a read-only, idempotent, non-destructive open-world operation. The description adds useful context that the data is live and fetched over MQTT, and it lists returned content categories, but it does not cover auth needs, failure behavior, or response structure.

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?

The definition is a single front-loaded sentence with no obvious filler. It is somewhat dense because it packs protocol, inventory scope, and five return categories into one sentence, but the information is appropriately prioritized.

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 read-only getter with no output schema, the description usefully summarizes the returned inventory, slot summary, profile paths, match confidence, and load recommendations. It is nearly complete, though it could better explain output structure or behavior when the printer is unreachable.

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 the input schema already documents all five parameters well. The description references printer-model-dependent profile resolution but does not add syntax, defaults, or per-parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('live AMS/external filament inventory') and adds protocol and return-content details. It is clear what the tool does, but it does not explicitly distinguish itself from siblings such as get_printer_status or resolve_3mf_ams_slots.

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

Usage Guidelines2/5

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

The description states what the tool returns, but gives no explicit guidance on when to use it instead of alternatives like get_printer_status or reread_ams_rfid. The phrase 'when the printer model is known' conditions only the recommendation output, not tool selection.

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