Skip to main content
Glama
ffelipev2

Fusion MCP para Codex

by ffelipev2

Fusion MCP para Codex

Este proyecto contiene un plugin local para Codex y un add-in para Fusion 360. La idea es que Codex pueda inspeccionar y automatizar Autodesk Fusion 360 a traves de MCP.

Arquitectura

  • server/main.py: servidor MCP local que Codex inicia por stdio

  • fusion_addin/FusionCodexBridge/: add-in de Fusion 360 que expone un bridge HTTP local en 127.0.0.1:19851

  • .mcp.json: indica a Codex como iniciar el servidor MCP local

  • .vscode/mcp.json: configuracion opcional para que VS Code muestre el servidor MCP en su interfaz

El servidor MCP se comunica con el add-in de Fusion por HTTP autenticado. El instalador genera un token local privado y ambos procesos lo leen desde %LOCALAPPDATA%\FusionMCP\credentials.json; el add-in rechaza requests que no presenten el token. El add-in ejecuta el trabajo autorizado en el hilo principal de Fusion usando un evento personalizado.

Related MCP server: Fusion360 LLM Assistant

Herramientas que expone el MCP

  • fusion_ping

  • fusion_status

  • fusion_reload_bridge

  • fusion_list_documents

  • fusion_active_design_summary

  • fusion_list_user_parameters

  • fusion_list_all_parameters

  • fusion_find_entities

  • fusion_resolve_entity_token

  • fusion_list_bodies

  • fusion_list_surface_bodies

  • fusion_list_mesh_bodies

  • fusion_printability_report

  • fusion_list_sketches

  • fusion_list_sketch_curves

  • fusion_inspect_sketch

  • fusion_list_components

  • fusion_list_construction_planes

  • fusion_list_construction_geometry

  • fusion_list_available_appearances

  • fusion_list_body_topology

  • fusion_upsert_user_parameter

  • fusion_delete_user_parameter

  • fusion_create_rectangle_sketch

  • fusion_create_circle_sketch

  • fusion_create_line_sketch

  • fusion_create_arc_sketch

  • fusion_create_polyline_sketch

  • fusion_create_polygon_sketch

  • fusion_create_slot_sketch

  • fusion_offset_sketch_curves

  • fusion_add_sketch_constraint

  • fusion_add_sketch_dimension

  • fusion_create_offset_construction_plane

  • fusion_create_midplane

  • fusion_create_angled_construction_plane

  • fusion_create_construction_point_from_sketch_point

  • fusion_create_construction_axis_by_two_points

  • fusion_create_construction_plane_by_three_points

  • fusion_rename_construction_entity

  • fusion_delete_construction_entity

  • fusion_revolve_profile

  • fusion_sweep_profile

  • fusion_loft_profiles

  • fusion_scale_bodies

  • fusion_split_body

  • fusion_draft_faces

  • fusion_thread_faces

  • fusion_thicken_faces

  • fusion_replace_faces

  • fusion_patch_profile

  • fusion_stitch_surface_bodies

  • fusion_unstitch_faces

  • fusion_extend_surface_edges

  • fusion_create_ruled_surface

  • fusion_untrim_surface_faces

  • fusion_trim_surfaces

  • fusion_rename_mesh_body

  • fusion_set_mesh_body_visibility

  • fusion_set_mesh_body_appearance

  • fusion_delete_mesh_body

  • fusion_import_mesh

  • fusion_convert_mesh_to_brep

  • fusion_reduce_mesh

  • fusion_repair_mesh

  • fusion_combine_mesh_bodies

  • fusion_list_sheet_metal_rules

  • fusion_create_sheet_metal_rule

  • fusion_activate_sheet_metal_rule

  • fusion_create_open_hem

  • fusion_create_sheet_metal_rip

  • fusion_create_box

  • fusion_create_plate_with_holes

  • fusion_create_cylinder

  • fusion_extrude_profile

  • fusion_create_hole

  • fusion_fillet_edges

  • fusion_chamfer_edges

  • fusion_combine_bodies

  • fusion_shell_body

  • fusion_mirror_bodies

  • fusion_rectangular_pattern_bodies

  • fusion_circular_pattern_bodies

  • fusion_translate_bodies

  • fusion_rotate_bodies

  • fusion_rename_sketch

  • fusion_set_sketch_visibility

  • fusion_delete_sketch

  • fusion_delete_body

  • fusion_set_body_appearance

  • fusion_rename_body

  • fusion_set_body_visibility

  • fusion_rename_construction_plane

  • fusion_delete_construction_plane

  • fusion_create_component

  • fusion_list_component_entities

  • fusion_rename_component

  • fusion_set_component_visibility

  • fusion_activate_component

  • fusion_delete_component

  • fusion_translate_component

  • fusion_create_box_in_component

  • fusion_create_cylinder_in_component

  • fusion_extrude_component_profile

  • fusion_list_assembly_tree

  • fusion_list_occurrence_entities

  • fusion_create_nested_component

  • fusion_move_occurrence_to_component

  • fusion_translate_occurrence

  • fusion_activate_manufacture_workspace

  • fusion_manufacture_status

  • fusion_list_cam_setups

  • fusion_create_milling_setup

  • fusion_list_cam_strategies

  • fusion_generate_toolpaths

  • fusion_list_cam_parameters

  • fusion_set_cam_parameter

  • fusion_rename_cam_setup

  • fusion_delete_cam_setup

  • fusion_rename_cam_operation

  • fusion_set_cam_operation_suppression

  • fusion_delete_cam_operation

  • fusion_list_document_cam_tools

  • fusion_list_cam_tool_library

  • fusion_create_cam_operation

  • fusion_list_cam_post_processors

  • fusion_list_nc_programs

  • fusion_create_nc_program

  • fusion_postprocess_nc_program

  • fusion_list_cam_machines

  • fusion_assign_cam_machine

  • fusion_drawing_status

  • fusion_export_drawing_pdf

  • fusion_list_workspaces

  • fusion_activate_workspace

  • fusion_viewport_status

  • fusion_set_camera

  • fusion_set_viewport_visual_style

  • fusion_toggle_mesh_face_groups

  • fusion_capture_viewport

  • fusion_start_local_render

  • fusion_list_render_jobs

  • fusion_capture_parameter_animation

  • fusion_create_document

  • fusion_list_cloud_projects

  • fusion_save_document_as

  • fusion_activate_document

  • fusion_save_document

  • fusion_close_document

  • fusion_list_timeline

  • fusion_rename_timeline_object

  • fusion_set_timeline_suppression

  • fusion_delete_timeline_object

  • fusion_inspect_timeline_dependencies

  • fusion_export_step

  • fusion_export_stl

  • fusion_import_step

  • fusion_export_sketch_dxf

  • fusion_import_dxf

  • fusion_import_svg

  • fusion_export_cad

  • fusion_import_cad

  • fusion_run_script

