MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Tool choices, workflows, and MAXScript pitfalls for controlling 3ds Max via MCP.
$ npx skills add cl0nazepamm/3dsmax-mcp --skill 3dsmax-mcp -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cl0nazepamm/3dsmax-mcp 3dsmax-mcp --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/cl0nazepamm/3dsmax-mcp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/3dsmax-mcp-dev .claude/skills/3dsmax-mcp && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "3dsmax-mcp" agent skill from https://github.com/cl0nazepamm/3dsmax-mcp/tree/master/skills/3dsmax-mcp-dev into .claude/skills/3dsmax-mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "3dsmax-mcp", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/cl0nazepamm/3dsmax-mcp/tree/master/skills/3dsmax-mcp-devType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add cl0nazepamm/3dsmax-mcp --skill 3dsmax-mcp -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cl0nazepamm/3dsmax-mcp 3dsmax-mcp --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cl0nazepamm/3dsmax-mcp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/3dsmax-mcp-dev .agents/skills/3dsmax-mcp && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "3dsmax-mcp" agent skill from https://github.com/cl0nazepamm/3dsmax-mcp/tree/master/skills/3dsmax-mcp-dev into .agents/skills/3dsmax-mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "3dsmax-mcp", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cl0nazepamm/3dsmax-mcp --skill 3dsmax-mcp -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cl0nazepamm/3dsmax-mcp 3dsmax-mcp --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cl0nazepamm/3dsmax-mcp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/3dsmax-mcp-dev .cursor/skills/3dsmax-mcp && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "3dsmax-mcp" agent skill from https://github.com/cl0nazepamm/3dsmax-mcp/tree/master/skills/3dsmax-mcp-dev into .cursor/skills/3dsmax-mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "3dsmax-mcp", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/cl0nazepamm/3dsmax-mcp.git --path skills/3dsmax-mcp-dev--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add cl0nazepamm/3dsmax-mcp --skill 3dsmax-mcp -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cl0nazepamm/3dsmax-mcp 3dsmax-mcp --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cl0nazepamm/3dsmax-mcp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/3dsmax-mcp-dev .gemini/skills/3dsmax-mcp && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "3dsmax-mcp" agent skill from https://github.com/cl0nazepamm/3dsmax-mcp/tree/master/skills/3dsmax-mcp-dev into .gemini/skills/3dsmax-mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "3dsmax-mcp", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install cl0nazepamm/3dsmax-mcp 3dsmax-mcpInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add cl0nazepamm/3dsmax-mcp --skill 3dsmax-mcp -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cl0nazepamm/3dsmax-mcp.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/3dsmax-mcp-dev .github/skills/3dsmax-mcp && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "3dsmax-mcp" agent skill from https://github.com/cl0nazepamm/3dsmax-mcp/tree/master/skills/3dsmax-mcp-dev into .github/skills/3dsmax-mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "3dsmax-mcp", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cl0nazepamm/3dsmax-mcp --skill 3dsmax-mcp -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cl0nazepamm/3dsmax-mcp 3dsmax-mcp --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cl0nazepamm/3dsmax-mcp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/3dsmax-mcp-dev .opencode/skills/3dsmax-mcp && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "3dsmax-mcp" agent skill from https://github.com/cl0nazepamm/3dsmax-mcp/tree/master/skills/3dsmax-mcp-dev into .opencode/skills/3dsmax-mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "3dsmax-mcp", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
3dsmax-mcpTool choices, workflows, and MAXScript pitfalls for controlling 3ds Max via MCP.
3dsmax MCP is an agent skill from cl0nazepamm/3dsmax-mcp. Tool choices, workflows, and MAXScript pitfalls for controlling 3ds Max via MCP.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files (for example `curve-construction.md`, `maxscript-3dsmax-objects.md` and `maxscript-animation-controllers.md`).
It sits in Agent Workflows, covering MCP servers. It works with Model Context Protocol. The licence is MIT.
Read from SKILL.md and the folder at commit 29aed53. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
3dsmax MCP loads about 3.3k tokens when it runs. Until then it costs about 23 tokens; SKILL.md has 1,478 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from cl0nazepamm/3dsmax-mcp at commit 29aed53, republished under its MIT licence (© cl0nazepamm). 1,478 words, ~3,267 tokens.
.claude/skills/3dsmax-mcp/SKILL.md (or your agent's skills folder). This skill also uses 14 other files; get the full folder from GitHub.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.
query_scene and create_object are advertised directly; call them by name.list_toolsets, describe_toolset and call_tool are advertised, never call an operational name as a top-level tool. Pick a capability with list_toolsets, load only that group with describe_toolset, then invoke it through call_tool(name=..., arguments=...). If the exact tool and arguments are already known, call_tool can dispatch directly.get_bridge_status or get_session_context as a preamble.query_scene(action="delta"), re-inspection or a capture.list_max_instances, select_max_instance(pid), get_selected_max_instance and release_max_instance. MCP_MAX_PIPE or MCP_MAX_PID pins the startup target (the pipe takes precedence); release also clears it.query_scene (overview/filter/class/property/selection/delta), get_hierarchy, get_instances, get_dependencies, walk_references. resolve_node_refs gives canonical handle/name/path identity. scene_qa checks naming, transforms, hierarchy and timeline only; it never judges meshes or visuals, and its fix repairs naming only (preview with dry_run=true unless approved).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 as ai_standard_surface may be missing from class discovery; use inspect_plugin_class or introspect_osl.manage_layers, manage_groups, manage_selection_sets) and viewport tools. Use scene_patch for a preflighted batch of renames, relative transforms, flags or parenting committed as one undo step.execute_maxscript, or execute_python (pymxs, needs safe mode off), only when no dedicated tool exists.manage_scene (hold/fetch/reset/save/info). inspect_max_file, search_max_files, merge_from_file and batch_file_info work without loading a scene.watch_scene follows the user's actions.name or path, and refresh after a reset or load.expected_scene_seq from resolve_node_refs to scene_patch when stale targeting matters; selection changes do not invalidate it.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.inspect_mesh or an AGENT VIEWPORT capture → pick_component with the capture's view_token as expected_view → mesh_edit(expected_mesh=...) → verify with inspect_mesh, geometry_qa or a capture.create_mesh for computed vertex/face arrays; loft_mesh for parameterized section lofts; curve_model, inspect_curve and edit_curve for curve-driven forms (read curve-construction.md first); draw_spline plus Lathe/Extrude/Bevel_Profile/Sweep through add_modifier, refined with spline knot edits or edit_vertices conform.convert=true, collapse_modifier_stack) happens only when requested.boolean_operation: prefer inline cutters (named, atomic, no scene litter). Non-live operands are consumed, so never consume a node other tools still reference by name.contact_check and judge reported depth against the design intent.assign_material, create_material_from_textures, smart_import, palette_laydown. They default to OpenPBR; pass material_class for another renderer. Share an existing material with assign_material(names=[...], source_name=...).set_material_property, set_material_properties, set_sub_material, create_texture_map, set_texture_map_properties. Switch pipelines with create_shell_material, replace_material and batch_replace_materials.get_material_slots (prefer slot_scope="map"), get_materials, and material_roles (follow next_offset; check complete and truncated).write_osl_shader, then introspect_osl before wiring. The shader name must match shader_name; OSLMap lowercases parameter names.material_class is the material's own class name: PhysicalMaterial, not Physical (the camera).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.inspect_plugin_class or inspect_plugin_instance with schema_version=2, then plugin_patch with the returned schema and state tokens. Shared or animated resources need deliberate handling.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_viewport aims by eye and target without creating a camera. Use capture_viewport, capture_multi_view or capture_screen(enabled=True) for stills and frame-buffer crops.agent_viewport(action="render")) and production renders (render_automations) only on request. A capture never certifies convergence or finished denoising.script_controller inspect → validate → apply with expected_controller. A controller that returns zero at every frame has failed; inspect it with sample_frames.assign_controller, inspect_controller, inspect_track_view, set_controller_props, add_controller_target. Pass list_wireable_params paths, including their [#Parameters] levels, to wire_params unchanged; get_wired_params and unwire_params read and remove wiring.keyframe_tracks: timeline reads or sets frame rate, current frame and range. list inspects keys; parent numKeys is often 0 because keys live on Bezier Float sub-controllers. Retimes need time/times or both from_time and to_time. bake and resample skip list, constraint, expression, script and motion-capture controllers. Use loop, or match with order=hierarchy, for parented rigs. tracks takes exact tokens only: all, position/pos, rotation/rot, scale/scl, transform/tm.keyframe_tracks; transform_object rewrites keys at the current frame.get_railclone_style → edit the XML → set_railclone_style(expected_style=...) → verify with get_railclone_output. Read railclone.md first.scatter_forest_pack, then hide the source meshes.cosmos_search → cosmos_download → cosmos_import. Repeating a completed import adds another instance.discover_plugin_surface, get_plugin_manifest, and resource://3dsmax-mcp/plugins/{name}/manifest|guide|recipes|gotchas.execute_maxscript and tool scripts run in Max's quiet mode: prompts such as queryBox, overwrite or missing-file warnings silently take their default answer. Pass execute_maxscript(quiet=False) when the user wants to be asked.BLOCKED_BY_DIALOG with its title, text and buttons. The call keeps running inside Max: never repeat it. Other replies warn while any dialog is open.max_dialogs. respond presses a button by label or index and returns the interrupted call's result.MAX_DIALOG_ERROR. Callback errors appear just after the triggering call returns; the next reply warns, so read the error and acknowledge it.ToolEnvelope dict (ok/result/error/hint), not a JSON string. Tool-authored hints win over automatic ones; hint.suggested_tools may list alternatives.error, code or status=error|failed, never by message alone.USER_BUSY: Max has an open undo operation and the write was rejected before any change. Continue read-only and retry after it finishes; never bypass it with MAXScript.code is JSON-unescaped once before MAXScript parses it. A BAD_PARAM parse error without a line number almost always means escaping corruption, not bad logic:"C:/assets/tex/") or derive paths at runtime; \" and \U break literals.\n or \t inside string literals.;.try (...) catch (getCurrentException() as string)) and adding pieces back.#noPrompt to importFile, e.g. importFile @"C:/assets/model.fbx" #noPrompt using:FBXIMP; configure importer options first.Box width:10, not Box() width:10. Box width is X, length is Y, height is Z.try (...) catch (ex) (ex).Noise is a texture map; Noisemodifier is the modifier.getDir #temp is Max's temp folder, not the OS temp folder.snapshotAsMesh returns a world-space TriMesh: read vertices in coordsys world without reapplying node.objectTransform, then delete it. Base-cage poly vertices still need the object transform.[#Z Position] becomes [#z_position].getClassInstances Material is invalid because Material is not a MAXClass; use sceneMaterials.getHandleByAnim returns values like 12345P; quote them when building JSON.$Box001.modifiers[#Unwrap_UVW].edit(), not only the OpenUnwrapUI macro.Read the relevant file before writing unfamiliar MAXScript:
| File | Covers |
|---|---|
maxscript-core-syntax.md | Variables, scope, types, operators, control flow |
maxscript-common-patterns.md | Undo/animate blocks, callbacks, file I/O |
maxscript-3dsmax-objects.md | Nodes, transforms, hierarchy, properties |
maxscript-mesh-poly-ops.md | Sub-object mesh/poly ops |
maxscript-materials-textures.md | Materials, texmaps, PBR |
maxscript-animation-controllers.md | Controllers, constraints, wire params |
maxscript-rendering-cameras.md | Render settings, cameras, environment |
maxscript-splines-shapes.md | Splines and shapes |
maxscript-scripted-plugins.md | Scripted geometry, modifiers, utilities |
maxscript-ui-rollouts.md | Rollout UIs and dialogs |
© cl0nazepamm, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 14 other files in skills/3dsmax-mcp-dev of cl0nazepamm/3dsmax-mcp.
Open the folder on GitHubat commit 29aed53
3dsmax MCP next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| 3dsmax MCP this skillcl0nazepamm/3dsmax-mcp | 297 | — | ~3.3k | Automated safety check: Pass | MIT | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 4 repos | ~1.2k | Automated safety check: Pass | MIT | |
| MCP Integration for Pluginsanthropics/claude-plugins-official | 38k | 11 repos | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Crush Configurationcharmbracelet/crush | 29k | — | ~3.7k | Automated safety check: Pass | Custom licence | |
| Context Mode Output Sandboxmksglu/context-mode | 26k | — | ~4.1k | Automated safety check: Pass | Custom licence |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
charmbracelet/crush
Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.
mksglu/context-mode
Routes large command, file, API and browser output through context-mode tools so only the needed result enters the agent's context, instead of dumping it via Bash.
warpdotdev/warp
Migrates the compatible subset of settings and global file-based MCP servers from the Warp desktop app into Warp Agent CLI without exposing credentials or state.
Works with
Categories
Tool choices, workflows, and MAXScript pitfalls for controlling 3ds Max via MCP. 3dsmax MCP is an agent skill from cl0nazepamm/3dsmax-mcp. Tool choices, workflows, and MAXScript pitfalls for controlling 3ds Max via MCP.
3dsmax MCP fits situations like: tasks that involve MCP servers.
Run `npx skills add cl0nazepamm/3dsmax-mcp --skill 3dsmax-mcp -a claude-code`. Or copy the skill folder (skills/3dsmax-mcp-dev in cl0nazepamm/3dsmax-mcp) into .claude/skills/3dsmax-mcp in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cl0nazepamm/3dsmax-mcp --skill 3dsmax-mcp -a codex`. Or copy the skill folder (skills/3dsmax-mcp-dev in cl0nazepamm/3dsmax-mcp) into .agents/skills/3dsmax-mcp in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cl0nazepamm/3dsmax-mcp --skill 3dsmax-mcp -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/3dsmax-mcp, .gemini/skills/3dsmax-mcp, .github/skills/3dsmax-mcp and .opencode/skills/3dsmax-mcp in your project.
SKILL.md names no scripts, command-line tools or credentials: 3dsmax MCP is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
3dsmax MCP is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with 3dsmax MCP: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MCP Integration for Plugins (anthropics/claude-plugins-official, 38k stars) and Crush Configuration (charmbracelet/crush, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cl0nazepamm (a GitHub user) maintains it in cl0nazepamm/3dsmax-mcp, which has 297 GitHub stars. The repository was last updated on October 1, 2026.
Source: cl0nazepamm/3dsmax-mcp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.