Skip to main content
Glama

recommend_hardware_pocket

Read-only

Size a pocket for hardware in a 3D-printed part and grade a drawn pocket; use load, material, printer, and fit inputs to verify clearance and fit.

Instructions

Size the pocket for a piece of hardware in a 3D-printed part, and grade one drawn.

Free door, tiered answer — Free: Warnings — always free · Pro: Sizing and fit for the hardware you bought · Business: + Per-machine fit, validation tests and QC plans across your fleet · Enterprise: + Child-safety & supplier vetting for magnets.

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": {
      "hardware": "<hardware>"
    },
    "name": "recommend_hardware_pocket"
  }
}

Input Schema

NameRequiredDescriptionDefault
howNo"after_print" (a trap or seat loaded after printing) or "drop_in" (placed at a pause and printed over). Blank lets Kiln decide; any other value is refused by name. Default: "".
countNoHow many of the part share that load. Default: 1.
entryNo"top" (along the bolt axis from a face) or "side" (a slot). Default: "".
load_nNoPull-out load the joint must hold, in newtons.
roof_mmNoPlastic printed over a drop-in, in mm.
wall_mmNoPlastic between the pocket and the outside of the part, in mm.
floor_mmNoPlastic under the pocket, in mm.
hardwareYesThe part as the plan names it, e.g. "M3 nyloc".
materialNoFilament, e.g. PLA, PETG, ABS, ASA, PC, Nylon. Default: "PLA".
printersNoThe registered printers to draw the pocket for: one size per machine from the holes each has measured, plus the one pocket that fits all of them. ``[]`` means every registered printer. Runs on your own Kiln, since Kiln's servers hold no printers.
torque_nmNoThe torque you intend to tighten to (nuts).
infill_pctNoInfill around the pocket.
cad_size_mmNoThe pocket as drawn: across flats, hole or diameter.
environmentNoWhere it lives, e.g. "hot car", "outdoor" (inserts). Default: "".
cad_depth_mmNoThe pocket depth as drawn.
through_holeNoTrue when an insert's hole goes right through. Default: false.
measured_size_mmNoCalipers on the part: a nut across flats, an insert's knurl diameter, a magnet's diameter. Beats the table.
screw_through_mmNoThickness of part a screw passes before an insert; given, the answer names the screw to buy.
application_classNoHow much margin the use demands, least to most: prototype, internal_fixture, consumer_product, outdoor_hardware, life_safety, lifting_equipment. Any other value is refused. Default: "consumer_product".
measured_height_mmNoThe part's height with calipers.
cad_slot_thickness_mmNoA side slot's thickness as drawn (nuts).
measured_hole_shrink_mmNoHow much smaller your printer makes a hole than drawn (draw 10 mm, measure 9.8 -> 0.2).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed22 schema fields changedv1.5.1
    • changedInput schema / properties / application_class / description
      Previous value: -"Default: \"consumer_product\"."New value: +"How much margin the use demands, least to most: prototype, internal_fixture, consumer_product, outdoor_hardware, life_safety, lifting_equipment.  Any other value is refused. Default: \"consumer_product\"."
    • addedInput schema / properties / cad_depth_mm / description
      Added value: +"The pocket depth as drawn."
    • addedInput schema / properties / cad_size_mm / description
      Added value: +"The pocket as drawn: across flats, hole or diameter."
    • addedInput schema / properties / cad_slot_thickness_mm / description
      Added value: +"A side slot's thickness as drawn (nuts)."
    • changedInput schema / properties / count / description
      Previous value: -"Default: 1."New value: +"How many of the part share that load. Default: 1."
    • changedInput schema / properties / entry / description
      Previous value: -"Default: \"\"."New value: +"\"top\" (along the bolt axis from a face) or \"side\" (a slot). Default: \"\"."
    • changedInput schema / properties / environment / description
      Previous value: -"Default: \"\"."New value: +"Where it lives, e.g. \"hot car\", \"outdoor\" (inserts). Default: \"\"."
    • addedInput schema / properties / floor_mm / description
      Added value: +"Plastic under the pocket, in mm."
    • addedInput schema / properties / hardware / description
      Added value: +"The part as the plan names it, e.g. \"M3 nyloc\"."
    • changedInput schema / properties / how / description
      Previous value: -"Default: \"\"."New value: +"\"after_print\" (a trap or seat loaded after printing) or \"drop_in\" (placed at a pause and printed over). Blank lets Kiln decide; any other value is refused by name. Default: \"\"."
    • addedInput schema / properties / infill_pct / description
      Added value: +"Infill around the pocket."
    • addedInput schema / properties / load_n / description
      Added value: +"Pull-out load the joint must hold, in newtons."
    • changedInput schema / properties / material / description
      Previous value: -"Default: \"PLA\"."New value: +"Filament, e.g. PLA, PETG, ABS, ASA, PC, Nylon. Default: \"PLA\"."
    • addedInput schema / properties / measured_height_mm / description
      Added value: +"The part's height with calipers."
    • addedInput schema / properties / measured_hole_shrink_mm / description
      Added value: +"How much smaller your printer makes a hole than drawn (draw 10 mm, measure 9.8 -> 0.2)."
    • addedInput schema / properties / measured_size_mm / description
      Added value: +"Calipers on the part: a nut across flats, an insert's knurl diameter, a magnet's diameter. Beats the table."
    • addedInput schema / properties / printers / description
      Added value: +"The registered printers to draw the pocket for: one size per machine from the holes each has measured, plus the one pocket that fits all of them. ``[]`` means every registered printer. Runs on your own Kiln, since Kiln's servers hold no printers."
    • addedInput schema / properties / roof_mm / description
      Added value: +"Plastic printed over a drop-in, in mm."
    • addedInput schema / properties / screw_through_mm / description
      Added value: +"Thickness of part a screw passes before an insert; given, the answer names the screw to buy."
    • changedInput schema / properties / through_hole / description
      Previous value: -"Default: false."New value: +"True when an insert's hole goes right through. Default: false."
    • addedInput schema / properties / torque_nm / description
      Added value: +"The torque you intend to tighten to (nuts)."
    • addedInput schema / properties / wall_mm / description
      Added value: +"Plastic between the pocket and the outside of the part, in mm."
  2. Addedv1.5.0

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description does add real behavioral context the annotations cannot: output depth is tier-gated, with a free call returning only warnings while sizing, fit, per-machine fit, and magnet vetting sit behind higher tiers. It still does not explain how the grading is computed or what a refusal (e.g., unknown hardware or 'how' value) looks like.

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 purpose is front-loaded in one clean sentence, but the second sentence spends considerable space on a marketing tier ladder with em-dash chains. It does carry behavioral payload (what free vs. paid returns), yet the phrasing is padded rather than compressed.

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?

With 22 parameters fully documented in the schema and a read-only annotation set, the main remaining burden is describing the answer shape, and the description does at least signal that the output is tier-dependent (warnings only on free tier). What is missing is any indication of the form of the sizing/fit result itself, which matters given there is no output schema.

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% across all 22 parameters, and the schema already documents accepted values such as top/side entry, after_print/drop_in, and the application_class ladder. The description adds no parameter-level meaning beyond that, which is expected when the schema carries the full load.

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 opening sentence names a concrete verb and resource: sizing a hardware pocket in a 3D-printed part, plus grading one already drawn. That is enough to distinguish it from generic mesh or texture tools, but it never contrasts itself with near neighbors like recommend_hole, recommend_joint_strategy, or design_hole_for_product, so the two-in-one scope (size vs. grade) is left for the agent to disambiguate.

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?

There is no when-to-use or when-not-to-use guidance at all. The second sentence is a commercial tier ladder (Free/Pro/Business/Enterprise), which tells the agent what depth of answer it may receive, not when this tool should be selected instead of recommend_hole or lookup_fastener.

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