cl0nazepamm/3dsmax-mcp/3dsmax-mcp-dev
Claude Code and agent skill by cl0nazepamm/3dsmax-mcp
Trust tier 2
- community
Source check pending
Checking that the SKILL.md file is still in the repository.
Tool choices, workflows, and MAXScript pitfalls for controlling 3ds Max via MCP.
Install
npx vskill@latest install cl0nazepamm/3dsmax-mcp/3dsmax-mcp-devSKILL.md
3ds Max MCP — Agent Guide
Each tool's description documents its parameters, modes and limits. This guide covers what no single tool can: routing, tool choice, cross-tool workflows, safety rules and MAXScript pitfalls.
Tool Profile Routing
- Full/core: operational tools such as
query_sceneandcreate_objectare advertised directly; call them by name. - Progressive: if only
list_toolsets,describe_toolsetandcall_toolare advertised, never call an operational name as a top-level tool. Pick a capability withlist_toolsets, load only that group withdescribe_toolset, then invoke it throughcall_tool(name=..., arguments=...). If the exact tool and arguments are already known,call_toolcan dispatch directly.
Principles
- Match the user's request. Do not run setup, discovery or scene analysis by habit, and do not call
get_bridge_statusorget_session_contextas a preamble. - Prefer a dedicated tool over raw MAXScript whenever one clearly matches.
- Do not render unless the user asks. Viewport capture is fine when visual proof helps.
- Verify meaningful edits with
query_scene(action="delta"), re-inspection or a capture. - Keep mutating calls sequential. Concurrent writes interleave undo transactions: a crash, then persistent corruption such as phantom successes and wrong handles.
- Multiple Max instances: the first native connection stays bound to that Max and never silently switches while it runs. Use
list_max_instances,select_max_instance(pid),get_selected_max_instanceandrelease_max_instance.MCP_MAX_PIPEorMCP_MAX_PIDpins the startup target (the pipe takes precedence); release also clears it. - Shared selection: the selection belongs to the MCP server process, so sessions that share one server share it, and one session's select moves the others. Pass
expected_pid(every tool takes it) to any call that must reach one particular Max. A mismatch returnsTARGET_MISMATCHwith nothing sent.selection_generationin each reply's transport changes on every select, release or re-resolve. - Default target after a restart: a target the server picked by itself (
target_source"default" or "claim") follows its Max's restart (the Max that started after it stopped answering), and the reply warns. A Max that was already open belongs to another session and is never taken over: until the restart is up, calls fail with retryableTARGET_UNAVAILABLEand nothing is sent;select_max_instanceit to work there. Several new instances:AMBIGUOUS, select one. A claimed instance wins. Explicit and environment targets never move; they fail until you select or release.
Tool Choice
- Scene reads:
query_scene(overview/filter/class/property/selection/delta),get_hierarchy,get_instances,get_dependencies,walk_references.resolve_node_refsgives canonical handle/name/path identity.scene_qachecks naming, transforms, hierarchy and timeline only; it never judges meshes or visuals, and itsfixrepairs naming only (preview withdry_run=trueunless approved). - Inspection:
inspect_object,inspect_properties,analyze_node_orientation(before rig, vehicle or camera transforms). For unfamiliar plugin APIs:introspect_class,introspect_instance,discover_plugin_classes,map_class_relationships,inspect_plugin_class. Arnold materials such asai_standard_surfacemay be missing from class discovery; useinspect_plugin_classorintrospect_osl. - Edits: object, modifier, material, controller, organization (
manage_layers,manage_groups,manage_selection_sets) and viewport tools. Usescene_patchfor a preflighted batch of renames, relative transforms, flags or parenting committed as one undo step. - Fallbacks:
execute_maxscript, orexecute_python(pymxs, needs safe mode off), only when no dedicated tool exists. - Scene files:
manage_scene(hold/fetch/reset/save/info).inspect_max_file,search_max_files,merge_from_fileandbatch_file_infowork without loading a scene. - Interactive sessions:
watch_scenefollows the user's actions.
Workflows
Identity and tokens
- Node handles are stable only within the loaded scene. Cross-check cached handles with
nameorpath, and refresh after a reset or load. - Pass
expected_scene_seqfromresolve_node_refstoscene_patchwhen stale targeting matters; selection changes do not invalidate it. - Guarded edits take the token from a fresh inspection:
expected_mesh,expected_view,curve_token,expected_style,expected_controller, plugin schema/state tokens,expected_dialog. A refused token means inspect again, never bypass the guard.
Modeling
- Polygon edits:
inspect_meshor an AGENT VIEWPORT capture →pick_componentwith the capture'sview_tokenasexpected_view→mesh_edit(expected_mesh=...)→ verify withinspect_mesh,geometry_qaor a capture. - Construction:
create_meshfor computed vertex/face arrays;loft_meshfor parameterized section lofts;curve_model,inspect_curveandedit_curvefor curve-driven forms (read curve-construction.md first);draw_splineplus Lathe/Extrude/Bevel_Profile/Sweep throughadd_modifier, refined with spline knot edits oredit_verticesconform. - Edits act on the editable base cage and preserve modifiers above it. Collapsing (
convert=true,collapse_modifier_stack) happens only when requested. boolean_operation: prefer inlinecutters(named, atomic, no scene litter). Non-live operands are consumed, so never consume a node other tools still reference by name.- After placing parts that should sit on or join each other, run
contact_checkand judge reported depth against the design intent.
Materials
- Create and assign:
assign_material,create_material_from_textures,smart_import,palette_laydown. They default to OpenPBR; passmaterial_classfor another renderer. Share an existing material withassign_material(names=[...], source_name=...). - Edit:
set_material_property,set_material_properties,set_sub_material,create_texture_map,set_texture_map_properties. Switch pipelines withcreate_shell_material,replace_materialandbatch_replace_materials. replace_materialappliessource_materialwherevertarget_materialis used.source_frompicks where the source is found, e.g."material_editor"for a re-imported Cosmos copy. Onno_match, check the direction before retrying; onblocked, do not swap the arguments.- Audit:
get_material_slots(preferslot_scope="map"),get_materials, andmaterial_roles(follownext_offset; checkcompleteandtruncated). - OSL:
write_osl_shader, thenintrospect_oslbefore wiring. The shader name must matchshader_name; OSLMap lowercases parameter names. material_classis the material's own class name:PhysicalMaterial, notPhysical(the camera).
Lighting and plugin settings
lighting_capabilities→create_lights→inspect_lights→edit_lights. Never infer integer enum meanings. RGB is linear in the rendering color space, Kelvin is explicit, and EXR/HDR inputs get no extra gamma.- Other plugin settings:
inspect_plugin_classorinspect_plugin_instancewithschema_version=2, thenplugin_patchwith the returned schema and state tokens. Shared or animated resources need deliberate handling.
Viewport and capture
- Open
agent_viewport(action="open")before inspection captures. Navigation and captures then default to it and never redirect into the user's view;source="active"targets the user's view explicitly. Release and reopen after a scene load. set_viewportaims by eye and target without creating a camera. Usecapture_viewport,capture_multi_vieworcapture_screen(enabled=True)for stills and frame-buffer crops.capture_multi_viewviews take names,three_quarter,currentor[x, y, z]directions.shadingandedgesapply to that capture only: clay with edges shows topology. For animation, rigs and simulations,framesorframe_countgive one view over time in a single image instead of repeated scrub-and-capture calls.- Start interactive previews (
agent_viewport(action="render")) and production renders (render_automations) only on request. A capture never certifies convergence or finished denoising.
Animation and controllers
- Script controllers:
script_controllerinspect → validate → apply withexpected_controller. A controller that returns zero at every frame has failed; inspect it withsample_frames. - Other controllers:
assign_controller,inspect_controller,inspect_track_view,set_controller_props,add_controller_target. Passlist_wireable_paramspaths, including their[#Parameters]levels, towire_paramsunchanged;get_wired_paramsandunwire_paramsread and remove wiring. keyframe_tracks:timelinereads or sets frame rate, current frame and range.listinspects keys; parentnumKeysis often 0 because keys live on Bezier Float sub-controllers. Retimes needtime/timesor bothfrom_timeandto_time.bakeandresampleskip list, constraint, expression, script and motion-capture controllers. Useloop, ormatchwithorder=hierarchy, for parented rigs.trackstakes exact tokens only:all,position/pos,rotation/rot,scale/scl,transform/tm.- On animated objects, edit keys with
keyframe_tracks;transform_objectrewrites keys at the current frame.
Plugins and assets
- tyFlow graph work: read tyflow-graphs.md completely before acting.
- RailClone (7.3.5+):
get_railclone_style→ edit the XML →set_railclone_style(expected_style=...)→ verify withget_railclone_output. Read railclone.md first. - Data Channel and Max Creation Graph: read procedural-graphs.md completely before acting.
- Forest Pack:
scatter_forest_pack, then hide the source meshes. - Cosmos:
cosmos_search→cosmos_download→cosmos_import. Repeating a completed import adds another instance. - Plugin surfaces:
discover_plugin_surface,get_plugin_manifest, andresource://3dsmax-mcp/plugins/{name}/manifest|guide|recipes|gotchas.
Dialogs
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/3dsmax-mcp-dev/SKILL.md
Popularity
- Repository stars
- 140
- Repository forks
- 29
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/cl0nazepamm/3dsmax-mcp/3dsmax-mcp-dev)