Skip to main content
Glama

AIURION Agentic 3D Printing — San Francisco

Server Details

SF 3D printing: PLA/PETG, ASA, PPA-CF, TPU 85A & TPU 95A HF. Quote, approve, and track.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 61 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.7/5.0

Scored across 16 tools

Disambiguation3/5

Two parallel families coexist: the Maker Bench prepare_*/quote_* tools and the generic printing.* tools. Capabilities are exposed twice (get_workbench_capabilities vs printing.capabilities.get) and quoting happens in two places (quote_enclosure vs printing.quotes.create), which can cause misselection, though descriptions do explicitly steer users between them (e.g. 'do not use single-part checkout or update tools for these parts'). Within each family the tools are clearly distinct.

Naming Consistency3/5

Two conventions are mixed: snake_case verb_noun (get_workbench_capabilities, prepare_enclosure, quote_gripper) and dotted namespaces (printing.quotes.create, printing.orders.get). Each family is internally consistent and readable, but the server as a whole mixes styles.

Tool Count3/5

16 tools is borderline heavy. Four product types × (prepare + quote) = 8, plus a capabilities tool, plus 7 generic printing tools, producing near-duplicate coverage of capabilities and quoting across two subsystems rather than a single coherent surface.

Completeness4/5

The lifecycle is largely covered: capabilities, prepare drafts, quote creation/get/update, guest sessions, checkout, and order status polling. Minor gaps exist (no delete/cancel or list-quotes operations), but core workflows reach checkout and fulfillment status without dead ends.

Available Tools

16 tools
get_workbench_capabilitiesGet Workbench CapabilitiesA
Read-only
Inspect

Discover Maker Bench availability, supported inputs, limits and prepare/quote schemas. Enclosure, workholding, gripper and stamping support editable drafts and complete-set quotes with browser checkout. Wheel Lab is coming soon.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnly=true, destructive=false, openWorld=false), so the lower bar applies. The description adds some real context — enumeration of supported domains, that drafts and complete-set quotes exist, and that checkout happens outside the tool in a browser — but 'Wheel Lab is coming soon' is vague availability trivia rather than actionable behavior.

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 first sentence is well front-loaded and earns its place, but the trailing 'Enclosure, workholding, gripper and stamping support ... browser checkout. Wheel Lab is coming soon.' is loose promotional filler that could be trimmed or replaced with concrete limits/format information.

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?

An output schema exists, so return-value explanation is not required; the description tells an agent broadly what domains and capabilities to expect. It is nearly complete for a zero-parameter discovery tool, losing a point only for not stating the intended calling sequence relative to the prepare_/quote_ siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so according to the rubric the baseline is 4. The description need not describe inputs, and its list of returns (availability, inputs, limits, schemas) is a reasonable free-text complement to the empty 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?

States a specific verb ('Discover') and resource (Maker Bench availability, supported inputs, limits, prepare/quote schemas), which is clearly distinct from the per-domain prepare_*/quote_* siblings that act on a single domain. However, the second and third sentences drift into marketing copy ('browser checkout', 'Wheel Lab is coming soon') rather than sharpening the purpose, and no sibling is named explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: a Discovery tool logically precedes the prepare_/quote_ siblings, and the mention of 'prepare/quote schemas' hints at that ordering, but the description never says 'call this first' or when not to use it. No alternatives or exclusions are stated.

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

prepare_enclosurePrepare EnclosureA
Read-only
Inspect

Prepare or revise an enclosure from KiCad PCB text or dimensions. Returns exact parameters, review revision, warnings and editable customer review URL. Uses a guest token but no quote allowance. No manufacturing or purchase occurs.

ParametersJSON Schema
NameRequiredDescriptionDefault
kicadPcbNoKiCad 6–9 .kicad_pcb UTF-8 text. Sent to AIURION for parsing; raw PCB text is not stored in the draft or review link. Use parameters instead for dimensions.
quantityNoNumber of complete sets to prepare or quote.
parametersNoWorkbench geometry parameters. Use the returned normalized values for review and quoting.
accessTokenNoGuest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover readOnly/non-destructive/closed-world, but the description adds genuinely new context: the guest-token auth path, that no quote allowance is consumed, and that no manufacturing or purchase occurs. It also states what comes back (normalized parameters, review revision, warnings, editable review URL). Minor tension with readOnlyHint=true given that a revision and review link are produced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

Four short sentences, front-loaded with what the tool does, followed by return content, auth/cost implications, and side-effect scope. Every sentence carries distinct information with no filler.

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 tool with a large nested parameter object, an output schema, and full annotation coverage, the description is nearly complete: it flags input alternatives, auth, cost, and that no fulfillment occurs. It could note that at least one geometry source (kicadPcb or parameters) is expected, since no parameters are required.

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% at the top level, so the schema already documents kicadPcb, quantity, parameters, and accessToken. The description only restates the input alternatives ('KiCad PCB text or dimensions') without adding format, precedence, or interaction rules beyond the schema. Baseline 3 applies.

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 states a specific verb set (prepare or revise) and resource (enclosure), plus the accepted input forms (KiCad PCB text or dimensions). It implicitly separates itself from the sibling quote_enclosure by noting 'no quote allowance', though it never names the sibling. Clear purpose, only weak explicit sibling differentiation.

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 gives clear conditions: use a guest token, this call does not consume quote allowance, and no manufacturing or purchase results — which effectively routes quoting workflows to the quote_* siblings. It stops short of naming quote_enclosure or quoting a session prerequisite, so no explicit alternatives list.

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

prepare_gripperPrepare GripperA
Read-only
Inspect

Compliant gripper kits with two TPU pads, two rigid carriers and two keepers per kit. Prepare or revise an editable draft. Returns configuration, review revision, warnings and browser link. Uses authentication but no quote allowance. No purchase occurs.

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenNoGuest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token.
configurationNoPartial jaw configuration. Omitted fields use the Gripper Lab defaults. Lengths are millimetres.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Adds real context beyond the readOnlyHint/destructiveHint/openWorldHint annotations: it states that authentication is required despite being non-destructive, that no quote allowance is consumed, that no purchase occurs, and that the response carries configuration, review revision, warnings and a browser link. The only mild tension is 'revise' suggesting a write while readOnlyHint=true — likely because the draft is not persisted, but the description never says so.

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?

Four tight sentences with no filler. Slight weakness is ordering: the product description leads and the actual verb ('Prepare or revise an editable draft') lands second, so the action is not fully front-loaded.

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?

An output schema exists so return values need not be enumerated, yet the description still names the key payload elements. Auth requirements and the no-purchase/no-quote guarantees are covered; the only gap is explicit sibling routing for the eventual pricing step, which matters given the quote_gripper sibling.

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 every nested configuration field already carries a description plus min/max bounds, so the schema does the heavy lifting. The description adds only that omitted fields fall back to Gripper Lab defaults (echoed in the schema) and that lengths are millimetres, so baseline 3 is appropriate.

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?

