Community코딩 & 개발github.com

3D 자동 제조 파이프라인

mcp-cura와 mcp-moonraker MCP 서버를 조율하여 3D 모델 메시 파일로부터 Klipper/Moonraker 프린트까지 감독하는 기술입니다. 메시 검사/수리, 슬라이싱, G-코드 검증, 프린터 전송, 라이브 모니터링, 작업 큐 관리를 수행하며, 모든 고위험 작업은 승인 게이트를 거칩니다. 슬라이싱, 3D 프린팅, STL/3MF, CuraEngine, Klipper, Moonraker 관련 요청 시 이 기술을 사용하세요.

3D 자동 제조 파이프라인란 무엇인가요?

이 기술은 두 개의 독립적인 MCP 서버인 mcp-cura(메시→슬라이스→G-코드)와 mcp-moonraker(프린터 상태→프린트)를 지능적으로 연결하는 오케스트레이터입니다. 두 서버는 서로의 존재를 알지 못하며, 이 기술이 유일한 접착제 역할을 합니다. 사용자가 STL/3MF 파일 슬라이싱, CuraEngine 프로필 설정, Klipper/Moonraker 프린터 관리 등 3D 프린팅 워크플로우를 요청할 때 자동으로 활성화됩니다. 핵심 기능은 크게 8단계로 구성됩니다: (0) 작업 계획 수립, (1) 메시 파일 가져오기, (2) 메시 검사 및 수리(크기 조정, 회전, 병합, 복셀 기반 연산), (3) 프로필 확인 및 검증, (4) 슬라이싱, (5) G-코드 안전 검사(위험 명령어, 온도 정책 위반 확인), (6) 프린터로 안전 전송, (7) 프린트 시작 및 라이브 모니터링(일시정지/재개/취소), (8) 후처리. 모든 고위험 작업(프린트 시작/취소, 파일 삭제 등)은 사용자의 명시적 승인을 필수로 요구하며, 승인을 우회하거나 재활용하는 행위는 절대 금지됩니다. 또한 mcp-cura의 `cura_gcode_verify`로 G-코드 검증을, mcp-moonraker의 `moonraker_verify_connection`으로 연결 상태를 반드시 확인한 후에만 하드웨어를 건드릴 수 있습니다. 비상 정지(`moonraker_emergency_stop`)만이 유일하게 승인 없이 사용 가능한 레버이며, 그 외 모든 변형 작업은 정책 기반 게이트를 통과해야 합니다. 이 기술은 Claude Code, Cursor, Codex 등 MCP 프로토콜을 지원하는 모든 AI 에이전트 플랫폼에서 동작합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/martinsgmx/agent-skill-3d-auto-fabrik/tree/HEAD/skills/3d-auto-fabrik

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

3d-auto-fabrik

mcp-cura (메시 → 슬라이스 → G-코드) 및 mcp-moonraker (프린터 상태 → 프린트)용 오케스트레이터. 두 서버는 의도적으로 서로를 알지 못합니다: mcp-cura는 프린터에 절대 접촉하지 않으며, mcp-moonraker는 절대 슬라이싱하지 않습니다. 이 기술이 바로 그 접착제입니다. 파일은 명시적이고 승인 게이트를 통한 핸드오프를 통해서만 두 서버 간에 이동합니다.

양보할 수 없는 규칙 — 하드웨어를 건드리기 전에 읽으십시오

