Connect AI agents to Autodesk 3ds Max through the Model Context Protocol. Automate everything!
$ npx -y skills add cl0nazepamm/3dsmax-mcp --agent claude-code
Repo: cl0nazepamm/3dsmax-mcp
What's inside
Connect AI agents to Autodesk 3ds Max through the Model Context Protocol.
Automate everything!
Current release: 1.7.2 — see CHANGELOG.md.
FStorm/FStormPBR texture import, palette laydown and smart import; create and edit plane/disc/sphere lights and suns with native solar controls. See support and validation.3dsmax-mcp-1.7.2-Setup.exe and select your clients.The installer includes Python, dependencies, native bridges and agent skills. To update, close Max and your clients, then run the new installer.
Requires Python 3.12+, uv and Git. Close Max and your AI clients before installing.
git clone https://github.com/cl0nazepamm/3dsmax-mcp.git
cd 3dsmax-mcp
uv sync
uv run python install.py
Use the default Full tool profile. To update, run git pull, uv sync, then
uv run python install.py again.
See Advanced configuration for manual client setup and tool profiles.
Build editable meshes from a reference
Create polygon cages, sweeps, and lofts, then refine their components and check topology.
Tools: create_mesh, curve_model, loft_mesh, mesh_edit, geometry_qa, contact_check
Turn texture folders into a palette
Preview textures or build PBR sets in the Material Editor, with filters and library overflow.
Tool: palette_laydown
Save your material scratchpad
Back up Material Editor slots and the current material library to reusable .mat files.
Tools: get_material_library, backup_material_library
Create custom materials and textures
Wire PBR texture sets, tune material properties, or write procedural OSL textures.
Tools: create_material_from_textures, assign_material, set_material_properties, create_texture_map, write_osl_shader
Make material variants
Clone a material graph, remap its textures, and replace materials across the scene.
Tools: inspect_material_network, replicate_material, batch_replace_materials
Browse an asset library in your scene
Batch-import a folder into a grid, filter LODs, and assign matching PBR textures.
Tool: smart_import
Reuse objects from old scenes
Search .max files, inspect their contents, and merge just the objects you need.
Tools: search_max_files, batch_file_info, inspect_max_file, merge_from_file
Move assets between applications
Import mesh, CAD, USD, and glTF assets through installed importers. Export through MAXScript and installed exporters, with separate render/export materials where needed.
Tools: smart_import, execute_maxscript, create_shell_material, manage_scene
Build your own tools
Automate repetitive work with MAXScript, or build procedural geometry and modifiers with Max Creation Graph (MCG). Explore installed classes through introspection and build, compile, and test graphs with the mcg_* tools.
| Tool | Description |
|---|---|
get_bridge_status | Ping the MCP bridge when diagnosing connection errors |
get_session_context | Bundle bridge status, capabilities, scene summary, and selection in one call |
get_plugin_capabilities | Max version, renderers, installed plugins, and class counts |
| Tool | Description |
|---|---|
query_scene | Unified reads: overview, filter, class, property, selection, delta |
resolve_node_refs | Resolve names, handles, or hierarchy paths to canonical, cross-checked NodeRefs |
scene_qa | Scan scene-graph hygiene and apply explicit safe naming repairs; never analyzes meshes |
scene_patch | Preflight and atomically apply up to 256 mechanical node edits in one native undo step |
get_hierarchy | Recursive child tree for an object |
get_instances | All instances sharing the same base object |
get_dependencies | Reference graph via dependents / dependent nodes |
| Tool | Description |
|---|---|
create_object | Create geometry with spatial placement feedback |
delete_objects | Delete objects by name |
get_object_properties | Compact properties for one object |
set_object_property | Set a single object property |
transform_object | Move, rotate, and/or scale by offset |
analyze_node_orientation | Pivot, bbox, local axes, and world matrix for rigging and placement |
clone_objects | Copy, instance, or reference clones |
set_parent | Parent or unparent objects |
select_objects | Change the current selection |
set_visibility | Show, hide, freeze, or unfreeze |
batch_rename_objects | Rename many objects in one call |
| Tool | Description |
|---|---|
add_modifier | Add a modifier to an object |
remove_modifier | Remove a modifier by name |
set_modifier_state | Enable/disable with viewport/render granularity |
set_modifier_property | Set a modifier parameter on one or many objects |
collapse_modifier_stack | Collapse the stack |
make_modifier_unique | De-instance a shared modifier |
inspect_modifier_properties | Compatibility alias for inspect_properties(target="modifier") |
| Tool | Description |
|---|---|
curve_model | Named curves, rounded profiles, sweeps and quad lofts with controls saved in the scene |
inspect_curve / edit_curve | Inspect, visually target and edit spline knots and handles with stale-token protection |
create_mesh | Build editable polygon cages from explicit vertices and faces |
inspect_mesh / pick_component | Read cage geometry, label components and map image positions to edit targets |
mesh_edit | Undoable vertex, edge and face edits that preserve the modifier stack |
loft_mesh | Matched-section quad lofts with persistent numeric parameters |
geometry_qa | Check mesh boundaries, winding, degeneracy and connected components |
contact_check | Find parts that pass through each other, touch, or float just short of contact |
boolean_operation | Apply, inspect, retune, rename, or extract Boolean modifier operands; supports inline repeated cutters |
draw_spline | Create, read, and edit spline shapes from explicit world-space points and knots |
edit_vertices | Read, move, set, or conform Editable Poly vertices in world space |
| Tool | Description |
|---|---|
get_materials | List materials assigned in the scene |
get_material_library | Inspect currentMaterialLibrary and Material Editor scratch slots |
backup_material_library | Save temporary/scratch material libraries to .mat files |
get_material_slots | Compact slot/property readback for a material |
inspect_material_network | Semantic material graph, wired slots, texture manifest, health checks |
material_roles | Texture sources per material slot, including shared maps, composites and submaterials; advisory filename mismatches and missing files |
replicate_material | Preview/apply structure-preserving material clone and texture remap |
assign_material | Create a material and assign it to objects |
set_material_property | Set one property on an object's material |
set_material_properties | Set multiple material properties at once |
set_sub_material | Create or assign a Multi/Sub-Object slot |
create_texture_map | Create a texture map (stored as a MAXScript global) |
set_texture_map_properties | Edit a texture map global |
create_material_from_textures | Build a fully wired PBR material from texture files |
create_shell_material | Wrap any render + export materials in Shell Material (dual pipeline) |
write_osl_shader | Write OSL to disk and compile an OSLMap |
replace_material | Swap one material for another on all users |
batch_replace_materials | Batch material replacement |
palette_laydown | Fill Material Editor palette slots from a texture folder |
smart_import | Batch-import meshes from a folder with auto PBR assignment |
cosmos_search | Find compatible Cosmos models, materials and HDRIs |
cosmos_download | Download a Cosmos asset without importing it |
cosmos_import | Import a Cosmos asset through Corona or V-Ray |
| Tool | Description |
|---|---|
inspect_object | Deep exploratory object summary |
inspect_properties | Deep property dump (`target="object" |
introspect_osl | API surface for OSLMap and shader classes |
walk_references | Full reference dependency walk |
learn_scene_patterns | Analyze class usage patterns in the live scene |
map_class_relationships | ParamBlock2 reference relationships between classes |
watch_scene | Live event watcher for interactive sessions |
isolate_and_capture_selected | Per-selection isolated viewport captures |
main_thread | Inspect or clean up callbacks and timers running on Max's main/UI thread |
| Tool | Description |
|---|---|
discover_plugin_surface | Find plugin-related classes and entry points |
discover_plugin_classes | Enumerate registered SDK classes |
list_plugin_classes | List classes for a plugin or superclass family |
inspect_plugin_class | SDK schema v2: bounded metadata, exact bindings and enum sources; legacy reflection retained |
inspect_plugin_constructor | Creation notes for a plugin class |
inspect_plugin_instance | SDK schema v2: live values, linked maps and guarded edit tokens |
plugin_patch | Atomic typed PB2 edits with readback and stale/shared/animation guards |
get_plugin_manifest | Structured manifest (classes, workflows, gotchas) |
refresh_plugin_manifest | Rebuild manifest from live runtime |
introspect_class | SDK parameter descriptors and published interface metadata |
introspect_instance | Deep SDK introspection with live values |
MCP resources: resource://3dsmax-mcp/plugins/{name}/manifest|guide|recipes|gotchas
| Tool | Description |
|---|---|
lighting_capabilities | Installed renderer routes, emitter shapes, units and color policy |
create_lights | Semantic lights and environment graphs in one verified native transaction |
inspect_lights | Decode actual light settings and linked emission maps |
edit_lights | Guarded color, output, size, enable and shadow edits |
Providers cover Corona, V-Ray, Octane and native photometric emitters. Query capabilities for the current renderer: shapes, units and environment routes differ. HDRI maps
FAQ
3dsmax-mcp is a Claude Code plugin with 1 hand-picked skill for mcp servers work, indexed on Flowy. Install it with the command on its page. It includes 3dsmax-mcp-dev. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it