States a specific resource (compliant gripper kits, two TPU pads / two rigid carriers / two keepers per kit) and a specific action (prepare or revise an editable draft). It partially distinguishes itself from the quote_* siblings via 'no quote allowance' and 'No purchase occurs', but never names quote_gripper as the pricing alternative.

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

Usage Guidelines3/5

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

'Prepare or revise an editable draft' implies the create/revise use case, and 'No purchase occurs' plus 'no quote allowance' implies the boundary against quote_gripper and checkout. However the routing is left to inference — no explicit 'use quote_gripper when you need a price' statement.

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

prepare_stampingPrepare StampingA
Read-only
Inspect

Matched lower and upper stamping dies using the approved print process. Simulation is not exposed. Prepare or revise an editable draft. Returns configuration, review revision, warnings and browser link. Uses authentication but no quote allowance. No purchase occurs.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheetNoWorkbench input: sheet. See the field constraints.
quantityNoNumber of matched lower/upper die pairs.
materialIdNoWorkbench input: materialId. See the field constraints.
parametersNoWorkbench geometry parameters. Use the returned normalized values for review and quoting.
accessTokenNoGuest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token.
productionSpeedNoWorkbench input: productionSpeed. See the field constraints.
fulfillmentMethodNoWorkbench input: fulfillmentMethod. See the field constraints.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, closed-world), and the description adds real value on top: authentication is required but consumes no quote allowance, no purchase occurs, simulation is unavailable, and the return payload (configuration, review revision, warnings, browser link) is sketched. This is meaningful context beyond the 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?

Six short sentences, front-loaded with the core action and followed by scoping constraints; nearly every clause carries information. The telegraphic fragments ('Simulation is not exposed', 'No purchase occurs') are terse but not wasteful.

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 draft-preparation tool with a full output schema, the description covers the essentials: auth model, absence of quoting/purchase, simulation exclusion, and return contents. It stops short of naming sibling alternatives or revision semantics, but nothing critical for a correct invocation 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 description coverage is 100% and an output schema exists, so the schema already documents the seven inputs, including the artwork mask format and normalized geometry note. The description adds no per-parameter semantics of its own, so the baseline of 3 applies.

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 first sentence states a specific verb+resource (prepare matched lower/upper stamping dies via the approved print process) and the scoping notes ('Simulation is not exposed', 'no quote allowance') help separate it from quote_stamping. The phrasing 'Matched lower and upper stamping dies' is grammatically awkward and reads like a fragment, but the intent is recoverable.

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

Usage Guidelines3/5

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

The description implies usage ('Prepare or revise an editable draft') and scopes out simulation, quoting and purchase, but never explicitly says when to pick this over quote_stamping or the other prepare_* siblings. It is enough to place the tool in the draft-vs-quote workflow, but no exclusions or alternatives are named.

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

prepare_workholdingPrepare WorkholdingA
Read-only
Inspect

Locating nests, clamped fixtures and soft jaws from dimensions or a supported straight-extrusion STL. Prepare or revise an editable draft. Returns configuration, review revision, warnings and browser link. Uses authentication but no quote allowance. No purchase occurs.

ParametersJSON Schema
NameRequiredDescriptionDefault
quantityNoNumber of complete sets to prepare or quote.
stlUnitsNoUnits of the supplied STL coordinates; defaults to mm.
stlBase64NoBase64 encoded STL, at most 5 MiB decoded. One closed straight extrusion on XY, without internal holes or undercuts. The raw STL is not stored in the draft or review URL.
parametersNoWorkbench geometry parameters. Use the returned normalized values for review and quoting.
accessTokenNoGuest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

With readOnlyHint/destructiveHint already covered by annotations, the description still adds real behavioral context: it returns 'configuration, review revision, warnings and browser link', requires auth without consuming quote allowance, and performs no purchase. That is meaningful side-effect disclosure beyond the structured fields. It does not flag the mild tension of a readOnly-hinted tool producing a persisted editable draft.

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?

Four short sentences, front-loaded with purpose then output then auth/billing caveats, with essentially no filler. Densely packed but every clause carries information an agent needs.

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?

Given an output schema exists, the description need not enumerate return values, but it still names the return shape. Auth and billing posture are disclosed, and the fixture types and input modes are stated. The only residual gap is how to obtain the 'supported STL' constraint or where draft state lives, which is a minor omission for a complex 5-parameter tool.

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 schema already documents quantity, stlUnits, stlBase64, accessToken and the entire nested parameters object with ranges and enums. The description only adds the top-level provenance choice ('from dimensions or a supported straight-extrusion STL'). Baseline 3 is correct when the schema carries the parameter burden.

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?

States a specific verb and resource set: 'Locating nests, clamped fixtures and soft jaws from dimensions or a supported straight-extrusion STL.' It also scopes the deliverable ('Prepare or revise an editable draft'), and the closing 'no quote allowance / no purchase' lines implicitly separate it from quote_workholding and printing.checkout.create. It stops just short of naming those siblings explicitly.

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?

Clear context is given ('prepare or revise an editable draft') and the negative statements ('Uses authentication but no quote allowance. No purchase occurs.') act as boundary conditions excluding the quoting/ordering path. No alternative tool is named by name, so the agent must infer the routing to quote_workholding.

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

printing.capabilities.getGet 3D Printing Capabilities
Read-only
Inspect

Read AIURION's supported 3D model formats, limits, materials, production options, and purchasing flow.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

printing.checkout.createCreate Approved Stripe CheckoutAInspect

Create an unpaid AIURION checkout link after the customer approves the current quote. This tool does not authorize, charge, or capture a payment and does not place a manufacturing order. Only if the customer later enters payment details and submits Stripe Checkout is their card authorized; AIURION captures payment after model review. The scoped accessToken authenticates only to AIURION, never to Stripe.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesAIURION quote UUID returned by printing.quotes.create.
materialIdNoAIURION material identifier listed by printing.capabilities.get. Send this when creating a quote; omission defaults to black_pla. A material change re-slices the model and invalidates the prior price approval.
accessTokenNoGuest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token.
idempotencyKeyYesStable unique key for retrying checkout creation.
productionSpeedNoRequested production priority: standard or rush.
approvalConfirmedYesSet true only after the customer reviews and approves the quote.
fulfillmentMethodNoHow the completed parts should be delivered.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations (which only say non-read-only, non-destructive, open-world). It discloses the full payment lifecycle: no authorization/charge at creation, card authorized only when the customer submits Stripe Checkout, AIURION captures after model review, and the accessToken is scoped to AIURION only, never Stripe. This is exactly the side-effect context an agent needs.

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 action and precondition, then the negative scope, then the payment-lifecycle detail. Every sentence carries information, though the density and multi-clause sentences make it slightly heavier than necessary.

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?

With an output schema present, return values need not be described. The description covers the prerequisite (quote approval), the non-effects (no charge, no order), the later payment path, and token scoping — everything needed to invoke this mutation safely.

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%, so every parameter is already documented in the schema, including quoteId, approvalConfirmed, idempotencyKey, materialId, and enum values. The description adds only the accessToken scoping nuance, which is already covered in the schema text. Baseline 3 is appropriate.

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?

