Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add dcc-mcp/dcc-mcp-3dsmax --skill 3dsmax-modelinggit clone --depth 1 https://github.com/dcc-mcp/dcc-mcp-3dsmaxWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/dcc-mcp/dcc-mcp-3dsmax/3dsmax-modeling)<a href="https://agentmods.dev/skills/dcc-mcp/dcc-mcp-3dsmax/3dsmax-modeling"><img src="https://agentmods.dev/badge/skills/dcc-mcp/dcc-mcp-3dsmax/3dsmax-modeling/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/dcc-mcp/dcc-mcp-3dsmax/3dsmax-modeling"><img src="https://agentmods.dev/badge/skills/dcc-mcp/dcc-mcp-3dsmax/3dsmax-modeling.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00096 | $0.01323 |
| Opus 5.5 | $0.00038 | $0.00529 |
| Sonnet 5.5 | $0.00019 | $0.00265 |
| Haiku 4.5 | $0.00010 | $0.00132 |
Grade A, and why
3dsmax-modeling scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 111 lines — stays where its author put it; the contents beside it link to each section on GitHub.
3ds Max Modeling Tools
Create primitive, Lathe, spline, curve-model, and loft geometry in the current
3ds Max scene. All tools touch the live scene through pymxs, so they declare
affinity: main.
create_box retains depth as its public parameter and maps it to native Box
length. Dimensions must be positive finite numbers in scene system units;
the response reads them back from the node. A mismatch or unreadable dimension
fails with the created node identity; the node remains available for inspection.
lathe_profile accepts two to 256 [radius, height] pairs. Radius must be
non-negative; both values must be finite. It creates an XZ-plane spline and
uses the native Lathe axis. The action reads back the spline knot count and
modifier settings, and removes the new node if those postconditions differ.
Splines and curves
draw_spline builds a spline shape from an ordered list of world-space XYZ
triples. It supports create, append, and replace modes over one spline
index. Points are converted into the shape's object space, committed with
updateShape, and read back in world space; a point that does not come back
fails the call and removes the node the call created.
inspect_curve reads every spline of a shape as world-space knots with their
in/out handle vectors, and returns a token that digests the geometry it read.
edit_curve requires that token: if the spline changed since it was issued,
the edit fails before anything is written. After an edit, every requested field
is read back, and a field that did not take effect restores the captured
knot state and fails the call.
curve_model adds a named, parametric layer on top: a rounded_rect,
rectangle, circle, or polyline profile, optionally swept along a path
spline with the native Sweep modifier. The parameters that produced the
profile are stored on the node, so read and update work without repeating
them, and list enumerates every stored curve model in the scene.
loft_mesh lofts two to sixty-four matching cross-section splines,
optionally along a path spline, into a quad loft. The registered shape count
is read back and must match; surface parameters are applied one by one and
read back, so a parameter the host ignored fails the call and is returned in
rejected_surface_params rather than being reported as applied. The rule is
the same on create and on update: what differs is only what can be taken
back. A create removes the node it just made, while an update keeps the
caller's node - the accepted parameters stay on it - and takes only the
cross-sections this call added back off.
What ships with it
11 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- action_create_box.py 2.1 KB runs code
- action_create_cylinder.py 1.1 KB runs code
- action_create_plane.py 1.0 KB runs code
- action_create_sphere.py 1021 B runs code
- action_curve_model.py 18 KB runs code
- action_draw_spline.py 9.5 KB runs code
- action_edit_curve.py 11 KB runs code
- action_inspect_curve.py 2.1 KB runs code
- action_lathe_profile.py 7.5 KB runs code
- action_loft_mesh.py 22 KB runs code
- tools.yaml 31 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed · +5 lines 4b2d15845de9
- 1mo ago Changed · +52 lines · +37 tokens per session c0bfd65ce569
- 1mo ago First seen · 54 lines · 59 tokens per session scan A 424cb4e97e4d
3dsmax-modeling is a skill published in the GitHub repository dcc-mcp/dcc-mcp-3dsmax (9 stars, last pushed today), licensed MIT. It adds 96 tokens to every session and 1,323 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
maya-render
Pipeline stage — render globals, final-frame rendering, and viewport capture: configure render settings, query them, render frames, capture playblasts. Use for producing final or preview imagery. Not for modeling (maya-mesh-ops), animation editing (maya-animation), generic file import/export (maya-geometry), or render…
maya-scripting
Bootstrap stage — escape hatch for Maya work that has no packaged skill yet. Agents should prefer searchskills / dcccapabilitymanifest → loadskill → typed tools (inputSchema + annotations) from domain skills; use executepython or executemel only when no skill matches, for bulk in-process loops, or for API…
maya-import-to-scene
Pipeline stage — structured asset import. Consume an AssetDescriptor produced by maya-asset-source and import the asset (FBX, OBJ, USD) into the current Maya scene via cmds.file(). Handles axis/unit conversion, MaterialMode, PlacementHint, and optional target collection grouping. Returns an ImportToSceneResult with…
dcc-mcp-maya-setup
Set up dcc-mcp-maya for an agent or operator: install Maya Python dependencies with mayapy, generate MCP host configuration, guide the user through loading the Maya plugin, and run a first live-tool smoke prompt.
maya-asset-source
Pipeline stage — asset discovery and resolution. Search local asset libraries, resolve paths to structured AssetDescriptor records, and surface candidate assets for downstream import. Use before maya-import-to-scene to locate what to import.
maya-mock-async
Synthetic async skill for gateway integration tests. Sleeps for N seconds and reports progress every 500 ms. No actual Maya installation required — uses MayaStandaloneDispatcher.