← Back to directory
3

3ds Max MCP Server

Community
Connect AI agents to Autodesk 3ds Max over the Model Context Protocol
GitHub source repository ↗
★ 246 Stars Category · Other Very popular
52FMRS · D

This is an unofficial MCP server maintained by an individual developer, released under the MIT license at version 1.7.2. It bridges AI clients to Autodesk 3ds Max 2023–2027 through a native bridge and exposes roughly 160 tools spanning scene reads and writes, modeling, materials, plugin introspection, MCG, tyFlow, RailClone and Forest Pack (the last marked as work in progress). Coverage is broad, but it includes entry points that execute MAXScript and Python, so clear security boundaries and permission review are required.

Reliability
8/20
Security and permissions
8/20
Maintenance
11/20
Documentation
14/20
Setup experience
11/20
Read the FMRS scoring method →

3dsmax-mcp is an MCP server that connects AI agents to Autodesk 3ds Max through a native bridge, exposing roughly 160 MCP tools for scene reads, modeling, materials, modifiers, controllers, viewport capture, procedural graphs and plugin workflows. It also supports introspection of arbitrary Max classes and ships a bundled agent skill in the form of MAXScript documentation. It requires Windows, Autodesk 3ds Max 2023–2027, and an MCP client such as Claude Desktop, Codex or Cursor. Installation is available through a setup executable or from source (Python 3.12+, uv and Git). The project is MIT-licensed and the current release is 1.7.2.

Tools

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
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
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
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")
curve_model
Named curves, rounded profiles, sweeps and quad lofts with controls saved in the scene
inspect_curve
Inspect, visually target and edit spline knots and handles with stale-token protection
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
Read cage geometry, label components and map image positions to edit targets
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
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
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
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
inspect_object
Deep exploratory object summary
inspect_properties
Deep property dump (target="object"|"modifier"|"baseobject"|"material")
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
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
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
assign_controller
Create and assign a controller to a sub-anim track
inspect_controller
Inspect one controller track
inspect_track_view
Track View-style controller hierarchy
set_controller_props
Edit script text or controller properties
add_controller_target
Add a target to script/expression/constraint controllers
keyframe_tracks
Timeline control; bounded delete/move/scale, bake/resample, tangent normalization, pose matching, and loops
list_wireable_params
Discover wireable sub-anims on an object
wire_params
Connect parameters with a wire expression
get_wired_params
List existing wire connections
unwire_params
Remove a wire
manage_layers
Create, delete, list, and configure layers; move/select objects
manage_groups
Create, ungroup, open, close, attach, detach groups
manage_selection_sets
Named selection sets
manage_scene
Hold, fetch, reset, save, scene info

Setup

  1. Close 3ds Max and fully exit your AI clients. 2. Run 3dsmax-mcp-1.7.2-Setup.exe and select your clients. 3. Open 3ds Max and restart your AI client. The installer includes Python, dependencies, native bridges and agent skills. To update, close Max and your clients, then run the new installer. To install from source (requires Python 3.12+, uv and Git; close Max and your AI clients first): 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.

Fit and risk

Best for

  • Technical artists and 3D professionals on Windows with 3ds Max 2023–2027 who want to automate Max from an MCP client using natural language
  • Teams that need to hook 3ds Max scene operations into AI agent workflows (Claude Desktop, Codex, Cursor)
  • Advanced users who want to extend their own tools via introspection and MCG/MAXScript

Not for

  • Users on operating systems other than Windows, or on 3ds Max 2022 and earlier
  • Users who do not want an AI client to modify or delete scene content
  • Users who only need to inspect 3ds Max files statically without automation

Required permissions

  • Control the 3ds Max scene: create, modify and delete objects and materials
  • Read and write scene files and .mat material library files (save, hold, merge, scan .max files)
  • Execute MAXScript and Python code inside Max (execute_python requires safe mode off)
  • Capture viewport, screen and render images
  • Read and write external asset and texture files through installed importers/exporters
  • Access the network to search for and download Cosmos assets

Risks and side effects

  • execute_maxscript and execute_python can run arbitrary code inside Max; execute_python requires safe mode to be turned off, which raises the risk considerably
  • Scripted and batch operations can modify or delete scene objects, materials and files, and mistakes may be hard to reverse (some operations have undo and preflight protection)
  • Writing .mat files, saving scenes or exporting assets changes files on the local machine
  • Integrations such as tyFlow, RailClone and Forest Pack are at different maturity levels (Forest Pack is explicitly marked as work in progress) and may be incomplete or change between releases
  • Depends on a native bridge with support limited to 3ds Max 2023–2027

Troubleshooting

  1. Use get_bridge_status to ping the bridge when diagnosing connection errors
  2. Make sure 3ds Max and the AI clients were fully closed and restarted (especially after an update)
  3. Confirm the 3ds Max version is within 2023–2027 and that your MCP client was selected during install
  4. Use get_plugin_capabilities to check the Max version, renderers and installed plugins
  5. For source installs, confirm Python 3.12+, uv and Git are available, then run uv run python install.py again
  6. Check the safe mode setting before calling execute_python

Use cases

Build editable polygon cages from explicit vertices and faces, then check topology quality
Fill Material Editor palette slots from a texture folder and build fully wired PBR materials
Batch-import an asset folder into a grid layout with automatic PBR texture assignment
Search .max files and merge only the objects you need
Create semantic lights and environment graphs, then edit lights under guarded conditions
Explore installed Max classes and plugin SDK surfaces through introspection
Build custom tools with MAXScript or Max Creation Graph
Capture viewports and renders, and watch scene events during interactive sessions

Supported clients

Claude DesktopFull support
CodexFull support
CursorFull support