States a specific verb and resource ('Create an unpaid AIURION checkout link') and immediately bounds the scope with the precondition 'after the customer approves the current quote'. It also distinguishes itself from the adjacent quote/order tools by explicitly denying that it charges or places orders.

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?

The trigger condition is explicit: only after the customer approves the current quote. It further clarifies the tool is not for authorization, charging, capture, or manufacturing. It does not, however, name a sibling alternative or state what to do in other states (e.g., unapproved quote).

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

printing.orders.getGet Manufacturing Order StatusA
Read-only
Inspect

Poll the payment and manufacturing status associated with a credential-owned quote.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesAIURION quote UUID returned by printing.quotes.create.
accessTokenNoGuest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context by specifying 'payment and manufacturing status' and 'credential-owned', reinforcing the read-only, auth-oriented nature of the operation. However, it does not mention rate limits or additional side effects, but with annotations this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single, front-loaded sentence that states the action, object, and context without waste. Every word adds value, making it highly concise and well-structured.

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?

For a simple two-parameter tool with output schema, annotations covering safety, and full parameter schema descriptions, the description is complete enough. It conveys the core purpose and relies on structured data for details, which is sufficient.

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%; both parameters (quoteId and accessToken) are fully explained with provenance from other print tools. The description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate.

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 description uses the specific verb 'Poll' and clearly identifies the resource ('payment and manufacturing status') and the scope ('credential-owned quote'). This distinguishes it from siblings like printing.quotes.get, making the tool's purpose unambiguous.

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?

The verb 'Poll' and the phrase 'associated with a credential-owned quote' imply this tool is used after a quote is created to check status. Context is clear, but it does not explicitly state when to avoid using it or name alternatives, so it falls 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.

printing.quotes.createCreate 3D Print QuoteAInspect

Create a free 3D print quote for the selected material and actual arranged quantity. For a ChatGPT attachment, prefer the native file parameter; use fileBase64 only when the client can read the exact bytes and cannot supply a native file. Set production speed or fulfillment later with printing.quotes.update. Never invent file bytes or URLs. Reuse a stable idempotency key for retries. Returned time and grams already include all copies; use server totals and obtain customer approval before checkout.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoUser-selected model file supplied by ChatGPT. Use fileName if the file metadata omits its original filename.
fileNameNoModel filename ending in STL, OBJ, STEP, STP, or 3MF.
quantityNoNumber of identical parts to quote, from 1 to 150.
fileBase64NoBase64-encoded model bytes without a data URL prefix.
materialIdNoAIURION material identifier listed by printing.capabilities.get. Send this when creating a quote; omission defaults to black_pla. A material change re-slices the model and invalidates the prior price approval.
accessTokenNoGuest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token.
idempotencyKeyYesStable unique key for this quote attempt.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only declare it as a non-destructive write with openWorld access; the description goes further by stating the quote is free, that retries must reuse a stable idempotency key, that returned time/grams already account for all copies, and that customer approval is required before checkout. It stops short of describing error behavior or quota/rate limits, so it is strong rather than complete.

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 core action is front-loaded in the first clause, and each following sentence carries a distinct constraint (file selection, deferral to update, idempotency, totals/approval). It is somewhat dense and could compress the approval and totals points into one sentence, but there is little pure filler.

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?

For a tool with two mutually exclusive file input modes, an idempotency requirement, and an output schema, the description covers input mode selection, retry behavior, total semantics, and the downstream approval step. Because an output schema exists, it does not need to enumerate return fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already 100%, so the baseline is 3, but the description adds selection logic the schema does not: the native file parameter takes precedence over fileBase64. It also reinforces that material and quantity drive the quote, though it does not explain the idempotency key semantics beyond what the schema says.

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?

States a specific verb and resource ('Create a ... 3D print quote') and scopes it to the selected material and arranged quantity. It also names the sibling that handles the rest of the workflow (printing.quotes.update for speed/fulfillment), so an agent can distinguish it from the other quote tools without opening a 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?

Gives explicit routing rules: prefer the native file parameter for ChatGPT attachments, and use fileBase64 only when the client cannot supply a native file. It also defers production speed and fulfillment to printing.quotes.update and adds hard exclusions ('Never invent file bytes or URLs'), leaving little to inference.

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

printing.quotes.getGet 3D Print QuoteA
Read-only
Inspect

Retrieve a quote previously created by this guest session or permanent integration.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesAIURION quote UUID returned by printing.quotes.create.
accessTokenNoGuest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds context about session/integration scope, but does not disclose behavior for missing or expired quotes, or any other edge-case details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

A single, front-loaded sentence that conveys the core purpose without any filler. Every word adds meaning.

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?

For a simple retrieval tool with an output schema, good annotations, and clear sibling context, the description is sufficiently complete. It specifies the resource type and scope, and the schema covers the parameters.

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 both quoteId and accessToken are fully documented. The description adds no additional parameter syntax or format meaning beyond the schema, so a baseline score of 3 is appropriate.

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 description uses the specific verb 'Retrieve' and identifies the resource as 'a quote previously created by this guest session or permanent integration.' This clearly distinguishes it from sibling tools like printing.quotes.create and printing.quotes.update, and from other get tools by scoping to quotes.

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 provides clear context by specifying the quote must be 'previously created by this guest session or permanent integration,' implying it should be used after a quote has been created. However, it does not explicitly state when not to use it or name alternatives, so it stops short of full exclusionary guidance.

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

printing.quotes.updateUpdate 3D Print QuoteA
Destructive
Inspect

Replace the owned quote's quantity, material, production speed, or fulfillment and recalculate pricing. This overwrites the current quote configuration and invalidates its prior price approval. Any still-open checkout session for the quote or its linked build is expired; the old checkout link cannot be restored. Tell the customer that an existing unpaid checkout link will stop working before applying their requested changes. Show the revised quote and obtain renewed approval before creating a new unpaid checkout link. Paid quotes and active payment authorizations cannot be changed. This tool does not charge, capture, refund, or release manufacturing.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesAIURION quote UUID returned by printing.quotes.create.
quantityNoUpdated number of identical parts, from 1 to 150.
materialIdNoAIURION material identifier listed by printing.capabilities.get. Send this when creating a quote; omission defaults to black_pla. A material change re-slices the model and invalidates the prior price approval.
accessTokenNoGuest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token.
productionSpeedNoRequested production priority: standard or rush.
fulfillmentMethodNoHow the completed parts should be delivered.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the destructiveHint=true annotation, it discloses the concrete destructiveness: overwriting the quote configuration, invalidating prior price approval, expiring any open checkout session for the quote or its linked build, and the irreversibility of the old checkout link. These are exactly the behavioral traits annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

Sentences are dense with actionable content and front-loaded: the mutation and overwrite consequence come first, then the checkout/approval workflow, then the boundary statement. No filler or repetition appears despite the length.

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?