이 규칙이 존재하는 이유는 3D 프린터가 히터, 모터 및 날카로운 노즐로 구성되어 있기 때문입니다. 마찰이 바로 핵심입니다.

  1. 사용자 대신 준비된 고위험 작업을 승인하지 마십시오. moonraker_print_start, moonraker_print_cancel, moonraker_run_macro, cura_artifact_export, moonraker_file_delete 등은 먼저 승인 프롬프트를 반환합니다. 여러분의 임무는 그 프롬프트를 명확하고 정직하게 제시하고 기다리는 것입니다. 사용자가 명시적으로 승인한 후에만(채팅에서, 또는 대역 외에서 mcp-moonraker approve <id> / mcp-cura approve <id>를 실행하여) 일치하는 *_confirm_action 도구를 호출할 수 있습니다. 승인 ID나 확인 문구를 절대 임의로 만들거나 재사용하거나 의역하지 마십시오.
  2. 도움이 되려고 검증을 건너뛰지 마십시오. 프린트 전에는 항상 cura_gcode_verify, 프린터 작업 전에는 moonraker_verify_connection, 전송 후에는 moonraker_files_list + moonraker_file_metadata를 수행하십시오.
  3. moonraker_emergency_stop만이 유일하게 게이트가 없는 레버입니다. 무언가 물리적으로 지금 당장 잘못되고 있을 때만 사용하십시오(연기, 소음, 노즐이 부품을 긁음, 축 충돌). 긴급 상황 외에 "가열 중지"를 위해서는 moonraker_turn_off_heaters를 사용하십시오 — 되돌릴 수 있고 게이트가 없습니다.
  4. 로컬 안전 정책 내에 머무르십시오. 온도 상한, 읽기 전용 모드, allow_raw_gcode, allow_host_admin은 사용자가 의도적으로 설정한 것입니다. 도구가 거부하면 거부 내용과 그 이유를 전달하십시오. 호출을 바꿔 말하거나, 플래그를 활성화하거나, 동일한 작업을 수행하는 다른 도구를 찾지 마십시오.
  5. 의심스러우면 멈추고 물어보십시오. 일시 중지된 프린터는 전기를 조금 낭비할 뿐입니다. 잘못된 프린트는 몇 시간과 필라멘트를 낭비합니다. 우회된 게이트는 집을 불태울 수 있습니다. 사용자는 항상 연락 가능합니다 — 물어보십시오.

사전 점검 — 하드웨어를 건드리는 모든 세션

  1. mcp-cura doctor 및 mcp-moonraker doctor (로컬, 읽기 전용 진단).
  2. moonraker_verify_connection — 연결됨? 지연 시간? Klipper 준비됨, 사용 중 또는 종료됨?
  3. cura_policy_info 및 moonraker_policy_info — 변형을 계획하기 전에 활성 제한(온도 상한, 승인 모드, 읽기 전용 스위치)을 확인하십시오.
  4. moonraker_server_info — Klipper가 ready 상태인지, shutdown 상태이거나 다른 작업으로 바쁘지 않은지 확인하십시오.
  5. 사용자와 계획을 확정하십시오: 어느 프린터, 어떤 재료, 어떤 노즐, 어떤 품질, 어떤 파일, 몇 부, 베드의 어느 위치. 추측하지 마십시오.

서버가 없거나 연결되지 않으면 그 사실을 알리고 사용자를 references/troubleshooting.md로 안내하십시오. 확인을 통과시키기 위해 설정을 편집하거나, 패키지를 설치하거나, --force를 실행하지 마십시오.

파이프라인

단계별로 작업하십시오. 각 단계 후에 간략히 보고하고 게이트가 필요할 때마다 사용자를 위해 일시 중지하십시오.

단계 0 — 계획. 작업을 한 문단으로 요약하십시오(파일, 프린터, 재료, 노즐, 프로필, 부수, 배치). 승인을 받으십시오.

단계 1 — 가져오기. cura_artifact_import를 사용하십시오. 경로는 설정된 가져오기 루트 아래의 절대 경로(~/Downloads, ~/Documents, ~/Desktop, ~/models가 기본값) 또는 루트 외부의 파일에 대해서는 base64 data 매개변수를 사용하십시오. 루트는 파일 시스템 경로를 제한합니다. data 경로는 클라이언트 제공 바이트를 위한 서버 자체 지원 채널이지 우회가 아니며 정책 변경이 필요하지 않습니다. 경로 가져오기가 거부되면 동일한 바이트를 data를 통해 다시 가져오십시오(콘텐츠 주소 지정은 동일한 아티팩트 ID를 반환합니다). 작업을 "도울 수 없음"으로 축소하지 마십시오. 반환된 artifact_id를 기록하십시오 — 모든 후속 단계에서 참조합니다.

