Skip to main content
Glama

Fusion 360 MCP 서버

Cline과 Autodesk Fusion 360 사이의 인터페이스를 제공하는 MCP(Model Context Protocol) 서버입니다. 이 서버는 Fusion 360 도구 모음 수준 명령을 Fusion의 API에 직접 매핑되는 호출 가능한 도구로 노출합니다.

🧠 개요

이 프로젝트를 통해 클라인은 다음을 수행할 수 있습니다.

  • 자연어 프롬프트 구문 분석(예: "모서리가 둥근 상자를 만드세요")

  • 이를 Fusion 도구 작업으로 해결합니다(예: CreateSketch → DrawRectangle → Extrude → Fillet)

  • 이 MCP 서버를 통해 해당 도구를 호출합니다.

  • Fusion 360에서 실행할 수 있는 Python 스크립트를 반환합니다.

Related MCP server: MCP Atlassian Server

🛠️ 설치

필수 조건

  • 파이썬 3.9 이상

  • 오토데스크 퓨전 360

설정

  1. 이 저장소를 복제하세요:

    지엑스피1

  2. 종속성 설치:

    pip install -r requirements.txt

🚀 사용법

HTTP 서버 실행

cd src python main.py

이렇게 하면 http://127.0.0.1:8000 에서 FastAPI 서버가 시작됩니다.

MCP 서버로 실행

cd src python main.py --mcp

이렇게 하면 서버가 MCP 모드로 시작되어 stdin에서 읽고 stdout에 씁니다.

API 엔드포인트

  • GET / : 서버가 실행 중인지 확인

  • GET /tools : 사용 가능한 모든 도구 나열

  • POST /call_tool : 단일 도구를 호출하고 스크립트를 생성합니다.

  • POST /call_tools : 여러 도구를 순차적으로 호출하고 스크립트를 생성합니다.

API 호출 예

목록 도구

curl -X GET http://127.0.0.1:8000/tools

단일 도구 호출

curl -X POST http://127.0.0.1:8000/call_tool \ -H "Content-Type: application/json" \ -d '{ "tool_name": "CreateSketch", "parameters": { "plane": "xy" } }'

여러 도구 호출

curl -X POST http://127.0.0.1:8000/call_tools \ -H "Content-Type: application/json" \ -d '{ "tool_calls": [ { "tool_name": "CreateSketch", "parameters": { "plane": "xy" } }, { "tool_name": "DrawRectangle", "parameters": { "width": 10, "depth": 10 } }, { "tool_name": "Extrude", "parameters": { "height": 5 } } ] }'

📦 사용 가능한 도구

현재 서버는 다음 Fusion 360 도구를 지원합니다.

만들다

  • CreateSketch : 지정된 평면에 새 스케치를 만듭니다.

  • DrawRectangle : 활성 스케치에 사각형을 그립니다.

  • DrawCircle : 활성 스케치에 원을 그립니다.

  • 돌출 : 프로파일을 3D 본체로 돌출합니다.

  • 회전 : 축을 중심으로 프로파일을 회전합니다.

수정하다

  • 필렛 : 선택한 모서리에 필렛을 추가합니다.

  • 모따기 : 선택한 모서리에 모따기를 추가합니다.

  • Shell : 지정된 벽 두께로 솔리드 바디를 비웁니다.

  • 결합 : 부울 연산을 사용하여 두 개의 본체를 결합합니다.

내보내다

  • ExportBody : 본문을 파일로 내보냅니다.

🔌 MCP 통합

이 서버를 Cline과 함께 사용하려면 MCP 설정 구성 파일에 추가하세요.

{ "mcpServers": { "fusion360": { "command": "python", "args": ["/path/to/fusion360-mcp-server/src/main.py", "--mcp"], "env": {}, "disabled": false, "autoApprove": [] } } }

🧩 도구 레지스트리

도구는 src/tool_registry.json 에 정의되어 있습니다. 각 도구에는 다음이 포함됩니다.

  • name : 도구의 이름

  • 설명 : 도구의 기능

  • 매개변수 : 도구가 허용하는 매개변수

  • docs : 관련 Fusion API 문서에 대한 링크

도구 정의 예:

{ "name": "Extrude", "description": "Extrudes a profile into a 3D body.", "parameters": { "profile_index": { "type": "integer", "description": "Index of the profile to extrude.", "default": 0 }, "height": { "type": "number", "description": "Height of the extrusion in mm." }, "operation": { "type": "string", "description": "The operation type (e.g., 'new', 'join', 'cut', 'intersect').", "default": "new" } }, "docs": "https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-6D381FCD-22AB-4F08-B4BB-5D3A130189AC" }

📝 스크립트 생성

서버는 도구 호출을 기반으로 Fusion 360 Python 스크립트를 생성합니다. 이 스크립트는 Fusion 360의 스크립트 편집기에서 실행할 수 있습니다.

생성된 스크립트 예:

import adsk.core, adsk.fusion, traceback def run(context): ui = None try: app = adsk.core.Application.get() ui = app.userInterface design = app.activeProduct # Get the active component in the design component = design.rootComponent # Create a new sketch on the xy plane sketches = component.sketches xyPlane = component.xYConstructionPlane sketch = sketches.add(xyPlane) # Draw a rectangle rectangle = sketch.sketchCurves.sketchLines.addTwoPointRectangle( adsk.core.Point3D.create(0, 0, 0), adsk.core.Point3D.create(10, 10, 0) ) # Extrude the profile prof = sketch.profiles.item(0) extrudes = component.features.extrudeFeatures extInput = extrudes.createInput(prof, adsk.fusion.FeatureOperations.NewBodyFeatureOperation) distance = adsk.core.ValueInput.createByReal(5) extInput.setDistanceExtent(False, distance) extrude = extrudes.add(extInput) ui.messageBox('Operation completed successfully') except: if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))

🧪 서버 확장

새로운 도구 추가

  1. src/tool_registry.json 에 새로운 도구 정의를 추가합니다.

  2. src/script_generator.pySCRIPT_TEMPLATES 에 스크립트 템플릿을 추가합니다.

  3. src/script_generator.py_process_parameters 에 매개변수 처리 로직을 추가합니다.

📚 문서 링크

🔄 향후 개선 사항

  • 컨텍스트 인식 작업을 위한 세션 상태 추적

  • 동적 도구 등록

  • 소켓 또는 파일 폴링을 통한 자동화

  • 더 많은 퓨전 명령

📄 라이센스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ArchimedesCrypto/fusion360-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server