For a destructive mutation tool with an output schema covering return values, the description supplies everything else an agent needs: side effects, irreversibility, blocked states, and the surrounding multi-step workflow. Nothing material 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 description coverage is 100%, so the schema already documents every parameter including the material re-slice side effect. The description restates the mutatable field set but adds no format, default, or constraint detail beyond the structured schema, so the 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 description opens with a specific verb and resource ('Replace the owned quote's quantity, material, production speed, or fulfillment and recalculate pricing'), naming the exact fields it mutates plus the pricing side effect. It also distinguishes itself from the checkout siblings by explicitly stating it does not charge, capture, refund, or release manufacturing.

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 gives explicit when-not rules ('Paid quotes and active payment authorizations cannot be changed') and a full procedural sequence: warn the customer about the expiring checkout link, apply changes, show the revised quote, obtain renewed approval, then create a new link. An agent knows exactly when this tool applies and what to do around it.

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

printing.sessions.startStart Guest Ordering SessionInspect

Immediately create a public, scoped 24-hour guest session with a small free quote allowance. No account or invitation is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentNameYesReport the actual host platform: ChatGPT, Cursor, Grok Bot, Grok, Claude, or Codex. Use your application name for another host, or unknown if unavailable. Do not use a task, persona or model name. Stored with quotes and paid orders for source attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

quote_enclosureQuote EnclosureAInspect

Quote one complete enclosure base and lid, with configured hardware, after the customer reviews the exact prepare_enclosure revision. Consumes one quote allowance. Reuse idempotencyKey for retries. Returns a browser link for complete-set checkout; do not use single-part checkout or update tools for these parts.

ParametersJSON Schema
NameRequiredDescriptionDefault
quantityYesNumber of complete sets to prepare or quote.
parametersYesWorkbench geometry parameters. Use the returned normalized values for review and quoting.
accessTokenNoGuest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token.
idempotencyKeyYesStable unique key for retrying this complete-set quote.
reviewConfirmedYesTrue only after the customer reviews this exact draft, mounting, openings, component and plug clearances. Does not authorize checkout.
reviewedRevisionYesExact revision returned by preparation and reviewed by the customer.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations only declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false); the description adds real context beyond that: a consumed quote allowance, idempotencyKey reuse for retries, and the clarification that reviewConfirmed does not authorize checkout. The return-value note (browser link) is less additive here because an output schema already exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

Four sentences, each carrying an independent constraint: purpose, prerequisite, quota, retry, checkout boundary. No filler, and the purpose and prerequisite are front-loaded ahead of the exclusion.

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?

Covers the prerequisite chain, quota consumption, idempotent retry behavior, and the checkout boundary, and an output schema exists to carry return details. For a consequential write tool with a deeply nested parameter object, nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, which sets a baseline of 3, but the description adds meaning: it frames reviewedRevision/reviewConfirmed as an explicit human review gate and explains idempotencyKey as the retry key. It stops short of describing the large geometry parameters object, so it does not fully exploit the parameter surface.

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?

States a specific verb and resource ('Quote one complete enclosure base and lid, with configured hardware') and ties it to the prepare_enclosure workflow, which cleanly separates it from quote_gripper, quote_stamping, and quote_workholding. An agent can identify the correct tool without opening the sibling schemas.

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?

Gives an explicit precondition ('after the customer reviews the exact prepare_enclosure revision') and an explicit exclusion ('do not use single-part checkout or update tools for these parts'). Both the when and the when-not are stated, leaving nothing to inference.

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

quote_gripperQuote GripperAInspect

Compliant gripper kits with two TPU pads, two rigid carriers and two keepers per kit. Quote the exact customer-reviewed configuration and revision as one complete set. Consumes one quote allowance. Reuse idempotencyKey for retries. Returns a browser link for customer checkout; individual-part update and checkout are blocked.

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenNoGuest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token.
configurationYesWorkbench configuration including geometry, materials, quantity and order options.
idempotencyKeyYesStable unique key for retrying this complete-set quote.
reviewConfirmedYesTrue only after the customer has reviewed this exact design revision.
reviewedRevisionYesExact revision returned by preparation and reviewed by the customer.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false, openWorldHint=false, destructiveHint=false. The description adds genuine context beyond that: an allowance is consumed per call, retries are idempotent via idempotencyKey, the response yields a checkout browser link, and per-part update/checkout paths are blocked. It omits auth/permission requirements, so it lands at 4.

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?

Five compact sentences, front-loaded with the resource and kit definition before the action and behavioral constraints. Each sentence carries distinct information (composition, action, cost, retries, return/blocked behavior) with minimal waste.

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 annotations, a fully described nested schema, and an output schema, the description only needs to cover workflow and side effects, which it does (reviewed revision prerequisite, allowance consumption, idempotency, blocked paths). It leaves authentication context to the accessToken schema field, which is acceptable but not exhaustive.

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 schema already documents all five parameters including the nested configuration fields. The description reinforces the complete-set requirement for configuration and the retry semantics of idempotencyKey but adds no syntax or format detail beyond the schema, so the baseline 3 is appropriate.

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 states a specific verb+resource (quote a compliant gripper kit) and defines kit composition (two TPU pads, two carriers, two keepers), so the agent knows exactly what is produced. It stops short of naming how it differs from the parallel sibling tools quote_enclosure/quote_stamping/quote_workholding, so it earns a 4 rather than a 5.

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 specifies the prerequisite state ('customer-reviewed configuration and revision as one complete set'), warns about cost ('consumes one quote allowance'), instructs on retry behavior ('reuse idempotencyKey for retries'), and notes exclusions ('individual-part update and checkout are blocked'). It never explicitly routes to prepare_gripper or contrasts with the other quote_* siblings, which keeps it from a 5.

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

quote_stampingQuote StampingAInspect

Matched lower and upper stamping dies using the approved print process. Simulation is not exposed. Quote the exact customer-reviewed configuration and revision as one complete set. Consumes one quote allowance. Reuse idempotencyKey for retries. Returns a browser link for customer checkout; individual-part update and checkout are blocked.

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenNoGuest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token.
configurationYesWorkbench configuration including geometry, materials, quantity and order options.
idempotencyKeyYesStable unique key for retrying this complete-set quote.
reviewConfirmedYesThe customer reviewed this exact die pair, sheet assumptions, quantity and prototype limitations. This does not authorize checkout or certify a pressing process.
reviewedRevisionYesExact revision returned by preparation and reviewed by the customer.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the sparse annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=false), the description discloses real behavioral traits: it consumes one quote allowance (a cost), idempotencyKey should be reused for retries, it returns a browser checkout link, and individual-part update plus checkout are blocked. These are exactly the side-effect and limitation details an agent needs.

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?