Las tools de creacion de sketch pueden trabajar sobre planos de origen (xy, xz, yz) o sobre un plano de construccion personalizado usando construction_plane_index.

fusion_find_entities busca bodies, sketches, componentes y planos personalizados por nombre. Admite exact, contains y fuzzy, y devuelve el selector con el indice que esperan las demas tools.

Las respuestas de inspeccion incluyen entityToken cuando Fusion lo soporta. fusion_resolve_entity_token permite recuperar la entidad y su indice actual despues de cambios en el timeline.

Para agregar constraints o cotas, usa primero fusion_list_sketch_curves y fusion_inspect_sketch. fusion_add_sketch_constraint cubre horizontal, vertical, paralelo, perpendicular, igual, tangente, concentrico y colineal. fusion_add_sketch_dimension cubre longitud de linea, diametro y radio mediante expresiones de Fusion.

fusion_save_document guarda una nueva version de un documento previamente guardado. Para el primer guardado o para crear una copia usa fusion_list_cloud_projects y luego fusion_save_document_as con el project_id y la ruta de una carpeta existente en Fusion Team.

Las tools de timeline pueden afectar features y geometria dependiente. Conviene ejecutar fusion_list_timeline antes de suprimir o borrar un elemento. fusion_inspect_timeline_dependencies devuelve features enlazadas y relaciones entre parametros asociados al elemento.

Los errores HTTP conservan ahora el mensaje detallado generado dentro de Fusion. Si el bridge no esta activo, Codex indica directamente como iniciar FusionCodexBridge. Despues de reinstalar cambios del add-in, fusion_reload_bridge programa un reinicio del bridge dentro de Fusion para cargar la version instalada; si Codex todavia no muestra tools nuevas, reinicia Codex o reabre el selector del plugin para refrescar el catalogo MCP.

fusion_thread_faces, fusion_thicken_faces y fusion_replace_faces trabajan con indices obtenidos desde fusion_list_body_topology. Fusion no ofrece actualmente una API publica para crear Rib/Web; RibFeatures solo permite inspeccionar features existentes.

fusion_export_cad y fusion_import_cad admiten iges, sat y smt. Para DXF se usan tools separadas porque el formato se aplica a sketches y planos 2D. fusion_import_svg importa un SVG a un sketch nuevo sobre un plano de origen o construccion, con desplazamiento y escala.

Las operaciones dentro de componentes no raiz cubren caja, cilindro y extrude de perfiles. Para ensamblajes anidados usa fusion_list_assembly_tree: devuelve fullPathName, el selector estable que consumen las tools de inspeccion, creacion, movimiento y traslacion de occurrences anidados.

