Skip to main content
Glama
ArchimedesCrypto

Fusion 360 MCP Server

Servidor Fusion 360 MCP

Un servidor de Protocolo de contexto de modelo (MCP) que interactúa entre Cline y Autodesk Fusion 360. Este servidor expone los comandos de nivel de barra de herramientas de Fusion 360 como herramientas invocables que se asignan directamente a la API de Fusion.

🧠 Descripción general

Este proyecto permite a Cline:

  • Analizar indicaciones en lenguaje natural (por ejemplo, "Haz una caja con esquinas redondeadas")

  • Resolverlos en acciones de la herramienta Fusión (por ejemplo, Crear Boceto → Dibujar Rectángulo → Extruir → Redondear)

  • Llama a esas herramientas a través de este servidor MCP

  • Devuelve scripts de Python que se pueden ejecutar en Fusion 360

Related MCP server: MCP Atlassian Server

🛠️ Instalación

Prerrequisitos

  • Python 3.9 o superior

  • Autodesk Fusion 360

Configuración

  1. Clonar este repositorio:

    git clone https://github.com/yourusername/fusion360-mcp-server.git
    cd fusion360-mcp-server
  2. Instalar dependencias:

    pip install -r requirements.txt

🚀 Uso

Ejecución del servidor HTTP

cd src
python main.py

Esto iniciará el servidor FastAPI en http://127.0.0.1:8000 .

Ejecutándose como un servidor MCP

cd src
python main.py --mcp

Esto iniciará el servidor en modo MCP, leyendo desde stdin y escribiendo en stdout.

Puntos finales de API

  • GET / : Comprueba si el servidor está en ejecución

  • GET /tools : Lista todas las herramientas disponibles

  • POST /call_tool : Llamar a una sola herramienta y generar un script

  • POST /call_tools : Llamar a múltiples herramientas en secuencia y generar un script

Ejemplos de llamadas API

Herramientas de lista

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

Llamar a una sola herramienta

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

Llamar a varias herramientas

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
        }
      }
    ]
  }'

📦 Herramientas disponibles

Actualmente, el servidor admite las siguientes herramientas de Fusion 360:

Crear

  • CreateSketch : crea un nuevo boceto en un plano específico

  • DrawRectangle : dibuja un rectángulo en el boceto activo

  • DrawCircle : dibuja un círculo en el boceto activo

  • Extruir : extruye un perfil en un cuerpo 3D

  • Girar : gira un perfil alrededor de un eje

Modificar

  • Filete : agrega un filete a los bordes seleccionados

  • Chaflán : agrega un chaflán a los bordes seleccionados

  • Carcasa : ahueca un cuerpo sólido con un espesor de pared especificado

  • Combinar : combina dos cuerpos mediante operaciones booleanas

Exportar

  • ExportBody : exporta un cuerpo a un archivo

🔌 Integración MCP

Para utilizar este servidor con Cline, agréguelo a su archivo de configuración de MCP:

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

🧩 Registro de herramientas

Las herramientas se definen en src/tool_registry.json . Cada herramienta tiene:

  • nombre : El nombre de la herramienta

  • Descripción : Qué hace la herramienta

  • parámetros : Los parámetros que acepta la herramienta

  • docs : Enlace a la documentación relevante de la API de Fusion

Ejemplo de definición de herramienta:

{
  "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"
}

📝 Generación de scripts

El servidor genera scripts Python de Fusion 360 basados en las llamadas a la herramienta. Estos scripts se pueden ejecutar en el editor de scripts de Fusion 360.

Ejemplo de script generado:

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()))

🧪 Ampliación del servidor

Agregar nuevas herramientas

  1. Agregar una nueva definición de herramienta a src/tool_registry.json

  2. Agregue una plantilla de script a SCRIPT_TEMPLATES en src/script_generator.py

  3. Agregue lógica de procesamiento de parámetros a _process_parameters en src/script_generator.py

📚 Enlaces de documentación

🔄 Mejoras futuras

  • Seguimiento del estado de la sesión para operaciones sensibles al contexto

  • Registro dinámico de herramientas

  • Automatización mediante sondeo de sockets o archivos

  • Más comandos de Fusion

📄 Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

-
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