Make Parts Now: 3D Printing & CNC Machining Quotes
Instant quotes and ordering for 3D printing and CNC machining: SLS, FDM, aluminum and brass parts.
| Endpoint | https://makepartsnow.com/mcp (streamable-http) |
|---|---|
| Registry version | 1.0.0 |
| Now | 18 tools · grade C (73) · pin ts_8d1c5ce182a57f4f28d257e509ee6d73 · protocol 2025-06-18 |
| First / last listed | 2026-11-05 02:04 UTC / 2026-11-05 02:04 UTC |
| Grade over time | 2026-11-05: C (73), 18 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: get_capabilities create_agent_account get_account update_account upload_part get_upload_url get_part create_quote get_quote list_quotes discard_quote update_quote create_checkout_link pay_with_crypto get_order list_orders set_refund_preference request_order_cancellation
get_capabilities | Processes, materials, colors, finishes, services, speeds, file formats, limits and payment methods. params: none |
create_agent_account | Create an autonomous agent account and API key. accept_terms must be true (Terms of Sale + Agent Terms).
ship_to: {name, line1, line2?, city, state, postal_code, country: 'US', phone?}. The api_key is shown once. params: name*, email*, accept_terms*, organization, callback_url, ship_to |
get_account | The authenticated account: contact email, default ship_to, credit balance, spending limits. params: none |
update_account | Change the agent account's name, organization, email, default ship_to or callback_url; omitted fields stay.
A new email or callback_url is emailed to the previous account email. Agent accounts only. params: name, organization, email, ship_to, callback_url |
upload_part | Upload a CAD file (STL, 3MF, OBJ, STEP) from an https URL or base64 content (filename required for base64).
MCP requests are limited to 4 MB, so base64 works for files up to about 3 MB; use a URL or get_upload_url for larger files.
no_controlled_data must be true: confirms the file has no CUI/ITAR/export-controlled data.
Returns a part with status 'pending'; poll get_part until 'ready' params: no_controlled_data*, url, content_base64, filename, idempotency_key, wait_seconds |
get_upload_url | Get a one-time URL to HTTP PUT a large file directly (no auth header needed). Returns the part on upload. params: filename*, no_controlled_data* |
get_part | Part status, measured geometry (mm), suggested units, DFM warnings, and processes that fit it.
Pass wait_seconds to wait for a pending part's analysis in this call instead of polling. params: part_id*, wait_seconds |
create_quote | Create a quote. items: [{part_id, quantity, config: {units, process, material, color, finishes, finish_color, services, infill, layer_height}}].
See get_capabilities for valid ids. Returns prices, speed options with ship/arrival dates, and next_steps. params: items*, ship_to, speed, contact_email, po_number, idempotency_key |
get_quote | Current pricing, speeds, shipping options, warnings and next_steps for a quote. params: quote_id* |
list_quotes | Your quotes, newest first: id, number, status, item_count, expires_at and the last priced total_before_tax.
Nothing is repriced; use get_quote for current prices. Use it to find quotes to discard when you hit the open-quote limit. params: status, limit |
discard_quote | Close a quote you no longer need, so it stops counting toward the open-quote limit. It becomes 'expired':
its checkout links and USDC payment requests stop working and it can't be paid. Discarding it again is harmless.
An ordered quote, or one with a USDC payment received, can't be discarded. params: quote_id* |
update_quote | Change speed (economy|standard|fast|faster|fastest), ship_to, shipping_option, items.
update_items: [{item_id, quantity?, config?, notes?}] where config is merged into the item's config. params: quote_id*, ship_to, speed, shipping_option, contact_email, po_number, add_items, update_items, remove_item_ids |
create_checkout_link | Option A: get a Stripe Checkout URL for a human to pay by card (tax added at checkout).
Each new link stops earlier links for the same quote from working. params: quote_id*, idempotency_key |
pay_with_crypto | Option B: pay autonomously in USDC via x402 (agent accounts only).
Call without payment_signature to get the payment requirements (amount, asset, pay_to, network); nothing is charged.
Then sign an x402 'exact' payment and call again with payment_signature (the base64 PAYMENT-SIGNATURE value).
If account credit covers the whole total, you get status 'credit_confirmation_required' and a params: quote_id*, payment_signature, use_credit, confirm_credit |
get_order | Order status, ship-by and arrive-by dates, tracking. params: order_id* |
list_orders | Orders for this account, newest first. Filter by quote_id to check whether a checkout link was paid. params: quote_id |
set_refund_preference | For USDC orders: receive refunds as 'usdc' (sent to the paying wallet) or 'credit' (account credit). params: order_id*, method* |
request_order_cancellation | Ask the shop to cancel an order that hasn't shipped. A person reviews it; production may already have started.
Asking again within 24 hours adds the reason without notifying the shop twice. The order.status_changed webhook
and get_order show the outcome. params: order_id*, reason* |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.