단계 2 — 검사 및 수리. cura_mesh_inspect (mm 단위 경계, 삼각형 개수, 수밀성, 부피, 변질 삼각형). 그런 다음 필요에 따라:

  • 방향 / 배치 / 크기 조정 → cura_mesh_transform (크기 조정 → 회전 → 이동, 그 다음 center_on_bed)
  • 비다양체 또는 지저분한 표면 → voxel_size를 사용한 cura_mesh_remesh, 또는 cura_mesh_offset으로 닫힌 메시 팽창/수축
  • 한 번에 인쇄할 여러 부품 → cura_mesh_merge (삼각형 수프) 또는 cura_mesh_boolean (실제 합집합/차집합 — 복셀 기반)
  • 삼각형이 너무 많음 → target_triangles을 향한 cura_mesh_decimate

수리할 때마다 다시 검사하고 수치를 인용하십시오. 중간 위험 메시 작업은 정책 게이트가 있지만 승인이 필요하지는 않습니다. 그래도 사용자에게 변경된 내용을 보여주십시오.

단계 3 — 프로필 확인 및 검증. cura_profile_list로 정의 및 품질 프로필을 찾은 다음 cura_profile_resolve (정의 + 품질 + 재료 + 변형 + 의도)를 사용하십시오. 경고를 읽으십시오: Cura가 평가할 수 없는 표현식, 심각한 온도 위반. 그런 다음 cura_profile_verify — 오류가 0이어야 슬라이스할 수 있습니다. 오류가 0이 아니면 프로필을 수정하거나 다른 것을 선택하고 이유를 설명하십시오. 검증에 실패한 프로필로 절대 슬라이스하지 마십시오.

단계 4 — 슬라이스. cura_slice(model_artifact_ids=[…], definition, quality, material, variant, intent, overrides?, name, wait=true, wait_timeout_secs). max_concurrent_jobs(기본값 2)를 존중하십시오. cura_slice_status로 폴링하십시오. 짧은 작업의 경우 cura_slice_wait. 대기 중/실행 중인 작업만 cura_slice_cancel로 취소하십시오. 슬라이스가 실패하면 cura_slice_status에 엔진 로그 꼬리가 포함됩니다 — 실제 오류를 인용하십시오.

단계 5 — G-코드 검토. 슬라이스가 반환한 G-코드 아티팩트에 대해:

  • cura_gcode_inspect — 예상 시간, 필라멘트, 레이어 수, Z 범위, 최대 온도, 의심스러운 명령어.
  • cura_gcode_verify — 위험한 명령어, 로컬 정책 대비 온도, 히터 종료 / 스테퍼 비활성화 / 메타데이터 누락.
  • 무언가 누락된 경우 cura_gcode_prepare는 안전한 종료 시퀀스(또는 전체 종료 시퀀스)를 사용하여 새로운 아티팩트를 생성합니다. 이를 사용할 때는 새 아티팩트 ID를 전달하십시오 — 원본은 그대로 둡니다.

그런 다음 사용자에게 요약을 보여주십시오 — 시간, 필라멘트, 최고 온도, 검증 결과 — 그리고 6단계 전에 명시적 확인을 받으십시오. 이것이 중단할 수 있는 마지막 저렴한 기회입니다.

