Skip to content

Make Parts Now: 3D Printing & CNC Machining Quotes

by makepartsnow.com · remote · no sign-in to list tools · v1.0.0 · published by com.makepartsnow

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

Deletes · 4Changes · 7

18 tools: 4 can delete or cancel things, 7 change things and 7 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http manufacturing https://makepartsnow.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "get_upload_url" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_upload_url" says "get": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

18 tools

Deletes or cancels 4Claude Code: deny
  • pay_with_cryptoOption B: pay autonomously in USDC via x402 (agent accounts only).No findings

    Why it is in this group

    • The name "pay_with_crypto" says "pay": a word that usually means money moves, which cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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 credit_confirmation token instead; call again with confirm_credit to place the order.

    Annotations the server declares

    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
    • readOnlyHint: false
    • title: Pay with USDC
  • update_accountChange the agent account's name, organization, email, default ship_to or callback_url; omitted fields stay.No findings

    Why it is in this group

    • The name "update_account" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: false
    • title: Update account
  • update_quoteChange speed (economy|standard|fast|faster|fastest), ship_to, shipping_option, items.No findings

    Why it is in this group

    • The name "update_quote" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
    • title: Update quote
Changes things 7Claude Code: ask
  • create_agent_accountCreate an autonomous agent account and API key.No findings

    Why it is in this group

    • The name "create_agent_account" says "create": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • readOnlyHint: false
    • title: Create agent account
  • create_quoteCreate a quote.No findings

    Why it is in this group

    • The name "create_quote" says "create": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
    • title: Create quote
  • discard_quoteClose a quote you no longer need, so it stops counting toward the open-quote limit.No findings

    Why it is in this group

    • The description's first verb is "close": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: false
    • title: Discard quote
  • get_upload_urlGet a one-time URL to HTTP PUT a large file directly (no auth header needed).1 finding

    Why it is in this group

    • The name "get_upload_url" says "get": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "get_upload_url" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_upload_url" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Get a one-time URL to HTTP PUT a large file directly (no auth header needed). Returns the part on upload.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
    • title: Get upload URL
  • request_order_cancellationAsk the shop to cancel an order that hasn't shipped.No findings

    Why it is in this group

    • The name "request_order_cancellation" says "request": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: false
    • title: Request order cancellation
  • set_refund_preferenceFor USDC orders: receive refunds as 'usdc' (sent to the paying wallet) or 'credit' (account credit).No findings

    Why it is in this group

    • The name "set_refund_preference" says "set": a word for a change.
    Description, as the server wrote it
    For USDC orders: receive refunds as 'usdc' (sent to the paying wallet) or 'credit' (account credit).

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: false
    • title: Set refund preference
  • upload_partUpload a CAD file (STL, 3MF, OBJ, STEP) from an https URL or base64 content (filename required for base64).No findings

    Why it is in this group

    • The name "upload_part" says "upload": a word for a change.
    Description, as the server wrote it
    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' (usually seconds), or pass wait_seconds.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • readOnlyHint: false
    • title: Upload part
Only reads 7Claude Code: allow
  • get_accountThe authenticated account: contact email, default ship_to, credit balance, spending limits.No findings

    Why it is in this group

    • The name "get_account" says "get": a word for reading.
    Description, as the server wrote it
    The authenticated account: contact email, default ship_to, credit balance, spending limits.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Get account
  • get_capabilitiesProcesses, materials, colors, finishes, services, speeds, file formats, limits and payment methods.No findings

    Why it is in this group

    • The name "get_capabilities" says "get": a word for reading.
    Description, as the server wrote it
    Processes, materials, colors, finishes, services, speeds, file formats, limits and payment methods.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Get capabilities
  • get_orderOrder status, ship-by and arrive-by dates, tracking.No findings

    Why it is in this group

    • The name "get_order" says "get": a word for reading.
    Description, as the server wrote it
    Order status, ship-by and arrive-by dates, tracking.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Get order
  • get_partPart status, measured geometry (mm), suggested units, DFM warnings, and processes that fit it.No findings

    Why it is in this group

    • The name "get_part" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Get part
  • get_quoteCurrent pricing, speeds, shipping options, warnings and next_steps for a quote.No findings

    Why it is in this group

    • The name "get_quote" says "get": a word for reading.
    Description, as the server wrote it
    Current pricing, speeds, shipping options, warnings and next_steps for a quote.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Get quote
  • list_ordersOrders for this account, newest first.No findings

    Why it is in this group

    • The name "list_orders" says "list": a word for reading.
    Description, as the server wrote it
    Orders for this account, newest first. Filter by quote_id to check whether a checkout link was paid.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: List orders
  • list_quotesYour quotes, newest first: id, number, status, item_count, expires_at and the last priced total_before_tax.No findings

    Why it is in this group

    • The name "list_quotes" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: List quotes

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http manufacturing https://makepartsnow.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__manufacturing__get_capabilities",
      "mcp__manufacturing__get_account",
      "mcp__manufacturing__get_part",
      "mcp__manufacturing__get_quote",
      "mcp__manufacturing__list_quotes",
      "mcp__manufacturing__get_order",
      "mcp__manufacturing__list_orders"
    ],
    "ask": [
      "mcp__manufacturing__create_agent_account",
      "mcp__manufacturing__upload_part",
      "mcp__manufacturing__get_upload_url",
      "mcp__manufacturing__create_quote",
      "mcp__manufacturing__discard_quote",
      "mcp__manufacturing__set_refund_preference",
      "mcp__manufacturing__request_order_cancellation"
    ],
    "deny": [
      "mcp__manufacturing__update_account",
      "mcp__manufacturing__update_quote",
      "mcp__manufacturing__create_checkout_link",
      "mcp__manufacturing__pay_with_crypto"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as manufacturing. Review it before you use it.