{"serverId":"mcp-registry/com.aiurion/agentic-printing","tools":[{"name":"printing.capabilities.get","fixed":{"name":"printing_capabilities_get","description":"Read AIURION's supported 3D model formats, limits, materials, production options, and purchasing flow.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"Get 3D Printing Capabilities","readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"title":"Get 3D Printing Capabilities"},"changes":[{"kind":"name","detail":"Renamed \"printing.capabilities.get\" → \"printing_capabilities_get\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":65,"tokensAfter":65},{"name":"printing.checkout.create","fixed":{"name":"printing_checkout_create","description":"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.","inputSchema":{"type":"object","required":["quoteId","approvalConfirmed","idempotencyKey"],"properties":{"quoteId":{"type":"string","format":"uuid","description":"AIURION quote UUID returned by printing.quotes.create."},"materialId":{"type":"string","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."},"accessToken":{"type":"string","maxLength":138,"minLength":34,"description":"Guest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token."},"idempotencyKey":{"type":"string","maxLength":128,"minLength":8,"description":"Stable unique key for retrying checkout creation."},"productionSpeed":{"enum":["standard","rush"],"type":"string","description":"Requested production priority: standard or rush."},"approvalConfirmed":{"type":"boolean","const":true,"description":"Set true only after the customer reviews and approves the quote."},"fulfillmentMethod":{"enum":["shipping","courier"],"type":"string","description":"How the completed parts should be delivered."}},"additionalProperties":false},"annotations":{"title":"Create Approved Stripe Checkout","readOnlyHint":false,"openWorldHint":true,"destructiveHint":false},"title":"Create Approved Stripe Checkout"},"changes":[{"kind":"name","detail":"Renamed \"printing.checkout.create\" → \"printing_checkout_create\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":470,"tokensAfter":470},{"name":"printing.orders.get","fixed":{"name":"printing_orders_get","description":"Poll the payment and manufacturing status associated with a credential-owned quote.","inputSchema":{"type":"object","required":["quoteId"],"properties":{"quoteId":{"type":"string","format":"uuid","description":"AIURION quote UUID returned by printing.quotes.create."},"accessToken":{"type":"string","maxLength":138,"minLength":34,"description":"Guest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token."}},"additionalProperties":false},"annotations":{"title":"Get Manufacturing Order Status","readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"title":"Get Manufacturing Order Status"},"changes":[{"kind":"name","detail":"Renamed \"printing.orders.get\" → \"printing_orders_get\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":153,"tokensAfter":153},{"name":"printing.quotes.create","fixed":{"name":"printing_quotes_create","description":"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 checkou","inputSchema":{"type":"object","oneOf":[{"not":{"required":["fileBase64"]},"required":["file"]},{"not":{"required":["file"]},"required":["fileName","fileBase64"]}],"required":["idempotencyKey"],"properties":{"file":{"type":"object","required":["download_url","file_id"],"properties":{"file_id":{"type":"string","description":"ChatGPT file identifier."},"file_name":{"type":"string","description":"Optional original model filename."},"mime_type":{"type":"string","description":"Optional MIME type."},"download_url":{"type":"string","description":"Temporary HTTPS download URL supplied by ChatGPT."}},"description":"User-selected model file supplied by ChatGPT. Use fileName if the file metadata omits its original filename.","additionalProperties":false},"fileName":{"type":"string","description":"Model filename ending in STL, OBJ, STEP, STP, or 3MF."},"quantity":{"type":"integer","default":1,"maximum":150,"minimum":1,"description":"Number of identical parts to quote, from 1 to 150."},"fileBase64":{"type":"string","description":"Base64-encoded model bytes without a data URL prefix."},"materialId":{"type":"string","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."},"accessToken":{"type":"string","maxLength":138,"minLength":34,"description":"Guest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token."},"idempotencyKey":{"type":"string","maxLength":128,"minLength":8,"description":"Stable unique key for this quote attempt."}},"additionalProperties":false},"annotations":{"title":"Create 3D Print Quote","readOnlyHint":false,"openWorldHint":true,"destructiveHint":false},"title":"Create 3D Print Quote"},"changes":[{"kind":"name","detail":"Renamed \"printing.quotes.create\" → \"printing_quotes_create\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":627,"tokensAfter":627},{"name":"printing.quotes.get","fixed":{"name":"printing_quotes_get","description":"Retrieve a quote previously created by this guest session or permanent integration.","inputSchema":{"type":"object","required":["quoteId"],"properties":{"quoteId":{"type":"string","format":"uuid","description":"AIURION quote UUID returned by printing.quotes.create."},"accessToken":{"type":"string","maxLength":138,"minLength":34,"description":"Guest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token."}},"additionalProperties":false},"annotations":{"title":"Get 3D Print Quote","readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"title":"Get 3D Print Quote"},"changes":[{"kind":"name","detail":"Renamed \"printing.quotes.get\" → \"printing_quotes_get\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":153,"tokensAfter":153},{"name":"printing.quotes.preview","fixed":{"name":"printing_quotes_preview","description":"Read the original STL, OBJ or 3MF belonging to an authenticated print quote for the quote review app.","inputSchema":{"type":"object","required":["quoteId"],"properties":{"quoteId":{"type":"string","format":"uuid","description":"AIURION quote UUID returned by printing.quotes.create."},"accessToken":{"type":"string","maxLength":138,"minLength":34,"description":"Guest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Read quoted model preview"},"changes":[{"kind":"name","detail":"Renamed \"printing.quotes.preview\" → \"printing_quotes_preview\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":159,"tokensAfter":159},{"name":"printing.quotes.update","fixed":{"name":"printing_quotes_update","description":"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 ne","inputSchema":{"type":"object","required":["quoteId"],"properties":{"quoteId":{"type":"string","format":"uuid","description":"AIURION quote UUID returned by printing.quotes.create."},"quantity":{"type":"integer","maximum":150,"minimum":1,"description":"Updated number of identical parts, from 1 to 150."},"materialId":{"type":"string","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."},"accessToken":{"type":"string","maxLength":138,"minLength":34,"description":"Guest token returned by printing.sessions.start. Optional when Authorization already carries a permanent key or guest token."},"productionSpeed":{"enum":["standard","rush"],"type":"string","description":"Requested production priority: standard or rush."},"fulfillmentMethod":{"enum":["shipping","courier"],"type":"string","description":"How the completed parts should be delivered."}},"additionalProperties":false},"annotations":{"title":"Update 3D Print Quote","readOnlyHint":false,"openWorldHint":false,"destructiveHint":true},"title":"Update 3D Print Quote"},"changes":[{"kind":"name","detail":"Renamed \"printing.quotes.update\" → \"printing_quotes_update\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":446,"tokensAfter":446},{"name":"printing.sessions.start","fixed":{"name":"printing_sessions_start","description":"Immediately create a public, scoped 24-hour guest session with a small free quote allowance. No account or invitation is required.","inputSchema":{"type":"object","required":["agentName"],"properties":{"agentName":{"type":"string","maxLength":120,"minLength":1,"description":"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."}},"additionalProperties":false},"annotations":{"title":"Start Guest Ordering Session","readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"title":"Start Guest Ordering Session"},"changes":[{"kind":"name","detail":"Renamed \"printing.sessions.start\" → \"printing_sessions_start\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":171,"tokensAfter":171}],"toolsChanged":8,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}