Surface permite listar superficies, patch, stitch, unstitch, extend, ruled surface, trim, untrim y reutilizar fusion_thicken_faces. En fusion_trim_surfaces, usa primero selected_cell_indices=[] para obtener la vista previa de indices y luego repite la llamada con las celdas que deben eliminarse.

Mesh permite importar STL/OBJ/3MF, inspeccionar y administrar bodies, asignar apariencias, ademas de convertir, reducir, reparar y combinar. fusion_printability_report revisa condiciones geometricas basicas para impresion 3D en cuerpos raiz visibles: B-Rep solido o mesh cerrada/orientada con volumen positivo. Sirve para detectar casos visuales como mallas abiertas con volumeCm3 cero, pero la validacion final sigue siendo del slicer. Las cuatro operaciones de modificacion usan APIs preview de Autodesk y pueden no estar disponibles en todas las instalaciones; en ese caso la tool devuelve una instruccion guiada.

El mapeo inicial de Sheet Metal cubre reglas, activacion de reglas, hem abierto y rip sobre un cuerpo de chapa existente. Autodesk no expone actualmente creacion de base flange/flange en la API publica.

Manufacture permite activar el workspace, inspeccionar setups/operaciones/parametros, crear setups de fresado, editar expresiones CAM, renombrar/suprimir/borrar elementos, descubrir estrategias compatibles y generar toolpaths. Tambien permite consultar herramientas del documento o de una biblioteca por URL, crear cualquier strategy compatible con tool y expresiones, consultar/asignar maquinas, buscar posts, crear NCProgram y postprocesar.

Flujo CAM recomendado: crea o inspecciona un setup, consulta fusion_list_cam_strategies, elige una herramienta con fusion_list_document_cam_tools o fusion_list_cam_tool_library, crea la operacion con fusion_create_cam_operation y genera su toolpath. Para codigo NC, descubre una maquina/post, crea el programa con fusion_create_nc_program y ejecuta fusion_postprocess_nc_program. El directorio de salida debe existir y la validacion final de maquina, herramientas, origen y colisiones sigue siendo responsabilidad del operador.

Drawing permite inspeccionar el documento/hoja activa y exportar todas las hojas o un rango a PDF. La API publica de Drawing no expone todavia una coleccion completa para crear y editar programaticamente todas las hojas, vistas y anotaciones.

Render/Animation incluye lectura y control de camara, control de estilo visual del viewport, capturas del viewport, render local asincrono y seguimiento de jobs. fusion_toggle_mesh_face_groups permite apagar/encender la visualizacion de grupos de caras de malla cuando Fusion oculta materiales y muestra colores de face groups. fusion_capture_parameter_animation interpola expresiones de un parametro, puede orbitar la camara, escribe una secuencia PNG y restaura el parametro/camara originales; el ensamblado final de video queda fuera de Fusion.

fusion_list_workspaces y fusion_activate_workspace permiten descubrir y activar workspaces por ID. En Simulation esto solo cubre navegacion: Autodesk no publica actualmente un modelo de API para crear y resolver estudios equivalente a adsk.cam.

fusion_split_body hoy usa como herramienta de corte un plano de origen o un plano de construccion existente. Mas adelante se puede extender a perfiles, caras o cuerpos como splitting tool.

fusion_draft_faces aplica draft sobre caras de un body usando un plano neutral. Lo normal es usar fusion_list_body_topology primero para obtener los face_indices.

Pruebas locales

Para correr las pruebas unitarias y de contrato disponibles sin abrir Fusion:

python -m unittest discover -s tests

Para una verificacion rapida de sintaxis en los dos entrypoints Python principales:

python -m py_compile server/main.py fusion_addin/FusionCodexBridge/FusionCodexBridge.py

Requisitos

  • Windows con python disponible en PATH

  • Autodesk Fusion 360

Instalacion recomendada en Windows

Si ya tienes este repositorio localmente, la forma mas rapida de instalarlo es:

powershell -ExecutionPolicy Bypass -File .\scripts\install-fusion-mcp.ps1

Ese instalador hace lo siguiente:

  • genera o conserva una credencial aleatoria privada para autenticar MCP con Fusion

  • protege la carpeta de credenciales con permisos para el usuario actual

  • copia el plugin en ~/plugins/fusion-mcp

  • actualiza ~/.agents/plugins/marketplace.json

  • instala las dependencias de requirements.txt

  • copia el add-in de Fusion en %APPDATA%\Autodesk\Autodesk Fusion 360\API\AddIns\FusionCodexBridge si esa carpeta existe; si no, usa %APPDATA%\Autodesk\Autodesk Fusion\API\AddIns\FusionCodexBridge

