3D Print Everything

Get 3D printing and manufacturing quoted by a person, shipped anywhere in the US.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
83%
이름 품질
93%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,472토큰 (도구 정의)
~1.7 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.15%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "print-shop": {
      "url": "https://3dprinteverything.org/mcp"
    }
  }
}

원격 엔드포인트

https://3dprinteverything.org/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (6)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢get_capabilities

Services, materials, turnaround, limits, and exactly what you as an assistant can and cannot do here. Read this first if you have not worked with this shop before.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡submit_job(customerName, customerEmail, phone, description, quantity, ...)

Opens a request with the shop. A person reviews it and sends a quote, usually within one business day. The customer is emailed immediately telling them you did this for them. Nothing is charged and no price is agreed. Returns an order id and a token — keep both, they are how you attach files and check back.

입력 스키마

{
  "type": "object",
  "properties": {
    "customerName": {
      "description": "Your human's name.",
      "type": "string",
      "minLength": 1
    },
    "customerEmail": {
      "description": "Their real email — this is where the confirmation and the quote go.",
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "phone": {
      "description": "A number they actually answer. The shop rings customers. Placeholders and 555 numbers are rejected.",
      "type": "string",
      "minLength": 7
    },
    "description": {
      "description": "What they want made, in plain words. Include size, quantity, material and any deadline you know.",
      "type": "string",
      "minLength": 1
    },
    "quantity": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "material": {
      "description": "PLA, PETG, ABS, ASA, TPU, Nylon, resin, metal — or leave out if unsure.",
      "type": "string"
    },
    "neededBy": {
      "description": "Any deadline, in plain words. 'before 15 September' is fine.",
      "type": "string"
    },
    "notes": {
      "type": "string"
    },
    "agentName": {
      "description": "What you are — ChatGPT, Claude, Perplexity, your product name. Recorded on the job; grants you nothing.",
      "type": "string"
    },
    "webhookUrl": {
      "description": "Optional https URL we POST to when a person here has priced the job, so you do not have to poll. Signed with an x-3dpe-signature header. Must be publicly reachable.",
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "customerName",
    "customerEmail",
    "phone",
    "description"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡attach_files(orderId, token, files)

Send the geometry as base64 bytes. Quotes need it — a job with no file waits for one. Accepts STL, 3MF, OBJ, STEP, IGES, PLY, DXF, SVG, images and PDF. Up to 10 files, 50MB each. We will not fetch a URL for you; send the bytes.

입력 스키마

{
  "type": "object",
  "properties": {
    "orderId": {
      "description": "From submit_job.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "token": {
      "description": "From submit_job.",
      "type": "string"
    },
    "files": {
      "minItems": 1,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "fileName": {
            "description": "Including the extension — it decides how the file is read.",
            "type": "string"
          },
          "base64": {
            "description": "The file contents, base64 encoded.",
            "type": "string"
          }
        },
        "required": [
          "fileName",
          "base64"
        ]
      }
    }
  },
  "required": [
    "orderId",
    "token",
    "files"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢check_order(orderId, token)

Where the job has got to. Once a person has priced it this returns the quote, what is outstanding, and links for your HUMAN to approve and pay. Relay those links to them — tapping them is their job, not yours. Poll this when your human asks rather than on a timer; nothing here changes faster than a person works.

입력 스키마

{
  "type": "object",
  "properties": {
    "orderId": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "token": {
      "type": "string"
    }
  },
  "required": [
    "orderId",
    "token"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡check_geometry(fileName, base64, material)

Send an STL, 3MF or OBJ and get back its real size, volume, roughly how much plastic it needs, and whether it fits on one plate. Instant, no human involved, nothing is ordered. Use this BEFORE submit_job whenever your human has a file. It catches the things that waste everyone's day — a part that is 340mm tall and has to be split, a file exported in inches so it arrives 25x too small, a mesh with no solid volume. It does NOT return a price and never will. Orientation, supports and finishing decide the price and a person here decides those. Do not infer a price from the grams.

입력 스키마

{
  "type": "object",
  "properties": {
    "fileName": {
      "description": "Including the extension — it decides how the file is read. STL, 3MF or OBJ. STEP cannot be measured.",
      "type": "string"
    },
    "base64": {
      "description": "The file's bytes, base64 encoded.",
      "type": "string"
    },
    "material": {
      "description": "PLA, PETG, ABS, ASA, TPU, Nylon, PC. Only changes the weight estimate. Defaults to PLA.",
      "type": "string"
    }
  },
  "required": [
    "fileName",
    "base64"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡escalate_to_human(orderId, token, question, urgency)

Hand a question to a human at the shop. Use it the moment you are asked something you cannot actually know — whether a material is food safe or dishwasher safe, whether a colour can be matched, whether a part will hold a given load, anything about tolerances, or any request to change a price or a deadline. Guessing is the thing to avoid here. Your human will believe an answer that came through the shop's own tool, and a wrong one costs them money and costs the shop a customer. Calling this is free and always the better move: it flags the job and messages the owner directly. Say nothing definite while you wait.

입력 스키마

{
  "type": "object",
  "properties": {
    "orderId": {
      "description": "From submit_job.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "token": {
      "description": "From submit_job.",
      "type": "string"
    },
    "question": {
      "description": "What you could not answer. Use your human's own words where you have them — paraphrasing loses the detail a person needs.",
      "type": "string"
    },
    "urgency": {
      "description": "'blocking' only if you genuinely cannot continue without an answer. Overusing it makes it meaningless.",
      "type": "string",
      "enum": [
        "normal",
        "blocking"
      ]
    }
  },
  "required": [
    "orderId",
    "token",
    "question"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 6개