MCP Connector for 3ds Max Documentation
Complete guide to installing, configuring, and using MCP Connector for 3ds Max - 173 MCP tools across 16 categories, including the 24 read-only free tools, driven by Claude Desktop, ChatGPT Desktop, Cursor, or Claude Code.
Supported 3ds Max Versions
- 3ds Max 2022
- 3ds Max 2023
- 3ds Max 2024
- 3ds Max 2025
- 3ds Max 2026
- 3ds Max 2027
AI Applications
- Claude Desktop
- ChatGPT Desktop
- Cursor
- Claude Code
- VS Code (GitHub Copilot agent mode)
- Visual Studio 2022 17.14+ / 2026 (GitHub Copilot)
- GitHub Copilot CLI
- Grok Build (xAI CLI)
Installation
Close 3ds Max before running the installer.
.exe file and follow the wizard, accepting the licence agreement and privacy policy. The connector installs to the 3ds Max plug-in bundle folder and wires up any AI clients it finds.The AUTOM8LABS Macros
The connector starts with 3ds Max, so there is nothing to switch on for normal use. Five macros are registered under the AUTOM8LABS category. Find them in Customize > Customize User Interface, filter the category to AUTOM8LABS, and drag any of them onto a toolbar or assign a shortcut.
- MCP Connector - open or close the dockable MCP Connector panel
- MCP Connector Status - whether the connector is running, and which AI clients are configured
- MCP Connector Licence - activate or deactivate your licence, and see how many licences are in use
- MCP Connector Setup - re-run AI client configuration, for example after installing a new client
- MCP Connector Stop - stop the connector for this session
Showing the MCP Connector panel again
The panel opens by itself the first time each 3ds Max release runs the connector. To bring it back after closing it, run this in the MAXScript Listener (F11, or the mini listener at the bottom left):
macros.run "AUTOM8LABS" "MCPConnectorPanel"
The macro is a toggle - run it again to hide the panel. For one-click access, drag the MCP Connector button onto a toolbar via Customize User Interface as above.
Configuration
The installer configures every supported AI client it can find. To re-run it later - after installing a new client, for example - run the MCP Connector Setup macro.
Claude Desktop
Configuration is written to:
%APPDATA%\Claude\claude_desktop_config.json
The Store build reads its configuration from a sandboxed copy inside the package folder, not from %APPDATA%\Claude. The connector detects this and writes to both locations, so a Store install is configured correctly either way.
ChatGPT Desktop
ChatGPT Desktop reads MCP servers from the Codex configuration file, which it shares with the Codex CLI:
%USERPROFILE%\.codex\config.toml
Cursor
%USERPROFILE%\.cursor\mcp.json
GitHub Copilot
The config files for VS Code, Visual Studio, and the Copilot CLI are located at:
%APPDATA%\Code\User\mcp.json
%USERPROFILE%\.mcp.json
%USERPROFILE%\.copilot\mcp-config.json
Grok Build
Toggle Enable MCP and the connector writes its entry into xAI's Grok Build CLI configuration automatically. The config file is located at:
%USERPROFILE%\.grok\config.toml
Grok Build also reads Claude Code's and Cursor's MCP config, so if you have already configured either of those the connector shows up in Grok Build with no extra step.
Manual configuration
For any other MCP client, point it at the Bridge executable. The server key is AUTOM8LABS_3dsMax:
{
"mcpServers": {
"AUTOM8LABS_3dsMax": {
"command": "C:\\ProgramData\\Autodesk\\ApplicationPlugins\\AUTOM8LABS.MCPConnector3dsMax.bundle\\Contents\\Bridge\\MCPConnector3dsMax.Bridge.exe",
"args": []
}
}
}
Restart your AI client after any configuration change so it picks up the new server.
Claude Desktop Settings
MCP Connector for 3ds Max exposes 173 tools. In Claude Desktop, enable Load tools when needed so tools are loaded on demand rather than all at once.
Use Chat, not Cowork
Claude Desktop has a mode selector at the bottom of the message box: Chat and Cowork. MCP connectors run in Chat conversations. In Cowork, your 3ds Max requests will not reach the connector and Claude behaves as if 3ds Max is not connected - even though the connector is configured correctly. Before you start, check the selector is set to Chat.
Note this is the opposite way round to ChatGPT Desktop, where the 3ds Max tools are available in Work rather than regular Chat.
Operator Skill
MCP Connector for 3ds Max ships with a free operator skill - a plain text playbook Claude reads before touching your scene. It teaches Claude to use the connector efficiently: read in bulk instead of one object at a time, verify answers with counts, batch edits in one call, and say so instead of guessing when something cannot be done. The result is fewer calls, fewer dead chats, and far less of your usage allowance burned on a single question.
Install in Claude Desktop:
- Download the skill: 3dsmax-connector.zip
- In Claude Desktop, go to Settings > Skills > Add > Upload a skill and select the zip.
- That is it - Claude picks the skill up automatically in new chats. If you ever find it has not, mention it in your prompt, for example "Follow the 3dsmax-connector skill".
Using Claude Code or Cursor instead? Install steps for both are in the mcp-connector-skills repository, which also hosts free skills for the rest of the MCP Connector family.
Tool Reference
MCP Connector for 3ds Max adds its full tool set, grouped by category below, including a read-only free tier that works without a licence. Every tool name shown is the exact identifier exposed to your AI client. The Edition column shows whether a tool is available in the free edition or needs a Pro licence - on a free install, Pro tools are not listed at all. Under each description is an example prompt showing how to ask for it in natural language - click any prompt to copy it, paste it into your AI client, and adjust the names and numbers to suit your scene.
Query
Read and measure the scene - objects, properties, selection, statistics and dimensions. Free apart from the property search.
| Tool | Example prompt | Edition |
|---|---|---|
| Find objects whose property matches a value - the query that answers "which ones are wrong". | ||
find_objects_by_property | Find every object that is not renderable | Pro |
| See what depends on an object and what it depends on - instances, constraint users, wired objects, materials and controllers - before you delete or replace it. | ||
get_dependencies | What depends on the stadium roof before I delete it? | Pro |
| Dump the parent and child tree of the scene or any subtree as nested names and classes, depth-limited and capped so large scenes stay readable. | ||
get_hierarchy | Show me the hierarchy under the rig root | Pro |
| Discover what this installation can do: Max version, current and installed renderers, which supported plugins are present with their editions, units and scene scale. | ||
get_host_capabilities | What renderers and plugins does this 3ds Max have? | Free |
| Full property read for named objects - transform, geometry, layer, material and display flags. | ||
get_object_properties | Give me the properties of Box001 and Sphere002 | Free |
| Scene name, file path, unit setup, object count and current frame. | ||
get_scene_info | What is this scene and what units is it in? | Free |
| Scene totals plus the heaviest objects by face count - the first stop when a scene feels slow. | ||
get_scene_statistics | What are the heaviest objects in this scene? | Free |
| What is currently selected in the scene. | ||
get_selection | What have I got selected? | Free |
| Reflect over any object, including third-party plugin objects: every property with its current value on the node, base object and each modifier, plus interfaces and instance count. | ||
inspect_object | Show me every property on the stair object and its modifiers | Pro |
| List groups and their members. | ||
list_groups | What groups are in this scene? | Free |
| List objects, optionally filtered by name pattern, category or layer. | ||
list_objects | List every object on the Facade layer | Free |
| Measure without changing anything: bounding box, pivot, face counts, surface area, volume, and the distances and gap between two named objects. | ||
measure_objects | Measure the crate and tell me its exact dimensions and volume | Free |
| Check the connector is alive and reachable from your AI client. | ||
ping | Are you connected to 3ds Max? | Free |
| Select objects by exact name or name pattern, replacing or adding to the selection. | ||
select_objects | Select everything whose name starts with Column | Free |
Creation
Bring new things into the scene - primitives, splines, text, cameras, lights, daylight, reference images and helpers.
| Tool | Example prompt | Edition |
|---|---|---|
| Clone objects as copies, instances or references, with a count and offset. | ||
clone_objects | Make 5 instances of Column001 spaced 3000mm apart in X | Pro |
| Create a targeted or free camera at a position, with an optional field of view. | ||
create_camera | Put a camera at the south west corner looking at the tower | Pro |
| Build a cabinet or wardrobe carcass from width, depth and height: sides, top, bottom, back, a recessed plinth, shelves at typed heights and doors hinged at their outer edge, with material IDs set and the pivot at the base. | ||
create_carcass | Build a 1200 x 600 x 2200 wardrobe carcass with shelves at 600 and 1200 and two doors | Pro |
| Fill a rectangle or any closed outline with boards or tiles: length, width, thickness, joint gap, stagger and run direction, clipped to the outline and built as one mesh. | ||
create_floor_boards | Lay 120 x 15 cm decking boards across the terrace outline with a 5 mm gap and half-bond stagger | Pro |
| Generate a floor plan from named rectangular rooms: spline outlines, a text label and snap marker per room, and optional extruded walls with shared walls built once. | ||
create_floor_plan | Lay out a plan with a 5 by 4 metre kitchen and a 6 by 4 metre living room with 2.5 metre walls | Pro |
| Create a point or dummy helper - the usual parent for a rig or an array. | ||
create_helper | Add a dummy at the centre of the selection | Pro |
| Create an omni, spot or directional light with intensity and colour. | ||
create_light | Add a warm spot light above the entrance | Pro |
| Create a box, sphere, cylinder, cone, torus, plane, teapot, tube or pyramid at a position, with size and segment control. | ||
create_primitive | Create a 2000 by 1000 by 400 box called Plinth at the origin | Pro |
| Place a photo or drawing as a correctly proportioned reference plane at a real-world width - frozen, full colour, excluded from renders. The anchor for modelling from a photo. | ||
create_reference_image | Place the front elevation photo as a 12 metre wide reference at the origin | Pro |
| Create a spline through a list of points, open or closed. | ||
create_spline | Draw a closed spline through those four corner points | Pro |
| Create a text shape at a size and position. | ||
create_text_shape | Add text reading NORTH at 250mm high in front of the model | Pro |
| Physically based daylight in one call: a sun positioner at a compass azimuth and altitude, a physical sky environment and matching exposure, correct in renders. | ||
setup_sun | Set up warm afternoon sun from the south west | Pro |
Modification
Transform and organise what is already there.
| Tool | Example prompt | Edition |
|---|---|---|
| Align objects to a target object, per axis. | ||
align_objects | Align the selected objects to Column001 in X and Y only | Pro |
| Delete named objects. | ||
delete_objects | Delete Box001 and Box002 | Pro |
| Group named objects under a group name. | ||
group_objects | Group the selected panels as Facade_Bay_01 | Pro |
| Hide or unhide objects by name or pattern, or unhide everything. | ||
hide_objects | Hide everything on the Site layer | Pro |
| Hide everything except the named objects so a screenshot shows only them; mode end unhides everything again. | ||
isolate_objects | Isolate the staircase so we can look at it on its own | Pro |
| Link objects as children of a parent so the assembly moves, rotates and scales together; a link that would make a loop is refused. | ||
link_objects | Link the tap and the sink to the worktop | Pro |
| Mirror objects about an axis, optionally cloning and offsetting. | ||
mirror_objects | Mirror the selection about X and keep a copy | Pro |
| Move objects by a relative offset or to an absolute position. | ||
move_objects | Move the selection 1500mm up in Z | Pro |
| Rename objects explicitly, or in bulk with a prefix or suffix. | ||
rename_objects | Rename everything selected with the prefix FAC_ | Pro |
| Reset XForm: bake rotation and scale into the geometry, collapse, and put the pivot at the base, centre or top without moving anything. | ||
reset_transform | Reset the transforms on the mirrored doors and put their pivots at the base | Pro |
| Rotate objects by Euler angles, relative or absolute. | ||
rotate_objects | Rotate Column001 by 45 degrees about Z | Pro |
| Scale objects uniformly or per axis, relative or absolute. | ||
scale_objects | Scale the selection to 150 percent | Pro |
| Set wire colour, renderable, shadow casting and receiving, and frozen state. | ||
set_object_properties | Make the selection non-renderable and freeze it | Pro |
| Ungroup named groups. | ||
ungroup_objects | Ungroup Facade_Bay_01 | Pro |
| Unlink objects from their parent, keeping their world position. | ||
unlink_objects | Unlink the water from the pool base | Pro |
Geometry
Turn linework into solids and combine geometry - sweeps, extrusions, lathes, booleans and merges.
| Tool | Example prompt | Edition |
|---|---|---|
| Apply a displacement map with amount, tiling and shift, through the active renderer's own displacement modifier where it has one. | ||
apply_displacement | Displace the stone wall with the height map at 20 mm | Pro |
| Merge named objects into a single editable poly - the first name survives and keeps its material and pivot. | ||
attach_objects | Merge all the balustrade parts into one object | Pro |
| Union, subtract or intersect objects; the operands are consumed and the result is an editable poly. Engine compound (default), modifier (the 3ds Max 2024+ Boolean modifier) or voxel (its volume method, which survives mesh errors). | ||
boolean_objects | Cut the window openings out of the front wall using the opening boxes | Pro |
| Close every open border with a Cap Holes modifier and report the open edges before and after. | ||
cap_borders | Cap the holes in the imported staircase | Pro |
| Extrude a rule-selected set of faces by a typed amount along their normals, as a group, by local normal or by polygon; a negative amount sinks them. | ||
extrude_faces | Extrude the top faces of the plinth up by 150 mm | Pro |
| Extrude splines by a height - a closed spline becomes a capped solid, an open one a surface, and the result says which. | ||
extrude_spline | Extrude the floor plate outline up 3.5 metres | Pro |
| Inset faces by polygon or as a group, repeatable, with the option to delete the rim so neighbouring panels are separated by an equal gap. | ||
inset_faces | Inset the door fronts by 1 mm twice and delete the rim so there is a 2 mm gap between them | Pro |
| Revolve a profile spline around an axis into a turned solid - columns, balusters, bowls, bottles - with min, centre or max axis alignment. | ||
lathe_spline | Lathe this half profile into a vase about its left edge | Pro |
| Sweep a built-in section (bar, angle, channel, tee, wide flange, tube, pipe, cylinder, half or quarter round) along splines, keeping the spline editable. | ||
sweep_profile | Sweep a 40 x 20 mm bar section along the handrail spline | Pro |
| Give splines a solid round or rectangular profile - skirtings, rails, mullions, kerbs and pipework straight from imported linework. Reversible. | ||
sweep_spline | Turn the kerb lines into 125 wide by 255 high kerbs | Pro |
Placement
Put many things in the right place - arrays, spline distribution, surface scatter, pivots and dropping onto surfaces.
| Tool | Example prompt | Edition |
|---|---|---|
| Linear, radial or grid arrays, instanced by default so editing one edits them all. | ||
array_objects | Array the column in a 6 by 4 grid at 8 metre centres | Pro |
| Scatter source objects across surfaces with the Forest Pack plugin: cell size controls density, with probability weights, random scale and rotation ranges, optional collision, all seeded - and the generated item count reported so an empty scatter is caught. | ||
create_forest_scatter | Scatter the three shrub models across the site with two metre spacing | Pro |
| Grow a lawn on a surface as fur strands or scattered clumps, with length, thickness and density (needs V-Ray). | ||
create_grass | Put a lawn on the garden plane | Pro |
| Create a parametric RailClone object from a library style along spline paths - fences, railings, walls, mouldings, curbs, road markings - reporting segments, parameters and generated faces. | ||
create_railclone | Run the Metal Fence 1 style along the boundary spline | Pro |
| Place an instanced ring of trees from named sources at a distance band, in staggered rows, with an open arc towards the camera. | ||
create_tree_belt | Surround the house with a belt of the maples at 50 to 75 m, leaving a gap on the camera side | Pro |
| Place clones along a spline: evenly by arc length, butted end to end by their own length, or one on each control point - fence posts and panels in two calls. | ||
distribute_along_spline | Run fence panels end to end along the boundary spline | Pro |
| Drop objects straight down so they sit on a surface, or on the ground plane when no surface is given. | ||
drop_to_surface | Drop the furniture onto the floor | Pro |
| Inspect a Forest Pack scatter: edition, generated item count, sources with probabilities, areas, density and randomisation ranges. | ||
get_forest_info | How many items is the tree scatter generating? | Pro |
| Inspect a RailClone object: style, base splines, segments, exposed parameters with their values, and face count. | ||
get_railclone_info | What parameters can I change on the fence? | Pro |
| List the RailClone style library on this machine - fences, railings, mouldings, curbs and more - with the exact path create_railclone expects and the edition each item needs. | ||
list_railclone_styles | What fence styles are in the RailClone library? | Pro |
| Bake a RailClone object into editable scene geometry on a named layer using the plugin's instancing engine (RailClone Pro edition). | ||
railclone_to_mesh | Bake the fence to real geometry so I can edit it | Pro |
| Jitter the position, rotation and scale of named objects by small seeded amounts so repeated objects lose their machine-made regularity. | ||
randomize_transforms | Slightly randomise the rotation and scale of the chairs | Pro |
| Scatter seeded random clones across a surface, weighted by face area, with rotation and scale variation - the same seed reproduces the same scatter. | ||
scatter_on_surface | Scatter 200 trees across the terrain with random rotation and scale | Pro |
| Add include or exclude areas to a Forest Pack scatter from closed splines - clear items off paths, buildings or water - with the item count reported after. | ||
set_forest_areas | Keep the scatter out of the driveway outline | Pro |
| Change how a Forest Pack scatter distributes its items: cell size as the density control, plus seed, collision and an optional greyscale density map. | ||
set_forest_distribution | Make the planting half as dense | Pro |
| Change the per-item randomisation of a Forest Pack scatter: scale and rotation ranges, tilt, positional jitter and mirroring. | ||
set_forest_transforms | Give the trees more size variation and a little lean | Pro |
| Move the pivot without moving geometry: centre, bottom, top or an exact point. Set it before rotating, scaling or placing. | ||
set_pivot | Set the pivot of each tree to its base | Pro |
| Set one exposed style parameter on a RailClone object by name - a post spacing, panel height or corner mode - with the object rebuilt and the new face count reported. | ||
set_railclone_parameter | Set the fence post spacing to 2.5 metres | Pro |
Modifiers
Work the modifier stack - add, configure, remove and collapse.
| Tool | Example prompt | Edition |
|---|---|---|
| Add a modifier by friendly name with properties: bend, twist, taper, shell, turbosmooth, edit poly, UVW map, noise, symmetry, lattice, smooth, relax, push, skew, chamfer, slice, normal, FFD (2x2, 3x3, 4x4, box, cylinder), quadify, mesh cleaner, normalize spline, UVW xform and clear, vertex weld, cap holes, spline chamfer, boolean, array, displace, meshsmooth, OpenSubdiv, subdivide, spherify, xform, edit mesh, edit spline, morpher, skin wrap, weighted normals, mirror, extrude, lathe, sweep, stretch. | ||
add_modifier | Add a shell modifier 20mm thick to the selected surfaces | Pro |
| Collapse the modifier stack to editable geometry. | ||
collapse_stack | Collapse the stack on everything selected | Pro |
| List the modifier stack on an object, in order. | ||
list_modifiers | What modifiers are on Box001? | Free |
| Mirror half a model with a Symmetry modifier on any combination of planes, the plane placed and rotated by typed values; weld off by default, optional collapse and manual seam weld. | ||
mirror_geometry | Mirror the left half of the chair across X | Pro |
| Remove a modifier from the stack by index. | ||
remove_modifier | Remove the second modifier from the selection | Pro |
| Set one property on one modifier in the stack, addressed by index. | ||
set_modifier_property | Set the turbosmooth iterations on Box001 to 2 | Pro |
| Cut objects with a world-aligned plane at a typed position: refine, split, or remove one side, with capping. | ||
slice_mesh | Slice the column at 2.4 m and remove everything above | Pro |
Materials
Create, assign and configure materials, presets, textures and mapping.
| Tool | Example prompt | Edition |
|---|---|---|
| Add a UVW map modifier with a projection type and tiling. | ||
add_uvw_map | Add a box UVW map to the selection tiled twice in U | Pro |
| Load an image into a map slot (base colour, roughness, metalness, bump, cutout) of a Physical Material or a V-Ray material. | ||
apply_bitmap_texture | Put that texture file into the base colour of Concrete | Pro |
| Add an occlusion-based dirt layer into a V-Ray material's diffuse, darkening corners and contact areas, with a downward bias for rain streaks. | ||
apply_dirt | Add dirt to the concrete material | Pro |
| Load an image into a V-Ray material slot (diffuse, reflection, glossiness, roughness, bump, refraction, displacement) with tiling and multiplier. | ||
apply_vray_texture | Put the travertine texture in the floor material's diffuse, tiled 4 by 4 | Pro |
| Assign a material to named objects. | ||
assign_material | Assign Concrete to every object named Wall* | Pro |
| Build a fully wired PBR material from a folder of textures - channels detected from the file names, highest resolution preferred, Physical Material or V-Ray output - and assign it in one call. | ||
create_material_from_textures | Make a material from the OakFloor texture folder and put it on the floor | Pro |
| Tuned Physical Material presets - glass, mirror, metals, plastic, ceramic, rubber, concrete, wood, fabric, emissive - with optional tint and immediate assignment. | ||
create_material_preset | Give the shopfront glazing a lightly tinted glass material | Pro |
| Create a physical material with base colour, metalness, roughness, transparency and emission, optionally placed in an editor slot. | ||
create_physical_material | Create a dark matt concrete material and put it in slot 1 | Pro |
| Create a V-Ray material with diffuse, reflection, glossiness, metalness, IOR, refraction, fog colour, Fresnel and a rounded-edges radius, optionally assigned to objects. | ||
create_vray_material | Make a white painted steel V-Ray material with 4 mm rounded edges and assign it to the columns | Pro |
| Read a material's class and properties: Physical Material values, V-Ray material values (diffuse, reflection, glossiness, IOR, Fresnel, refraction, fog), the map slots that carry a texture, and the sub-materials of a Multi/Sub-Object material. | ||
get_material_properties | Show me the properties of the Concrete material | Free |
| List scene materials with class and how many objects use each. | ||
list_materials | What materials are in this scene? | Free |
| Deal out colour-shifted variants of a material across named objects so clones do not all look identical. | ||
randomize_materials | Give the 40 chairs four slightly different versions of the fabric material | Pro |
| Swap every use of one material for another across the scene or on named objects, including Multi/Sub-Object slots, reporting exactly what changed. | ||
replace_material | Replace the placeholder concrete with the new brushed metal everywhere | Pro |
| Set a single property on a material. | ||
set_material_property | Set the roughness of Concrete to 0.8 | Pro |
| Put a material into a Multi/Sub-Object slot by material ID, growing the slot list when the ID is new or wrapping a plain material into a multi first. | ||
set_sub_material | Put the glass material into ID 3 of the window material | Pro |
| Create an OSL shader map from source code or an .osl file, compiled live by the host, optionally plugged straight into a material slot with its inputs reported. | ||
write_osl_shader | Write an OSL checker shader and plug it into the floor's base colour | Pro |
UV
Audit and fix texture mapping - measured texel density, preparation, unwrapping, flattening, relaxing and packing.
| Tool | Example prompt | Edition |
|---|---|---|
| Add an Unwrap UVW modifier in whole-object mode, or reuse the one already on the stack. | ||
add_unwrap | Add an unwrap modifier to the sofa | Pro |
| Read-only UV audit: texel density per object against the set median, UV coverage and bounds, ranked worst first. Changes nothing. | ||
audit_uv | Audit the UVs across the scene and tell me which objects have inconsistent texture scale | Free |
| Unwrap end to end in one pass: add Unwrap UVW, flatten by angle, relax the distortion, then pack the clusters. | ||
auto_unwrap | Auto unwrap the hero props ready for baking | Pro |
| Flatten UVs into clusters by face angle and lay them out in the 0-1 square. | ||
flatten_uv | Flatten the UVs on the staircase at a 45 degree threshold | Pro |
| Repack UV clusters into the 0-1 square with a chosen gap and report the packing efficiency per object. | ||
pack_uv | Repack the UVs on these objects and tell me the efficiency | Pro |
| Strip old mapping modifiers, reset transforms and collapse - the preparation whose absence is why mapping goes wrong on CAD and BIM geometry. | ||
prepare_for_mapping | Prepare the imported furniture for fresh mapping | Pro |
| Relax UV distortion over a number of iterations, keeping cluster boundaries locked by default. | ||
relax_uv | Relax the UVs on the chair to even out the stretching | Pro |
| Apply box mapping at an exact texel density, so texture scale is consistent and measured across a whole set of objects. | ||
set_texel_density | Give everything in the kitchen a texel density of 512 pixels per metre at 1K | Pro |
Mesh
Audit and repair geometry - normals, polygon reduction, welding, smoothing and edge finishing.
| Tool | Example prompt | Edition |
|---|---|---|
| Read-only mesh health audit: degenerate faces, isolated vertices, open edges and inside-out normals, ranked worst first. Changes nothing. | ||
audit_mesh | Check the mesh health of everything in the scene | Free |
| Soften hard edges with a small bevel above an angle threshold - the finishing pass that stops renders reading as computer made. | ||
chamfer_edges | Chamfer the hard edges on the joinery at 2mm before rendering | Pro |
| Cap open borders, weld coincident vertices, remove isolated and redundant collinear vertices, and report what each pass changed. | ||
clean_mesh | Clean up the imported furniture meshes | Pro |
| Set the crease value on edges chosen by rule: all, borders, by angle, material boundaries, smoothing boundaries or the current selection, so subdivision keeps them. | ||
crease_edges | Crease the hard edges on the glass sheet so TurboSmooth keeps them | Pro |
| Edit individual vertices in world space: read positions, move with soft falloff, set exact positions, or conform vertices onto another object or a spline - the way scans and reference geometry become clean topology. | ||
edit_vertices | Pull the terrain vertices under the building flat onto the slab | Pro |
| The production edge finish in one call: a small chamfer on real corners, smoothing across it, collapsed, with the chamfered edges creased. | ||
finish_edges | Finish the edges of the kitchen carcass with a 2 mm chamfer | Pro |
| Correct normal direction with a Normal modifier - auto mode measures each mesh and flips only the ones that are inside out. | ||
fix_normals | Fix the inside-out normals on the imported model | Pro |
| Reduce polygon count with ProOptimizer, keeping a chosen percentage of vertices, with real before and after face counts. | ||
optimize_mesh | Reduce the trees to 30 percent of their vertices but protect the UVs | Pro |
| Set material IDs on faces chosen by rule (all, by normal direction, element, height or face ids), or number every element in turn. | ||
set_material_ids | Give the top faces of the worktop material ID 3 | Pro |
| Rebuild smoothing groups by face angle so curved surfaces stop rendering faceted. | ||
smooth_mesh | Smooth the imported column shafts at 40 degrees | Pro |
| Weld vertices within a distance threshold, closing the split seams imported geometry usually arrives with. | ||
weld_vertices | Weld the vertices on the facade panels at 1mm | Pro |
Scene Health
Audit the whole scene, clean what the audit flags, and checkpoint before risky work.
| Tool | Example prompt | Edition |
|---|---|---|
| Read-only scene health report: duplicate names, missing asset files, empty layers and groups, unassigned materials and embedded script residue. Changes nothing. | ||
audit_scene | Audit this scene before I start working on it | Free |
| Save a whole-scene checkpoint to the hold buffer before risky multi-step work. | ||
checkpoint_scene | Checkpoint the scene before we try the booleans | Pro |
| Fix what the audit flags: rename duplicate names, delete empty layers and groups, optionally strip persistent globals, free memory. | ||
cleanup_scene | Clean up the scene and fix the duplicate names | Pro |
| Redo the last undone connector actions. | ||
redo_last | Redo that | Pro |
| Restore the scene from the last checkpoint in one call, discarding everything since. | ||
restore_checkpoint | That went wrong - restore the checkpoint | Pro |
| Reload the scene as it was when the session started, discarding everything since. | ||
restore_session_start | Put the scene back to how it was when we started | Pro |
| Set the scene's system units, and optionally the display units. Set the system units before importing CAD or mesh files - a millimetre drawing brought into an inch scene lands at the wrong real-world size, and every export after that inherits the error. Returns the previous and new units so the change is auditable. | ||
set_units | Set the scene system units to millimetres before I import this DWG | Pro |
| Save a session snapshot the connector can roll back to; taken automatically before the first scene-changing tool of a session. | ||
snapshot_session | Take a snapshot before we start | Pro |
| Undo the last connector actions, one undo entry per tool call. | ||
undo_last | Undo the last three changes | Pro |
Layers
Organise the scene into layers.
| Tool | Example prompt | Edition |
|---|---|---|
| Create a layer, optionally making it current. | ||
create_layer | Create a layer called Facade and make it current | Pro |
| Delete every layer with nothing on it, reporting what went. | ||
delete_empty_layers | Clean up the empty layers | Pro |
| List layers with node counts and hidden, frozen and current state. | ||
list_layers | What layers are in this scene and which is current? | Free |
| Move named objects onto an existing layer. | ||
move_to_layer | Move everything selected onto the Facade layer | Pro |
| Set a layer hidden, frozen or current. | ||
set_layer_properties | Freeze the Site layer | Pro |
Views and Cameras
Drive the viewport, see the scene as images, and compose cameras.
| Tool | Example prompt | Edition |
|---|---|---|
| Capture several viewport angles into one side-by-side contact sheet - front, sides, top and perspective in a single image. | ||
capture_multi_view | Give me front, left, top and perspective views of the chair in one image | Pro |
| Create a physical camera with focal length and an exposure preset (sunny exterior, overcast, interior daylight, interior evening, night), using the active renderer's own camera class. | ||
create_physical_camera | Add a 28 mm physical camera at eye level looking at the entrance, set for a sunny exterior | Pro |
| A target camera orbiting the named objects over a set number of frames, auto-fitted so they stay in frame. | ||
create_turntable | Create a 200 frame turntable of the product | Pro |
| Write a PNG of the active viewport, optionally scaled to a width. | ||
create_viewport_screenshot | Take a screenshot of the viewport at 1600 wide | Free |
| Move and aim a camera so the named objects fill its frame, allowing for the render aspect ratio - compose shots deliberately instead of guessing. | ||
frame_camera_to_objects | Frame the hero camera on the building from the south east | Pro |
| Active viewport type, camera and render level. | ||
get_viewport_info | What am I looking at right now? | Free |
| Render a contact sheet of candidate views from random bearings around the subject so a frame can be chosen before the real render. | ||
random_shots | Show me six candidate shots of the house | Pro |
| Set the render aspect and width for a camera (1:1, 3:2, 4:3, 16:9, 2.35:1, portrait) and optionally its focal length. | ||
reframe_camera | Reframe the hero camera to 16:9 at 2400 px | Pro |
| Re-expose an existing physical camera by preset or by f-number, shutter speed and ISO. | ||
set_camera_exposure | Set the hero camera to f/8, 1/250, ISO 100 | Pro |
| Set wireframe or shaded display, with optional edged faces. | ||
set_display_mode | Show the viewport shaded with edged faces | Pro |
| Switch the active viewport to top, front, left, right, perspective or a named camera. | ||
set_viewport | Switch to the top view | Free |
| Zoom to the whole scene or just the selection. | ||
zoom_extents | Zoom to the selection | Free |
Animation
The time range and transform keyframes.
| Tool | Example prompt | Edition |
|---|---|---|
| Add a weighted target to a constraint already on a track, with the updated target list reported. | ||
add_constraint_target | Make the camera also look at the second actor at thirty percent | Pro |
| Key an object's position, rotation and scale at given frames. | ||
animate_transform | Move the camera from the entrance to the courtyard over 100 frames | Pro |
| Assign an animation controller to any track: position, orientation, look-at, path and link constraints, script and expression controllers, noise, TCB, list controllers and spring dynamics. | ||
assign_controller | Make the drone follow the path spline | Pro |
| Delete all keys from named objects. | ||
delete_animation | Clear the animation off the camera | Pro |
| Edit keys on any track: list, delete, move, scale timing around a pivot, bake procedural motion into plain keys, set tangent types, and set loop behaviour. | ||
edit_keyframes | Bake the noise motion to keys every two frames and loop it | Pro |
| Frame range, frame rate, current frame and which objects are animated. | ||
get_animation_info | What is animated in this scene? | Free |
| Inspect the controllers on an object's tracks: classes, key counts, script text, constraint targets with weights, and loop behaviour. | ||
get_controller_info | What controllers are on the camera? | Pro |
| List the parameter wires on an object with their expressions and drivers, plus the tracks that could be wired. | ||
get_wired_parameters | Show the wiring on the gear object | Pro |
| Set one property on a track's controller - a noise frequency, a look-at axis, a script controller's code. | ||
set_controller_property | Set the noise frequency on the tree sway to 0.2 | Pro |
| Set the animation start, end and frame rate. | ||
set_time_range | Set the timeline to 0 to 250 at 25 fps | Pro |
| Remove the parameter wire from a track, or every wire on the object, restoring plain animatable controllers. | ||
unwire_parameters | Unwire the door rotation | Pro |
| Wire one object's track to drive another's, optionally through an expression of the source value, one-way or bidirectional. | ||
wire_parameters | Wire the slider's X position to drive the roof opening angle times two | Pro |
Rendering
Configure and run renders, one frame or every camera at once.
| Tool | Example prompt | Edition |
|---|---|---|
| Render every camera to its own image file in one call, named after the camera. | ||
batch_render_cameras | Render all the cameras to the deliverables folder at 1920 by 1080 | Pro |
| Current output size, output path, renderer and frame range. | ||
get_render_settings | What are the render settings? | Free |
| List the scene's atmospheric effects - fog, volume light, fire - and render effects with their index, class and active state. | ||
list_scene_effects | What atmospherics are in this scene? | Pro |
| Render a frame to a file, optionally from a named camera at a given size. | ||
render_frame | Render frame 0 from Camera001 at 1920 by 1080 | Pro |
| Write a 32-bit EXR with chosen render elements (reflection, refraction, GI, lighting, Z depth, velocity, alpha) for grading in post. | ||
set_output_exr | Render to EXR with Z depth and reflection passes | Pro |
| Apply a test, preview or final quality preset: noise threshold, render time cap, denoiser and colour mapping. | ||
set_render_quality | Set render quality to final | Pro |
| Set the output width, height and output path. | ||
set_render_settings | Set the render to 1920 by 1080 | Pro |
| Switch the production renderer. | ||
set_renderer | Switch to V-Ray | Pro |
| Enable, disable or delete one atmospheric or render effect by its index. | ||
set_scene_effect | Turn off the volume fog | Pro |
| Set up a white-card study: an occlusion override material, a soft dome and a key light, with the scene's own materials untouched. | ||
setup_clay_render | Give me a clay render of the model | Pro |
| Light the scene with an HDR sky image in a dome light, rotated to place the sun, with existing suns switched off. | ||
setup_hdri_environment | Light the scene with the overcast HDRI rotated 40 degrees | Pro |
Files
Scene files and assets - save, import, merge, convert, and keep textures linked.
| Tool | Example prompt | Edition |
|---|---|---|
| Write the scene, or just the selection, to another format - FBX, OBJ, STL, 3DS, glTF or DWG - taken from the file extension. | ||
convert_scene_to_format | Write the selection out as an FBX | Pro |
| Scene file name, path and whether there are unsaved changes. | ||
get_file_info | Has this scene got unsaved changes? | Free |
| Batch-import every model file in a folder - .max files merge; FBX, OBJ, glTF, USD, DWG and more import - laid out on a spaced grid, with optional PBR materials built from sibling textures. | ||
import_asset_folder | Import the furniture folder and lay the pieces out in a grid | Pro |
| Import a file into the current scene. | ||
import_file | Import that OBJ into the scene | Pro |
| List the objects inside a .max file without opening it, plus its size and modified date - then merge just the ones you want. | ||
inspect_scene_file | What is inside archive_site_v2.max? | Pro |
| List the Chaos Cosmos assets already downloaded on this machine: models, materials and HDRI skies. | ||
list_cosmos_assets | Which Cosmos trees do I have downloaded? | Pro |
| List texture and asset paths referenced by the scene that are missing on disk. | ||
list_missing_assets | Are any textures missing? | Pro |
| Merge another scene file into this one - the whole file, or only the objects you name (see inspect_scene_file). | ||
merge_scene_file | Merge the site model into this scene | Pro |
| Import a Chaos Cosmos asset by name or ID with its textures, materials and scale, at a position and rotation. | ||
place_cosmos_asset | Place Maple Tree 001 at the corner of the terrace | Pro |
| Find the scene's missing texture files under folders you name and relink them, reporting repathed, resolvable and still missing. | ||
relink_assets | The textures moved - relink them from the project assets folder | Pro |
| Save the scene, or save it as a new file. | ||
save_scene | Save this as a new file called tower_v02.max | Pro |
Scripting
The escape hatch for anything the typed tools do not cover.
| Tool | Example prompt | Edition |
|---|---|---|
| Run MAXScript directly - the escape hatch for anything the typed tools do not cover: lofts, complex booleans, bulk parametric builds. One undo entry per call, and the result reports what the script created. | ||
execute_maxscript | Run a MAXScript one-liner to report the scene bounding box | Pro |
Troubleshooting
The AI client does not see the 3ds Max tools
- Restart the AI client after installing - MCP servers are read at client start-up
- Claude Desktop: make sure the message box is set to Chat, not Cowork - connectors are not available in Cowork
- Run MCP Connector Status in 3ds Max to confirm the connector is running and see which clients are configured
- If the client was installed after the connector, run MCP Connector Setup to configure it
Tools are listed but every call fails
3ds Max needs to be open. The Bridge is reachable whether or not 3ds Max is running, so a client can list the tools and still have nothing to talk to - calls return a clear error rather than hanging.
Only the free tools are showing
Pro tools are not listed at all on an unlicensed install. Run MCP Connector Licence, activate your key, then restart your AI client so it re-reads the tool list.
Frequently Asked Questions
You bring your own AI. The connector links 3ds Max to whichever MCP client you already use - Claude Desktop, ChatGPT Desktop, Cursor or Claude Code. It does not call any AI service itself and there is no AI usage cost from us.
The connector talks to your AI client over a local named pipe on the same machine. Whatever you choose to ask about goes to your AI client under its own privacy terms. The connector contacts our licence server only to validate your key.
The free tier is 24 read-only tools - reading and measuring the scene and its objects, inspecting modifiers, materials, layers and render settings, the UV, mesh and scene health audits, environment discovery, moving the viewport and taking screenshots. Nothing in it changes your scene. It does not expire.
Yes. Open MCP Connector Licence and deactivate - that frees the seat immediately, and you can activate on the new machine with the same key.
Every scene-changing tool wraps its work in a single named undo entry, so one Ctrl+Z reverses one tool call rather than leaving you stepping back through fragments.
Changelog
3ds Max 2022 and 2023 support, batched tool runs, more AI clients
- 3ds Max 2022 and 2023 support: the connector now installs and runs on 2022 through 2027. A small number of tools rely on 3ds Max features added after 2022 and will say so rather than failing quietly; the boolean tool's default mode works on every supported release
- run_batch, now 173 MCP tools (24 free, 149 Pro): send up to 500 tool calls in one trip, run in order on the main thread as a single undo step
- More AI clients: one-click setup now covers GitHub Copilot in VS Code and Visual Studio, the Copilot CLI, and Grok Build, alongside Claude Desktop, ChatGPT, Codex and Cursor
- Fixed: apply_dirt no longer leaves the surface black in the viewport. The occlusion map is render-only, so map display is switched off and the diffuse colour shows on screen; judge dirt in a render, not a screenshot
33 new tools: Forest Pack and RailClone, rigging and wiring, deep inspection, smart import
- 33 new tools - now 172 MCP tools (24 free, 148 Pro), every one exercised against a live 3ds Max 2027 session before release
- Forest Pack: create scatters and tune density, areas and randomisation, with the generated item count verified on every change; works with the Pro and free Lite editions
- RailClone: browse the style library, run fences, railings, mouldings and curbs along splines, read and set style parameters, bake to editable geometry (Pro edition)
- Rigging: assign constraints, script, expression, noise, list and spring controllers; add weighted constraint targets; wire parameters between objects with expressions; key-level editing - list, delete, move, scale, bake to keys, tangents and loop modes
- Inspection: reflect over any object including third-party plugin objects, dependency webs, hierarchy trees, and a free environment-discovery tool that reports renderers and plugins
- Materials: build a wired PBR material from a texture folder, swap materials scene-wide, edit Multi/Sub-Object slots by material ID, write OSL shaders compiled live
- Files: list what is inside a .max file without opening it, merge only named objects, batch-import a folder of models onto a layout grid
- Modelling and scene: vertex-level editing with soft falloff and conform onto geometry or splines, floor plans from room lists, atmospheric and render effect control, multi-view contact sheets
38 new tools: look development, Chaos Cosmos, modelling and joinery
- 38 new tools - now 139 MCP tools (23 free, 116 Pro), every one exercised against a live 3ds Max 2027 session before release
- Look development: switch renderer, test / preview / final quality presets, EXR output with render elements, one-call clay studies, physical cameras with exposure presets, random-shot contact sheets, reframing to any aspect, HDRI sky domes
- V-Ray materials: create, texture, add dirt and randomise across clones;
get_material_propertiesandapply_bitmap_texturenow read and write V-Ray materials and list Multi/Sub-Object sub-materials - Context: list and place Chaos Cosmos assets, instanced tree belts, lawns, transform jitter, built-in profile sweeps, displacement
- Modelling: rule-based face selection (by direction, element, material ID, height or face id) for inset, extrude and material IDs; production edge finishing (chamfer, smoothing, crease) and crease by rule; mesh clean-up and border capping; Reset XForm with pivot placement; Symmetry mirroring and planar slicing by typed values; object linking
- Joinery in one call: cabinet and wardrobe carcasses with plinth, shelves and hinged doors; boards or tiles filling any rectangle or closed outline
add_modifieraccepts 34 more modifiers by friendly name (chamfer, slice, FFD, quadify, boolean, array, sweep, lathe and more);boolean_objectsgains the Boolean modifier and voxel engines;keep_environmenton the sun and HDRI tools for scenes that arrive lit- Session safety: automatic session snapshot before the first change, undo and redo of connector actions, restore to session start
- Fixed: zoom extents on 3ds Max 2027
Security hardening and update check removed
- Security hardening of the connector's local communication channel and its diagnostics
- Diagnostic logging is now off by default. Set
MCPCONNECTOR_LOG_ENABLED=1and restart 3ds Max to collect a log for support - The in-product update check is removed. The connector no longer checks for updates and no longer contacts a version endpoint. Outbound network calls are limited to licence activation, deactivation and validation. Check the Autodesk App Store or the product page for new releases
Scene units as a typed tool, and a reply-parsing fix
- New tool:
set_units. Set the scene's system units, and optionally the display units. Getting this right before importing CAD or mesh files matters - a millimetre drawing brought into an inch scene lands at the wrong real-world size, and every export after that inherits the error. The previous and new units are both returned so the change is auditable - Fixed large numbers breaking a reply. Scene values above a certain size were embedded in a form the AI client could not parse, so an operation that had actually succeeded came back as a failed response. Most visible on exports of large scenes
37 new tools, scene health and the full UV suite
- 37 new tools - now 172 MCP tools across 16 categories, every one exercised against a live 3ds Max session before release
- Model from photos: reference-image planes at real-world scale, plus booleans, spline sweep/extrude/lathe, chamfer edge finishing and one-call physical daylight with correct exposure
- Placement at scale: arrays, spline distribution (even, end to end, or on control points), seeded surface scatter, pivots and drop to surface
- Scene health: read-only audit, cleanup, whole-scene checkpoints, missing-asset relinking and per-camera batch rendering
- Full UV suite now working: flatten, relax, pack and auto unwrap alongside the measured texel-density tools
- Renders run prompt-free, so unattended batches can never stall on a dialog
- Free tier grows to 23 read-only tools, adding the scene audit and measurement
First release
- First release - 63 MCP tools across query, creation, modification, modifiers, materials, layers, views, animation, rendering, files and scripting
- 19-tool read-only free tier; Pro unlocks the remaining 44
- Auto-configuration for Claude Desktop, ChatGPT Desktop and Cursor, including Microsoft Store builds of Claude Desktop
- Per-seat licensing with a live view of which machines are using a licence