Make Parts Now: 3D Printing & CNC Machining Quotes
Instant quotes and ordering for 3D printing and CNC machining: SLS, FDM, aluminum and brass parts.
사용해야 할까요
품질 및 안전성
발견 사항 (1)
- LOWget_upload_url에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"manufacturing": {
"url": "https://makepartsnow.com/mcp"
}
}
}원격 엔드포인트
https://makepartsnow.com/mcpstreamable-http할 수 있는 일
도구 목록
도구 (14)
🟢get_capabilities
Processes, materials, colors, finishes, services, speeds, file formats, limits and payment methods.
입력 스키마
{
"type": "object",
"properties": {},
"title": "get_capabilitiesArguments"
}출력 스키마
{
"type": "object",
"additionalProperties": true,
"title": "get_capabilitiesDictOutput"
}🟡create_agent_account(name, email, accept_terms, organization, callback_url, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"name": {
"description": "Name of the agent or app placing orders",
"title": "Name",
"type": "string"
},
"email": {
"description": "Email that receives the account notice, receipts, and order problems",
"title": "Email",
"type": "string"
},
"accept_terms": {
"description": "Must be true to accept the Terms of Sale and Agent Terms",
"title": "Accept Terms",
"type": "boolean"
},
"organization": {
"default": "",
"description": "Company or person operating the agent",
"title": "Organization",
"type": "string"
},
"callback_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Public https URL for signed part, quote, and order webhooks",
"title": "Callback Url"
},
"ship_to": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "US shipping address: {name, line1, line2?, city, state, postal_code, country: 'US', phone?}",
"title": "Ship To"
}
},
"required": [
"name",
"email",
"accept_terms"
],
"title": "create_agent_accountArguments"
}출력 스키마
{
"type": "object",
"additionalProperties": true,
"title": "create_agent_accountDictOutput"
}🟢get_account
The authenticated account: contact email, default ship_to, credit balance, spending limits.
입력 스키마
{
"type": "object",
"properties": {},
"title": "get_accountArguments"
}출력 스키마
{
"type": "object",
"additionalProperties": true,
"title": "get_accountDictOutput"
}🟡upload_part(no_controlled_data, url, content_base64, filename)
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).
입력 스키마
{
"type": "object",
"properties": {
"no_controlled_data": {
"description": "Must be true: confirms the file contains no CUI, ITAR, or export-controlled data",
"title": "No Controlled Data",
"type": "boolean"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Public https URL of the CAD file; we fetch it server-side",
"title": "Url"
},
"content_base64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The file's bytes, base64-encoded (up to about 3 MB)",
"title": "Content Base64"
},
"filename": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "File name with extension (.stl, .3mf, .obj, .step); required with content_base64",
"title": "Filename"
}
},
"required": [
"no_controlled_data"
],
"title": "upload_partArguments"
}출력 스키마
{
"type": "object",
"additionalProperties": true,
"title": "upload_partDictOutput"
}🟡get_upload_url(filename, no_controlled_data)
Get a one-time URL to HTTP PUT a large file directly (no auth header needed). Returns the part on upload.
입력 스키마
{
"type": "object",
"properties": {
"filename": {
"description": "File name with extension (.stl, .3mf, .obj, .step)",
"title": "Filename",
"type": "string"
},
"no_controlled_data": {
"description": "Must be true: confirms the file contains no CUI, ITAR, or export-controlled data",
"title": "No Controlled Data",
"type": "boolean"
}
},
"required": [
"filename",
"no_controlled_data"
],
"title": "get_upload_urlArguments"
}출력 스키마
{
"type": "object",
"additionalProperties": true,
"title": "get_upload_urlDictOutput"
}🟢get_part(part_id)
Part status, measured geometry (mm), suggested units, DFM warnings, and processes that fit it.
입력 스키마
{
"type": "object",
"properties": {
"part_id": {
"description": "Part id (prt_...) returned by upload_part or get_upload_url",
"title": "Part Id",
"type": "string"
}
},
"required": [
"part_id"
],
"title": "get_partArguments"
}출력 스키마
{
"type": "object",
"additionalProperties": true,
"title": "get_partDictOutput"
}🟡create_quote(items, ship_to, speed, contact_email, po_number)
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.
입력 스키마
{
"type": "object",
"properties": {
"items": {
"description": "Parts to quote, each {part_id, quantity (1-100000), notes?, config: {units, process, material, color?, finishes?, finish_color?, services?, infill?, layer_height?}}",
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Items",
"type": "array"
},
"ship_to": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "US shipping address: {name, line1, line2?, city, state, postal_code, country: 'US', phone?}",
"title": "Ship To"
},
"speed": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Production speed: economy, standard, fast, faster, or fastest (FDM only). Faster speeds add a rush fee; get_capabilities lists each process's speeds.",
"title": "Speed"
},
"contact_email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email for receipts and order updates; defaults to the account email",
"title": "Contact Email"
},
"po_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Your purchase order number, printed on the quote and order",
"title": "Po Number"
}
},
"required": [
"items"
],
"title": "create_quoteArguments"
}출력 스키마
{
"type": "object",
"additionalProperties": true,
"title": "create_quoteDictOutput"
}🟢get_quote(quote_id)
Current pricing, speeds, shipping options, warnings and next_steps for a quote.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"description": "Quote id (qt_...) returned by create_quote",
"title": "Quote Id",
"type": "string"
}
},
"required": [
"quote_id"
],
"title": "get_quoteArguments"
}출력 스키마
{
"type": "object",
"additionalProperties": true,
"title": "get_quoteDictOutput"
}🔴update_quote(quote_id, ship_to, speed, shipping_option, contact_email, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"description": "Quote id (qt_...) returned by create_quote",
"title": "Quote Id",
"type": "string"
},
"ship_to": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "US shipping address: {name, line1, line2?, city, state, postal_code, country: 'US', phone?}",
"title": "Ship To"
},
"speed": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Production speed: economy, standard, fast, faster, or fastest (FDM only). Faster speeds add a rush fee; get_capabilities lists each process's speeds.",
"title": "Speed"
},
"shipping_option": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Shipping option id from the quote's shipping_options",
"title": "Shipping Option"
},
"contact_email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email for receipts and order updates; defaults to the account email",
"title": "Contact Email"
},
"po_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Your purchase order number, printed on the quote and order",
"title": "Po Number"
},
"add_items": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Parts to add, each {part_id, quantity (1-100000), notes?, config: {units, process, material, color?, finishes?, finish_color?, services?, infill?, layer_height?}}",
"title": "Add Items"
},
"update_items": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Changes to existing items: [{item_id, quantity?, config?, notes?}]; config is merged into the item's config",
"title": "Update Items"
},
"remove_item_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Item ids (itm_...) to remove from the quote",
"title": "Remove Item Ids"
}
},
"required": [
"quote_id"
],
"title": "update_quoteArguments"
}출력 스키마
{
"type": "object",
"additionalProperties": true,
"title": "update_quoteDictOutput"
}🔴create_checkout_link(quote_id)
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.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"description": "Quote id (qt_...) returned by create_quote",
"title": "Quote Id",
"type": "string"
}
},
"required": [
"quote_id"
],
"title": "create_checkout_linkArguments"
}출력 스키마
{
"type": "object",
"additionalProperties": true,
"title": "create_checkout_linkDictOutput"
}🔴pay_with_crypto(quote_id, payment_signature, use_credit)
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). Then sign an x402 'exact' payment and call again with payment_signature (the base64 PAYMENT-SIGNATURE value).
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"description": "Quote id (qt_...) returned by create_quote",
"title": "Quote Id",
"type": "string"
},
"payment_signature": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Base64 x402 PAYMENT-SIGNATURE for the requirements from the first call; omit to get the requirements",
"title": "Payment Signature"
},
"use_credit": {
"default": true,
"description": "Apply account credit before charging USDC",
"title": "Use Credit",
"type": "boolean"
}
},
"required": [
"quote_id"
],
"title": "pay_with_cryptoArguments"
}출력 스키마
{
"type": "object",
"additionalProperties": true,
"title": "pay_with_cryptoDictOutput"
}🟢get_order(order_id)
Order status, ship-by and arrive-by dates, tracking.
입력 스키마
{
"type": "object",
"properties": {
"order_id": {
"description": "Order id (ord_...) from list_orders or the paid quote",
"title": "Order Id",
"type": "string"
}
},
"required": [
"order_id"
],
"title": "get_orderArguments"
}출력 스키마
{
"type": "object",
"additionalProperties": true,
"title": "get_orderDictOutput"
}🟢list_orders(quote_id)
Orders for this account, newest first. Filter by quote_id to check whether a checkout link was paid.
입력 스키마
{
"type": "object",
"properties": {
"quote_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Only orders for this quote id (qt_...)",
"title": "Quote Id"
}
},
"title": "list_ordersArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "list_ordersOutput"
}🟡set_refund_preference(order_id, method)
For USDC orders: receive refunds as 'usdc' (sent to the paying wallet) or 'credit' (account credit).
입력 스키마
{
"type": "object",
"properties": {
"order_id": {
"description": "Order id (ord_...) from list_orders or the paid quote",
"title": "Order Id",
"type": "string"
},
"method": {
"description": "'usdc' sends refunds to the paying wallet; 'credit' adds them to account credit",
"enum": [
"usdc",
"credit"
],
"title": "Method",
"type": "string"
}
},
"required": [
"order_id",
"method"
],
"title": "set_refund_preferenceArguments"
}출력 스키마
{
"type": "object",
"additionalProperties": true,
"title": "set_refund_preferenceDictOutput"
}커뮤니티
증거