Six short sentences, front-loaded with purpose, and every sentence carries information (scope, cost, retry key, return, blocked actions). The telegraphic phrasing is slightly choppy, but nothing is wasted.

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 mutating tool with an output schema, the description covers prerequisites (reviewed revision), cost, retry semantics, and blocked follow-ups, so an agent can call it correctly. It could still be improved by explicitly naming the prerequisite tool and whether an access token/session is required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds meaning: the configuration/revision must be the exact customer-reviewed complete set and reviewedRevision is the value returned by preparation. This clarifies the semantics of the required parameters beyond the schema's field-level docs.

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 description names a specific verb (quote) and resource (matched lower/upper stamping dies) and scopes it to the approved print process, which cleanly separates it from prepare_stamping and the other quote_* siblings. An agent can identify the action and artifact without opening the schema.

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 gives clear context that this quotes the exact customer-reviewed configuration and revision as one complete set, and that simulation is not exposed, implying it is the real (non-simulated) quoting path. It stops short of explicitly naming the prerequisite tool (prepare_stamping) or stating when not to use it versus alternatives.

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

quote_workholdingQuote WorkholdingAInspect

Locating nests, clamped fixtures and soft jaws from dimensions or a supported straight-extrusion STL. Quote the exact customer-reviewed configuration and revision as one complete set. Consumes one quote allowance. Reuse idempotencyKey for retries. Returns a browser link for customer checkout; individual-part update and checkout are blocked.

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenNoGuest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token.
configurationYesWorkbench configuration including geometry, materials, quantity and order options.
idempotencyKeyYesStable unique key for retrying this complete-set quote.
reviewConfirmedYesThe complete current configuration, mounting pattern and setup notes were reviewed. Geometry checks do not certify clamping strength or the machining setup.
reviewedRevisionYesExact revision returned by preparation and reviewed by the customer.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only say readOnly=false, destructive=false, openWorld=false; the description goes well beyond by disclosing a quota cost ('Consumes one quote allowance'), idempotency behavior ('Reuse idempotencyKey for retries'), the return artifact ('a browser link for customer checkout'), and hard downstream limits (individual-part update and checkout blocked). These are exactly the operational traits an agent needs before committing a write.

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?

Five short sentences, front-loaded with the purpose and input modes, then cost, then retry semantics, then output/limits. Every sentence carries information; density is high but nothing is padding, though the description is close to the upper limit for its length.

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?

An output schema exists, so return values need not be detailed, and the description still notes the checkout link. Given the complex nested configuration, it adequately covers sourcing the geometry, the review prerequisite, quota impact, retry behavior and blocked follow-ups; only the explicit predecessor tool is left implicit.

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 schema already explains configuration, reviewedRevision, reviewConfirmed and idempotencyKey. The description's mention that idempotencyKey should be reused for retries largely restates the schema's own 'Stable unique key for retrying this complete-set quote', adding no new syntax or format detail, so the baseline of 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?

States a specific verb (Quote) plus the resource (workholding: locating nests, clamped fixtures, soft jaws) and the input mode (dimensions or a supported straight-extrusion STL), so the agent can distinguish it from prepare_workholding and from the other quote_* siblings. The scope is sharpened by 'the exact customer-reviewed configuration and revision as one complete set', which rules out partial quoting.

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?

