Make Parts Now: 3D Printing & CNC Machining Quotes

com.makepartsnow/manufacturing

Instant quotes and ordering for 3D printing and CNC machining: SLS, FDM, aluminum and brass parts.

Yes, your AI can use this right now.Answered a live MCP handshake in 200 ms with no sign-in needed and exposes 18 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://makepartsnow.com/mcp

18 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
get_capabilitiesread-only

Processes, materials, colors, finishes, services, speeds, file formats, limits and payment methods.

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.

get_accountread-only

The authenticated account: contact email, default ship_to, credit balance, spending limits.

update_accountcan modify

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.

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'

get_upload_url

Get a one-time URL to HTTP PUT a large file directly (no auth header needed). Returns the part on upload.

get_partread-only

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.

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.

get_quoteread-only

Current pricing, speeds, shipping options, warnings and next_steps for a quote.

list_quotesread-only

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.

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.

update_quotecan modify

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.

create_checkout_linkcan modify

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.

pay_with_cryptocan modify

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

get_orderread-only

Order status, ship-by and arrive-by dates, tracking.

list_ordersread-only

Orders for this account, newest first. Filter by quote_id to check whether a checkout link was paid.

set_refund_preference

For USDC orders: receive refunds as 'usdc' (sent to the paying wallet) or 'credit' (account credit).

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.

Alternatives in Design & Media

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”