Si solo quieres instalar la parte de Codex y todavia no copiar el add-in de Fusion, puedes usar:

powershell -ExecutionPolicy Bypass -File .\scripts\install-fusion-mcp.ps1 -SkipFusionAddIn

Paso a paso para dejarlo funcionando

  1. Abre una terminal en la raiz del repositorio.

  2. Ejecuta el instalador:

    powershell -ExecutionPolicy Bypass -File .\scripts\install-fusion-mcp.ps1
  3. Abre Fusion 360.

  4. En Fusion, entra a Utilities > Add-Ins > Scripts and Add-Ins.

  5. Ve a la pestaña Add-Ins.

  6. Si la lista aparece vacia, limpia los filtros antes de asumir que falta el add-in.

  7. Busca FusionCodexBridge y ejecutalo con Run.

  8. Si FusionCodexBridge no aparece en la lista, usa el boton + y apunta manualmente a una de estas carpetas:

    • %APPDATA%\Autodesk\Autodesk Fusion 360\API\AddIns\FusionCodexBridge

    • %APPDATA%\Autodesk\Autodesk Fusion\API\AddIns\FusionCodexBridge

  9. Verifica que el bridge local de Fusion este corriendo:

    $credential = Get-Content "$env:LOCALAPPDATA\FusionMCP\credentials.json" -Raw | ConvertFrom-Json
    Invoke-RestMethod http://127.0.0.1:19851/health -Headers @{ Authorization = "Bearer $($credential.token)" }

    Deberias recibir una respuesta JSON con "ok": true.

  10. Reinicia Codex o recarga la ventana de VS Code si hace falta.

  11. Si usas Codex CLI o la app de Codex, registra el servidor MCP una sola vez:

codex mcp add fusion-local -- python "$HOME\plugins\fusion-mcp\server\main.py"
  1. Comprueba que el servidor quedo registrado:

codex mcp list
  1. Si usas VS Code, abre este repositorio como workspace y ejecuta MCP: List Servers.

  2. Deberias ver fusion-local desde .mcp.json y/o fusionLocal desde .vscode/mcp.json.

  3. Si aparece como Stopped, inicalo desde la interfaz MCP de VS Code.

  4. Vuelve a Codex y prueba con una instruccion simple, por ejemplo:

  • revisa el diseño activo en Fusion

  • haz un fusion_status

  • crea una caja de 10x6x3 cm

Instalacion manual

La instalacion manual tambien requiere que MCP y Fusion compartan un token de al menos 32 caracteres mediante FUSION_MCP_TOKEN o un archivo JSON indicado por FUSION_MCP_CREDENTIALS_FILE. Para evitar errores de permisos y configuracion se recomienda ejecutar el instalador al menos una vez.

Si no quieres usar el instalador, puedes hacer el proceso a mano:

  1. Instala las dependencias de Python:

    pip install -r requirements.txt
  2. Copia fusion_addin/FusionCodexBridge/ a una carpeta de Add-Ins de Fusion:

    • %APPDATA%\Autodesk\Autodesk Fusion 360\API\AddIns\

    • o %APPDATA%\Autodesk\Autodesk Fusion\API\AddIns\

  3. Registra el servidor MCP en Codex:

    codex mcp add fusion-local -- python "$PWD\server\main.py"
  4. Abre Fusion 360 y ejecuta FusionCodexBridge desde Utilities > Add-Ins > Scripts and Add-Ins.

Solucion de problemas

  • Si Fusion muestra la lista de add-ins vacia, primero limpia los filtros de la ventana Scripts and Add-Ins.

  • Si VS Code muestra No MCP Servers found, ejecuta Developer: Reload Window y luego vuelve a usar MCP: List Servers.

  • No busques fusion-local en el Marketplace de extensiones de VS Code. Es un servidor MCP local, no una extension del marketplace.

  • Si Codex ve el servidor pero las acciones contra Fusion fallan, verifica que http://127.0.0.1:19851/health responda con "ok": true.

  • Si recibes Unauthorized Fusion MCP request, vuelve a ejecutar el instalador y reinicia Codex y el add-in para que ambos usen la misma credencial.

  • No copies ni publiques %LOCALAPPDATA%\FusionMCP\credentials.json; el instalador nunca muestra el token.

Notas

  • fusion_run_script ejecuta Python dentro de Fusion con acceso completo a la API. Usalo solo con codigo confiable.

  • Todos los endpoints, incluido /health, requieren el Bearer token generado durante la instalacion.

  • La herramienta de script devuelve el valor asignado a la variable result.

  • Si el bridge no esta corriendo, empieza probando con fusion_ping o fusion_status despues de iniciar el add-in.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/ffelipev2/MCP-Fusion360'

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