Skip to main content
Glama

list_plate_objects

Read-only

Lists named objects on a Bambu .gcode.3mf build plate so you can inspect parts, select a plate, and get label IDs for isolating or skipping specific objects.

Instructions

List named objects on the build plate of a Bambu .gcode.3mf file.

Parses the plate metadata embedded in .gcode.3mf files exported by
Bambu Studio or OrcaSlicer.  Returns every object that was on the
plate when the file was sliced, with its name, bounding box, area,
and layer height.

Works even when the 3MF contains NO mesh geometry (common for
.gcode.3mf exports).

Bambu Studio supports multiple plates (plate_1, plate_2, etc.).
Use ``plate_number`` to select which plate to inspect.  The response
includes a ``plates_available`` field listing all plate numbers found
in the archive.

Use this to discover which parts are in a multi-object file before
calling ``extract_plate_object`` to isolate one — or, if a part fails
mid-print, to get its ``label_id`` for ``skip_print_objects`` so you can
abandon just that object and save the rest of the plate.

:param file_path: Path to the .3mf or .gcode.3mf file.
:param plate_number: Which plate to inspect (1-based, default 1).
:returns: Dict with ``objects`` list (each with a ``label_id`` that
    ``skip_print_objects`` consumes), plate metadata (bed type,
    filament colours, nozzle diameter, sequential print flag),
    and ``plates_available``.

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": "list_plate_objects"
  }
}

Input Schema

NameRequiredDescriptionDefault
file_pathYesPath to the .3mf or .gcode.3mf file.
plate_numberNoWhich plate to inspect (1-based, default 1). Default: 1.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.5.1
    • addedInput schema / properties / file_path / description
      Added value: +"Path to the .3mf or .gcode.3mf file."
    • changedInput schema / properties / plate_number / description
      Previous value: -"Default: 1."New value: +"Which plate to inspect (1-based, default 1). Default: 1."
  2. Changed2 schema fields changedv1.5.0
    • removedInput schema / properties / plate_number / default
      Removed value: -1
    • addedInput schema / properties / plate_number / description
      Added value: +"Default: 1."
  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 readOnlyHint=true and destructiveHint=false, so safety is covered. Beyond that, the description discloses non-obvious behavior: it works even when the 3MF has no mesh geometry, it reads embedded plate metadata from Bambu Studio/OrcaSlicer exports, and plates are named plate_1, plate_2 with a plates_available field returned — all facts an agent could not 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?

The opening sentence and the usage paragraph are front-loaded and earn their place, and the no-mesh caveat is valuable. However, the ':param file_path' and ':param plate_number' lines duplicate the input schema almost verbatim and could be dropped without loss.

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, so the ':returns' section carries the burden and does it well: it enumerates the objects list, label_id, plate metadata (bed type, filament colours, nozzle diameter, sequential print flag) and plates_available. Nothing an agent needs in order to call this correctly and interpret the result is missing.

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 coverage is 100% and both parameters are already documented with types and defaults, so the description's ':param' lines largely restate the schema. The only genuine addition is the link between plate_number and the returned plates_available field, which is minor. 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 first line gives a specific verb and resource ('List named objects on the build plate of a Bambu .gcode.3mf file'), then pins down exactly what is parsed and returned (name, bounding box, area, layer height). It is clearly distinguishable from siblings like extract_plate_object and skip_print_objects, which it explicitly names.

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?

It states two concrete use cases: discovering parts before calling extract_plate_object to isolate one, and getting a label_id after a mid-print failure to feed skip_print_objects. It also explains when to change plate_number for multi-plate archives, so the agent knows both when to use this tool and how to branch within it.

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