단계 6 — 프린터로 전송. G-코드 아티팩트는 프린터의 gcodes 루트에 존재해야 합니다. MCP 서버는 업로드 도구를 노출하지 않습니다. 지원되는 경로는 다음과 같습니다:

  • 프린터가 읽을 수 있는 내보내기 루트로 cura_artifact_export (프린터가 감시하는 마운트된 공유/USB), 또는
  • 사용자가 직접 파일을 복사합니다(웹 UI, SCP, 공유), 또는
  • 사용자가 명시적으로 요청하는 경우에만 Moonraker HTTP 업로드 엔드포인트를 명확하게 기록된 일회성으로 사용합니다.

프린터를 건드리기 전에 파일이 도착했는지 확인하십시오: moonraker_files_list (루트 gcodes) 및 moonraker_file_metadata — 예상 시간과 필라멘트가 Cura 출력과 일치해야 합니다.

단계 7 — 프린트. moonraker_print_start 전에:

  • moonraker_printer_status는 Klipper가 준비 및 유휴 상태이고, 종료 또는 사용 중이 아님을 보여줍니다. moonraker_temperatures은 정상적인 주변 온도 판독값을 보여줍니다.
  • 베드가 깨끗하고, 올바른 플레이트이며, 올바른 재료가 로드되었고, 도어가 닫혀 있습니다 — 사용자에게 물어보십시오. 여러분은 볼 수 없습니다.
  • 사용자가 정확한 파일 이름을 확인합니다. moonraker_print_start는 고위험 작업을 준비합니다. 승인 프롬프트를 전달하고 승인을 기다린 다음 moonraker_confirm_action을 문구와 함께 acknowledge=true로 호출하십시오.

프린트 중: moonraker_printer_status 및 moonraker_temperatures를 폴링하십시오. 무언가 이상해 보일 때 시각적 확인을 위해 moonraker_camera_snapshot을 사용하십시오. 명령어가 실패할 때 moonraker_gcode_history를 사용하십시오. 검사를 위해 프린트를 일시 중지하려면 moonraker_print_pause → 검사 → moonraker_print_resume을 사용하십시오. 중단하려면 moonraker_print_cancel(고위험, 이중 확인)을 사용하십시오 — 사용자가 요청할 때만. 이후 moonraker_print_history가 결과를 기록합니다.

프린트 후. 히터는 꺼져 있어야 합니다(종료 시퀀스에서 수행합니다 — moonraker_temperatures로 확인). 사용자에게 플레이트를 치우도록 상기시키십시오. 사용자가 아티팩트 정리를 원하면 목록을 나열하고(cura_artifact_list) 명시적 확인이 있을 때만 삭제하십시오 — cura_artifact_delete는 고위험입니다.

한 번에 승인

승인 모드(in_band, out_of_band, both)는 서버별로 [approval]에 구성됩니다. 모든 모드에서 하나의 준비된 작업 = 하나의 approval_id = 짧은 TTL(기본값 120초)을 가진 일회용 확인 문구입니다. 준비 호출의 저장된 도구와 인수가 실행되는 것입니다. *_confirm_action에 제공된 인수는 장식용입니다. *_pending_approvals는 대기 중인 항목을 다시 나열합니다. moonraker_cancel_approval / mcp-cura deny <id>는 작업이 실행되기 전에 무효화합니다. 전체 프로토콜: references/safety-approvals.md.

빠른 참조 — 더 읽을 곳

설치 및 플랫폼별 MCP/기술 등록은 리포지토리 문서 (docs/platforms.md)에 있으며, 이 기술에는 포함되지 않습니다 — 사용자가 설정에 대해 물어볼 때 로드하십시오.

이 기술을 사용하지 말아야 할 경우

CAD/STL 형상을 수동으로 초안 작성 또는 수리(모델링 도구 사용), printer.cfg 또는 Klipper 포함 파일 편집(호스트 관리자 및 설정 쓰기는 기본적으로 꺼져 있음 — 계속 꺼져 있어야 함), 또는 사용자가 명시적으로 활성화하지 않은 호스트 재부팅, 펌웨어 재시작 또는 원시 G-코드를 포함하는 모든 것. 그렇게 말하고 중지하십시오.

관련 스킬