The description conveys the precondition (a configuration and revision that the customer has already reviewed) and the downstream restriction ('individual-part update and checkout are blocked'), which tells the agent this is a terminal, whole-set action. It does not explicitly name the sibling to call first (prepare_workholding) or which tool handles updates/quotes.get, leaving a small inference gap.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedprinting.sessions.start2 fields changed
      • changedInput schema / properties / agentName / description
        Previous value: -"Optional agent or platform name for support attribution."New value: +"Report the actual host platform: ChatGPT, Cursor, Grok Bot, Grok, Claude, or Codex. Use your application name for another host, or unknown if unavailable. Do not use a task, persona or model name. Stored with quotes and paid orders for source attribution."
      • addedInput schema / required
        Added value: +[
        +  "agentName"
        +]
  2. 9 tool updates
    • Addedget_workbench_capabilities
    • Addedprepare_enclosure
    • Addedprepare_gripper
    • Addedprepare_stamping
    • Addedprepare_workholding
    • Addedquote_enclosure
    • Addedquote_gripper
    • Addedquote_stamping
    • Addedquote_workholding
  3. 1 tool update
    • Changedprinting.capabilities.get1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": true,
        -    "properties": {
        -      "acceptedFileFormats": {
        -        "description": "Accepted 3D model filename extensions.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "checkoutRequiresCustomerAction": {
        -        "description": "Whether checkout requires customer action.",
        -        "type": "boolean"
        -      },
        -      "materials": {
        -        "description": "Currently available print materials.",
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "id": {
        -              "description": "Material identifier.",
        -              "type": "string"
        -            },
        -            "name": {
        -              "description": "Material display name.",
        -              "type": "string"
        -            },
        -            "overheadMinutesPerPlate": {
        -              "description": "Setup, warmup and cooldown minutes per occupied plate.",
        -              "type": "number"
        -            },
        -            "sellingCentsPerGram": {
        -              "description": "Material selling rate in USD cents per gram.",
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "maxFileSizeMb": {
        -        "description": "Maximum decoded model size in megabytes.",
        -        "type": "number"
        -      },
        -      "maxQuantity": {
        -        "description": "Maximum units accepted in one quote.",
        -        "type": "integer"
        -      },
        -      "printPricing": {
        -        "additionalProperties": false,
        -        "description": "Machine-time pricing: the $100 job charge includes the first 60 machine minutes, including setup and cooldown; additional time is $1/minute. Material, rush, fulfillment, and tax are additional. Use returned server totals.",
        -        "properties": {
        -          "additionalMachineCentsPerMinute": {
        -            "description": "Charge in currency cents per minute beyond the included allowance.",
        -            "type": "integer"
        -          },
        -          "currency": {
        -            "description": "Currency code for pricing amounts.",
        -            "type": "string"
        -          },
        -          "finalPriceSource": {
        -            "description": "Authoritative pricing source: quote_or_build_server_totals.",
        -            "type": "string"
        -          },
        -          "includedMachineMinutes": {
        -            "description": "Machine minutes included in the job charge, including setup and cooldown.",
        -            "type": "integer"
        -          },
        -          "jobChargeCents": {
        -            "description": "Job charge in currency cents, including the initial machine-time allowance.",
        -            "type": "integer"
        -          },
        -          "materialChargeAdded": {
        -            "description": "Whether material charges are added to machine-time pricing.",
        -            "type": "boolean"
        -          },
        -          "minimumAppliedOncePerBuild": {
        -            "description": "Whether the job minimum applies once across the build.",
        -            "type": "boolean"
        -          },
        -          "overheadBasis": {
        -            "description": "Basis for setup and cooldown allowances: occupied_plate means each occupied plate incurs an allowance.",
        -            "type": "string"
        -          },
        -          "quantityAlreadyIncludedInSlice": {
        -            "description": "Slice totals already include all requested copies; do not multiply again.",
        -            "type": "boolean"
        -          },
        -          "samePartMultiMaterial": {
        -            "description": "Policy for a single part using multiple materials; human_review_required means manual review is needed.",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "currency",
        -          "jobChargeCents",
        -          "includedMachineMinutes",
        -          "additionalMachineCentsPerMinute",
        -          "materialChargeAdded",
        -          "minimumAppliedOncePerBuild",
        -          "quantityAlreadyIncludedInSlice",
        -          "overheadBasis",
        -          "samePartMultiMaterial",
        -          "finalPriceSource"
        -        ],
        -        "type": "object"
        -      },
        -      "publicGuestAccess": {
        -        "additionalProperties": true,
        -        "description": "Guest access limits and entry tool.",
        -        "type": "object"
        -      },
        -      "quotePrice": {
        -        "description": "Price charged to generate a quote.",
        -        "type": "number"
        -      },
        -      "service": {
        -        "description": "AIURION service name.",
        -        "type": "string"
        -      },
        -      "success": {
        -        "const": true,
        -        "description": "Confirms the operation succeeded.",
        -        "type": "boolean"
        -      }
        -    },
        -    "required": [
        -      "success",
        -      "service",
        -      "acceptedFileFormats",
        -      "materials",
        -      "printPricing"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": true,
        -    "description": "A structured AIURION tool error.",
        -    "properties": {
        -      "error": {
        -        "additionalProperties": true,
        -        "description": "Machine-readable error details.",
        -        "properties": {
        -          "code": {
        -            "description": "Stable error code.",
        -            "type": "string"
        -          },
        -          "message": {
        -            "description": "Human-readable error message.",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "code",
        -          "message"
        -        ],
        -        "type": "object"
        -      },
        -      "success": {
        -        "const": false,
        -        "type": "boolean"
        -      }
        -    },
        -    "required": [
        -      "success",
        -      "error"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": true,
        +    "properties": {
        +      "acceptedFileFormats": {
        +        "description": "Accepted 3D model filename extensions.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "checkoutRequiresCustomerAction": {
        +        "description": "Whether checkout requires customer action.",
        +        "type": "boolean"
        +      },
        +      "materials": {
        +        "description": "Currently available print materials.",
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "id": {
        +              "description": "Material identifier.",
        +              "type": "string"
        +            },
        +            "name": {
        +              "description": "Material display name.",
        +              "type": "string"
        +            },
        +            "overheadMinutesPerPlate": {
        +              "description": "Setup, warmup and cooldown minutes per occupied plate.",
        +              "type": "number"
        +            },
        +            "sellingCentsPerGram": {
        +              "description": "Material selling rate in USD cents per gram.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "maxFileSizeMb": {
        +        "description": "Maximum decoded model size in megabytes.",
        +        "type": "number"
        +      },
        +      "maxQuantity": {
        +        "description": "Maximum units accepted in one quote.",
        +        "type": "integer"
        +      },
        +      "printPricing": {
        +        "additionalProperties": false,
        +        "description": "The $100 job minimum applies once to material plus machine time at $60/hour ($1/minute), including setup and cooldown. Material is included in the minimum, not added on top of it. Rush, fulfillment, tax, and separately quoted hardware are additional. Use returned server totals.",
        +        "properties": {
        +          "additionalMachineCentsPerMinute": {
        +            "description": "Charge in currency cents per minute beyond the included allowance.",
        +            "type": "integer"
        +          },
        +          "currency": {
        +            "description": "Currency code for pricing amounts.",
        +            "type": "string"
        +          },
        +          "finalPriceSource": {
        +            "description": "Authoritative pricing source: quote_or_build_server_totals.",
        +            "type": "string"
        +          },
        +          "formula": {
        +            "description": "Print subtotal calculation in cents, before rush, fulfillment, and tax.",
        +            "type": "string"
        +          },
        +          "includedMachineMinutes": {
        +            "description": "Zero: machine time is metered from the first minute; the combined material/time subtotal has a $100 floor.",
        +            "type": "integer"
        +          },
        +          "jobChargeCents": {
        +            "description": "Job charge in currency cents, including the initial machine-time allowance.",
        +            "type": "integer"
        +          },
        +          "materialChargeAdded": {
        +            "description": "Material is added to machine time before the job minimum is applied.",
        +            "type": "boolean"
        +          },
        +          "minimumAppliedOncePerBuild": {
        +            "description": "Whether the job minimum applies once across the build.",
        +            "type": "boolean"
        +          },
        +          "minimumIncludesMaterial": {
        +            "description": "True: material counts toward the minimum.",
        +            "type": "boolean"
        +          },
        +          "overheadBasis": {
        +            "description": "Basis for setup and cooldown allowances: occupied_plate means each occupied plate incurs an allowance.",
        +            "type": "string"
        +          },
        +          "quantityAlreadyIncludedInSlice": {
        +            "description": "Slice totals already include all requested copies; do not multiply again.",
        +            "type": "boolean"
        +          },
        +          "samePartMultiMaterial": {
        +            "description": "Policy for a single part using multiple materials; human_review_required means manual review is needed.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "currency",
        +          "jobChargeCents",
        +          "includedMachineMinutes",
        +          "additionalMachineCentsPerMinute",
        +          "materialChargeAdded",
        +          "minimumAppliedOncePerBuild",
        +          "quantityAlreadyIncludedInSlice",
        +          "overheadBasis",
        +          "samePartMultiMaterial",
        +          "finalPriceSource"
        +        ],
        +        "type": "object"
        +      },
        +      "publicGuestAccess": {
        +        "additionalProperties": true,
        +        "description": "Guest access limits and entry tool.",
        +        "type": "object"
        +      },
        +      "quotePrice": {
        +        "description": "Price charged to generate a quote.",
        +        "type": "number"
        +      },
        +      "service": {
        +        "description": "AIURION service name.",
        +        "type": "string"
        +      },
        +      "success": {
        +        "const": true,
        +        "description": "Confirms the operation succeeded.",
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "success",
        +      "service",
        +      "acceptedFileFormats",
        +      "materials",
        +      "printPricing"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "description": "A structured AIURION tool error.",
        +    "properties": {
        +      "error": {
        +        "additionalProperties": true,
        +        "description": "Machine-readable error details.",
        +        "properties": {
        +          "code": {
        +            "description": "Stable error code.",
        +            "type": "string"
        +          },
        +          "message": {
        +            "description": "Human-readable error message.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "code",
        +          "message"
        +        ],
        +        "type": "object"
        +      },
        +      "success": {
        +        "const": false,
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "success",
        +      "error"
        +    ],
        +    "type": "object"
        +  }
        +]
  4. 1 tool update
    • Changedprinting.quotes.create3 fields changed
      • addedInput schema / oneOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "fileBase64"
        +      ]
        +    },
        +    "required": [
        +      "file"
        +    ]
        +  },
        +  {
        +    "not": {
        +      "required": [
        +        "file"
        +      ]
        +    },
        +    "required": [
        +      "fileName",
        +      "fileBase64"
        +    ]
        +  }
        +]
      • addedInput schema / properties / file
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "User-selected model file supplied by ChatGPT. Use fileName if the file metadata omits its original filename.",
        +  "properties": {
        +    "download_url": {
        +      "description": "Temporary HTTPS download URL supplied by ChatGPT.",
        +      "type": "string"
        +    },
        +    "file_id": {
        +      "description": "ChatGPT file identifier.",
        +      "type": "string"
        +    },
        +    "file_name": {
        +      "description": "Optional original model filename.",
        +      "type": "string"
        +    },
        +    "mime_type": {
        +      "description": "Optional MIME type.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "download_url",
        +    "file_id"
        +  ],
        +  "type": "object"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "fileName",
        -  "fileBase64",
        -  "idempotencyKey"
        -]New value: +[
        +  "idempotencyKey"
        +]
  5. 1 tool update
    • Changedprinting.capabilities.get1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": true,
        -    "properties": {
        -      "acceptedFileFormats": {
        -        "description": "Accepted 3D model filename extensions.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "checkoutRequiresCustomerAction": {
        -        "description": "Whether checkout requires customer action.",
        -        "type": "boolean"
        -      },
        -      "materials": {
        -        "description": "Currently available print materials.",
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "id": {
        -              "description": "Material identifier.",
        -              "type": "string"
        -            },
        -            "name": {
        -              "description": "Material display name.",
        -              "type": "string"
        -            },
        -            "overheadMinutesPerPlate": {
        -              "description": "Setup, warmup and cooldown minutes per occupied plate.",
        -              "type": "number"
        -            },
        -            "sellingCentsPerGram": {
        -              "description": "Material selling rate in USD cents per gram.",
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "maxFileSizeMb": {
        -        "description": "Maximum decoded model size in megabytes.",
        -        "type": "number"
        -      },
        -      "maxQuantity": {
        -        "description": "Maximum units accepted in one quote.",
        -        "type": "integer"
        -      },
        -      "publicGuestAccess": {
        -        "additionalProperties": true,
        -        "description": "Guest access limits and entry tool.",
        -        "type": "object"
        -      },
        -      "quotePrice": {
        -        "description": "Price charged to generate a quote.",
        -        "type": "number"
        -      },
        -      "service": {
        -        "description": "AIURION service name.",
        -        "type": "string"
        -      },
        -      "success": {
        -        "const": true,
        -        "description": "Confirms the operation succeeded.",
        -        "type": "boolean"
        -      }
        -    },
        -    "required": [
        -      "success",
        -      "service",
        -      "acceptedFileFormats",
        -      "materials"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": true,
        -    "description": "A structured AIURION tool error.",
        -    "properties": {
        -      "error": {
        -        "additionalProperties": true,
        -        "description": "Machine-readable error details.",
        -        "properties": {
        -          "code": {
        -            "description": "Stable error code.",
        -            "type": "string"
        -          },
        -          "message": {
        -            "description": "Human-readable error message.",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "code",
        -          "message"
        -        ],
        -        "type": "object"
        -      },
        -      "success": {
        -        "const": false,
        -        "type": "boolean"
        -      }
        -    },
        -    "required": [
        -      "success",
        -      "error"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": true,
        +    "properties": {
        +      "acceptedFileFormats": {
        +        "description": "Accepted 3D model filename extensions.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "checkoutRequiresCustomerAction": {
        +        "description": "Whether checkout requires customer action.",
        +        "type": "boolean"
        +      },
        +      "materials": {
        +        "description": "Currently available print materials.",
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "id": {
        +              "description": "Material identifier.",
        +              "type": "string"
        +            },
        +            "name": {
        +              "description": "Material display name.",
        +              "type": "string"
        +            },
        +            "overheadMinutesPerPlate": {
        +              "description": "Setup, warmup and cooldown minutes per occupied plate.",
        +              "type": "number"
        +            },
        +            "sellingCentsPerGram": {
        +              "description": "Material selling rate in USD cents per gram.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "maxFileSizeMb": {
        +        "description": "Maximum decoded model size in megabytes.",
        +        "type": "number"
        +      },
        +      "maxQuantity": {
        +        "description": "Maximum units accepted in one quote.",
        +        "type": "integer"
        +      },
        +      "printPricing": {
        +        "additionalProperties": false,
        +        "description": "Machine-time pricing: the $100 job charge includes the first 60 machine minutes, including setup and cooldown; additional time is $1/minute. Material, rush, fulfillment, and tax are additional. Use returned server totals.",
        +        "properties": {
        +          "additionalMachineCentsPerMinute": {
        +            "description": "Charge in currency cents per minute beyond the included allowance.",
        +            "type": "integer"
        +          },
        +          "currency": {
        +            "description": "Currency code for pricing amounts.",
        +            "type": "string"
        +          },
        +          "finalPriceSource": {
        +            "description": "Authoritative pricing source: quote_or_build_server_totals.",
        +            "type": "string"
        +          },
        +          "includedMachineMinutes": {
        +            "description": "Machine minutes included in the job charge, including setup and cooldown.",
        +            "type": "integer"
        +          },
        +          "jobChargeCents": {
        +            "description": "Job charge in currency cents, including the initial machine-time allowance.",
        +            "type": "integer"
        +          },
        +          "materialChargeAdded": {
        +            "description": "Whether material charges are added to machine-time pricing.",
        +            "type": "boolean"
        +          },
        +          "minimumAppliedOncePerBuild": {
        +            "description": "Whether the job minimum applies once across the build.",
        +            "type": "boolean"
        +          },
        +          "overheadBasis": {
        +            "description": "Basis for setup and cooldown allowances: occupied_plate means each occupied plate incurs an allowance.",
        +            "type": "string"
        +          },
        +          "quantityAlreadyIncludedInSlice": {
        +            "description": "Slice totals already include all requested copies; do not multiply again.",
        +            "type": "boolean"
        +          },
        +          "samePartMultiMaterial": {
        +            "description": "Policy for a single part using multiple materials; human_review_required means manual review is needed.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "currency",
        +          "jobChargeCents",
        +          "includedMachineMinutes",
        +          "additionalMachineCentsPerMinute",
        +          "materialChargeAdded",
        +          "minimumAppliedOncePerBuild",
        +          "quantityAlreadyIncludedInSlice",
        +          "overheadBasis",
        +          "samePartMultiMaterial",
        +          "finalPriceSource"
        +        ],
        +        "type": "object"
        +      },
        +      "publicGuestAccess": {
        +        "additionalProperties": true,
        +        "description": "Guest access limits and entry tool.",
        +        "type": "object"
        +      },
        +      "quotePrice": {
        +        "description": "Price charged to generate a quote.",
        +        "type": "number"
        +      },
        +      "service": {
        +        "description": "AIURION service name.",
        +        "type": "string"
        +      },
        +      "success": {
        +        "const": true,
        +        "description": "Confirms the operation succeeded.",
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "success",
        +      "service",
        +      "acceptedFileFormats",
        +      "materials",
        +      "printPricing"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "description": "A structured AIURION tool error.",
        +    "properties": {
        +      "error": {
        +        "additionalProperties": true,
        +        "description": "Machine-readable error details.",
        +        "properties": {
        +          "code": {
        +            "description": "Stable error code.",
        +            "type": "string"
        +          },
        +          "message": {
        +            "description": "Human-readable error message.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "code",
        +          "message"
        +        ],
        +        "type": "object"
        +      },
        +      "success": {
        +        "const": false,
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "success",
        +      "error"
        +    ],
        +    "type": "object"
        +  }
        +]
  6. 4 tool updates
    • Changedprinting.capabilities.get1 field changed
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": true,
        -    "properties": {
        -      "acceptedFileFormats": {
        -        "description": "Accepted 3D model filename extensions.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "checkoutRequiresCustomerAction": {
        -        "description": "Whether checkout requires customer action.",
        -        "type": "boolean"
        -      },
        -      "materials": {
        -        "description": "Currently available print materials.",
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "id": {
        -              "description": "Material identifier.",
        -              "type": "string"
        -            },
        -            "name": {
        -              "description": "Material display name.",
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "maxFileSizeMb": {
        -        "description": "Maximum decoded model size in megabytes.",
        -        "type": "number"
        -      },
        -      "maxQuantity": {
        -        "description": "Maximum units accepted in one quote.",
        -        "type": "integer"
        -      },
        -      "publicGuestAccess": {
        -        "additionalProperties": true,
        -        "description": "Guest access limits and entry tool.",
        -        "type": "object"
        -      },
        -      "quotePrice": {
        -        "description": "Price charged to generate a quote.",
        -        "type": "number"
        -      },
        -      "service": {
        -        "description": "AIURION service name.",
        -        "type": "string"
        -      },
        -      "success": {
        -        "const": true,
        -        "description": "Confirms the operation succeeded.",
        -        "type": "boolean"
        -      }
        -    },
        -    "required": [
        -      "success",
        -      "service",
        -      "acceptedFileFormats",
        -      "materials"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": true,
        -    "description": "A structured AIURION tool error.",
        -    "properties": {
        -      "error": {
        -        "additionalProperties": true,
        -        "description": "Machine-readable error details.",
        -        "properties": {
        -          "code": {
        -            "description": "Stable error code.",
        -            "type": "string"
        -          },
        -          "message": {
        -            "description": "Human-readable error message.",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "code",
        -          "message"
        -        ],
        -        "type": "object"
        -      },
        -      "success": {
        -        "const": false,
        -        "type": "boolean"
        -      }
        -    },
        -    "required": [
        -      "success",
        -      "error"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": true,
        +    "properties": {
        +      "acceptedFileFormats": {
        +        "description": "Accepted 3D model filename extensions.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "checkoutRequiresCustomerAction": {
        +        "description": "Whether checkout requires customer action.",
        +        "type": "boolean"
        +      },
        +      "materials": {
        +        "description": "Currently available print materials.",
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "id": {
        +              "description": "Material identifier.",
        +              "type": "string"
        +            },
        +            "name": {
        +              "description": "Material display name.",
        +              "type": "string"
        +            },
        +            "overheadMinutesPerPlate": {
        +              "description": "Setup, warmup and cooldown minutes per occupied plate.",
        +              "type": "number"
        +            },
        +            "sellingCentsPerGram": {
        +              "description": "Material selling rate in USD cents per gram.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "maxFileSizeMb": {
        +        "description": "Maximum decoded model size in megabytes.",
        +        "type": "number"
        +      },
        +      "maxQuantity": {
        +        "description": "Maximum units accepted in one quote.",
        +        "type": "integer"
        +      },
        +      "publicGuestAccess": {
        +        "additionalProperties": true,
        +        "description": "Guest access limits and entry tool.",
        +        "type": "object"
        +      },
        +      "quotePrice": {
        +        "description": "Price charged to generate a quote.",
        +        "type": "number"
        +      },
        +      "service": {
        +        "description": "AIURION service name.",
        +        "type": "string"
        +      },
        +      "success": {
        +        "const": true,
        +        "description": "Confirms the operation succeeded.",
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "success",
        +      "service",
        +      "acceptedFileFormats",
        +      "materials"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "description": "A structured AIURION tool error.",
        +    "properties": {
        +      "error": {
        +        "additionalProperties": true,
        +        "description": "Machine-readable error details.",
        +        "properties": {
        +          "code": {
        +            "description": "Stable error code.",
        +            "type": "string"
        +          },
        +          "message": {
        +            "description": "Human-readable error message.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "code",
        +          "message"
        +        ],
        +        "type": "object"
        +      },
        +      "success": {
        +        "const": false,
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "success",
        +      "error"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedprinting.checkout.create1 field changed
      • changedInput schema / properties / materialId / description
        Previous value: -"AIURION material identifier listed by printing.capabilities.get."New value: +"AIURION material identifier listed by printing.capabilities.get. Send this when creating a quote; omission defaults to black_pla. A material change re-slices the model and invalidates the prior price approval."
    • Changedprinting.quotes.create1 field changed
      • addedInput schema / properties / materialId
        Added value: +{
        +  "description": "AIURION material identifier listed by printing.capabilities.get. Send this when creating a quote; omission defaults to black_pla. A material change re-slices the model and invalidates the prior price approval.",
        +  "type": "string"
        +}
    • Changedprinting.quotes.update1 field changed
      • changedInput schema / properties / materialId / description
        Previous value: -"AIURION material identifier listed by printing.capabilities.get."New value: +"AIURION material identifier listed by printing.capabilities.get. Send this when creating a quote; omission defaults to black_pla. A material change re-slices the model and invalidates the prior price approval."
  7. 2 tool updates
    • Changedprinting.checkout.create1 field changed
      • changedInput schema / properties / fulfillmentMethod / enum
        Previous value: -[
        -  "shipping",
        -  "pickup",
        -  "courier"
        -]New value: +[
        +  "shipping",
        +  "courier"
        +]
    • Changedprinting.quotes.update1 field changed
      • changedInput schema / properties / fulfillmentMethod / enum
        Previous value: -[
        -  "shipping",
        -  "pickup",
        -  "courier"
        -]New value: +[
        +  "shipping",
        +  "courier"
        +]
  8. 7 tool updates
    • First observedprinting.capabilities.get
    • First observedprinting.checkout.create
    • First observedprinting.orders.get
    • First observedprinting.quotes.create
    • First observedprinting.quotes.get
    • First observedprinting.quotes.update
    • First observedprinting.sessions.start

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Calculates 3D printing cost, time, material weight and build-plate fit from plain dimensions given in the conversation, with no STL upload and no API key. Covers PLA, PETG, ABS, ASA, TPU, Nylon, PC and PLA-CF, plus build volumes for Bambu Lab, Prusa, Creality, Voron and Elegoo printers.
    3
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    MCP server for real FDM 3D-printing slicing, quoting, and design-for-manufacturability analysis via the FabTally API, supporting 12 printer profiles and 12 materials. Includes free discovery/printability tools and paid slice/quote/orientation tools settled via x402 (USDC on Base).
    6
    -
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides end-to-end 3D printing automation for Bambu Lab printers, allowing users to generate, slice, and monitor prints using natural language. It features model generation from text or images, real-time camera monitoring, and automated print quality improvement.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources