# mcp-for-maya (pypi · mcp-for-maya)

AI agents' spatial awareness inside Autodesk Maya: audit, rollback safety, visual loop (Beta)

- Trust score: 80/100 (high trust)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-02

## Components

- pypi · `mcp-for-maya`: 80/100 (this document), [markdown](https://verifymcp.io/servers/xxx91n-mcp-for-maya/mcp-for-maya.md), [page](https://verifymcp.io/servers/xxx91n-mcp-for-maya/mcp-for-maya)

## Channel facts

- Registry: `pypi`
- Package: `mcp-for-maya`
- Version: `0.5.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-02.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs hatchling.build at install time, a recognised build step with no custom scripting around it.
  - 1 of 16 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to Xxx91n/mcp-for-maya).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 2 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 65/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 5257 tokens (~210/item across 25 items; 25 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (88% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 26 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the mcp-for-maya server?

mcp-for-maya runs locally as a PyPI package, launched with uvx mcp-for-maya. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add xxx91n-mcp-for-maya -- uvx mcp-for-maya
```

### Cursor

```json
{
  "mcpServers": {
    "xxx91n-mcp-for-maya": {
      "command": "uvx",
      "args": [
        "mcp-for-maya"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "xxx91n-mcp-for-maya": {
      "command": "uvx",
      "args": [
        "mcp-for-maya"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add xxx91n-mcp-for-maya -- uvx mcp-for-maya
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "xxx91n-mcp-for-maya": {
      "type": "local",
      "command": [
        "uvx",
        "mcp-for-maya"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add xxx91n-mcp-for-maya --command uvx --arg mcp-for-maya
```

### Hermes

```yaml
mcp_servers:
  xxx91n-mcp-for-maya:
    command: "uvx"
    args: ["mcp-for-maya"]
```

### Netclaw

```json
{
  "McpServers": {
    "xxx91n-mcp-for-maya": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "mcp-for-maya"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add xxx91n-mcp-for-maya -t stdio -c uvx -a mcp-for-maya
```

### Other

```json
{
  "mcpServers": {
    "xxx91n-mcp-for-maya": {
      "command": "uvx",
      "args": [
        "mcp-for-maya"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-02 (score 80, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-09-30 (score 65)

First indexed and scored.

## MCP tools (25)

### `scene_snapshot` (~121 tokens)

Scene Snapshot

Get a complete spatial overview of the current Maya scene.

Returns a structured description of ALL objects with positions, sizes, and types.
Call this once at the start of each workflow to establish spatial awareness.

Input parameters:

- `detail` (string): Detail level - "compact" (fast), "standard" (+materials/mesh stats), "full" (+vertices).
- `format` (string): Output format - "cos" (Chain-of-Symbol, compact), "json" (full JSON).
- `session_key`: Maya session key (auto-selected if only one session).

Output parameters:

- `result` (string)

### `scene_inspect` (~94 tokens)

Scene Inspect

Deep inspection of a specific object or zone.

Returns detailed properties including transform, BBox, material, mesh stats,
and optionally nearby objects with distances.

Input parameters:

- `format` (string): Output format - "cos" or "json".
- `include_neighbors` (boolean): Whether to include nearby objects (default True).
- `session_key`: Maya session key.
- `target` (string, required): Object name or zone name to inspect.

Output parameters:

- `result` (string)

### `scene_measure` (~112 tokens)

Scene Measure

Measure spatial relationship between two objects.

Input parameters:

- `format` (string): Output format - "cos" or "json".
- `mode` (string): Measurement type: - "center": Center-to-center distance (default) - "surface": Closest surface point distance - "clearance": Gap/clearance distance - "bbox": Bounding box overlap detection
- `obj_a` (string, required): First object name.
- `obj_b` (string, required): Second object name.
- `session_key`: Maya session key.

Output parameters:

- `result` (string)

### `scene_assert` (~117 tokens)

Scene Assert

Verify scene state matches expected values.

Use this after modifications to confirm the scene is in the desired state.
Enforces the VERIFY step of the ICEV workflow.

Input parameters:

- `expectations` (string, required): JSON string defining expected state. Format: {"obj_name": {"position": [x,y,z], "bbox_max": [x,y,z], ...}} Supported properties: position, bbox_max, bbox_min, exists, material.
- `format` (string): Output format - "cos" or "json".
- `session_key`: Maya session key.

Output parameters:

- `result` (string)

### `scene_validate` (~165 tokens)

Scene Validate

Validate scene against spatial constraints.

Checks the scene for constraint violations like minimum clearance,
object limits, overlaps, and height requirements.

Input parameters:

- `format` (string): Output format - "cos" or "json".
- `rules` (string, required): JSON string with constraint rules. Format: [{"type": "min_clearance", "zone": "entrance", "value": 180},  {"type": "max_objects", "value": 5000},  {"type": "no_overlap", "objects": ["wall_a", "shelf_…
- `session_key`: Maya session key.

Output parameters:

- `result` (string)

### `scene_checkpoint` (~196 tokens)

Scene Checkpoint

Save a real scene snapshot (exportAll of in-memory state).

Writes a self-contained .ma into a checkpoints/ directory next to
the scene file. On untitled (never-saved) scenes an explicit name
is required and produces an ad-hoc snapshot under the Maya
workspace — returned with original_file_status="no_original_file"
and scene_rebound_to=null. Same-name checkpoints are rejected
unless overwrite=True (the old file is preserved via rename).

Honest bounds: the snapshot contains no undo history — after
scene_rollback, call scene_snapshot to rebuild context.
References are flattened (self-contained, no write-back).
Assumes one scene file per session.

Input parameters:

- `name`: Checkpoint name (^[A-Za-z0-9_-]+$). Required on untitled scenes.
- `overwrite` (boolean): Replace a same-name checkpoint, preserving the old file.
- `session_key`: Maya session key.

Output parameters:

- `result` (string)

### `scene_rollback` (~181 tokens)

Scene Rollback

Open a checkpoint and rebind the scene to its original path (S2).

Before opening, the current in-memory state is exported to an
auto_before_rollback safety snapshot; if that fails, the rollback
aborts — pass discard_current_state=True to escape (the result
reports safety_snapshot="skipped_by_user"). Untitled scenes and
ad-hoc snapshots have no original path, so the scene stays on the
checkpoint path (S1) and scene_rebound_to is null.

The snapshot carries no undo history — call scene_snapshot
afterwards to rebuild context.

Input parameters:

- `discard_current_state` (boolean): Escape hatch — proceed even if the safety snapshot fails.
- `filename` (string, required): Checkpoint filename from scene_checkpoint_list (cp_*.ma or prev_*.ma).
- `session_key`: Maya session key.

Output parameters:

- `result` (string)

### `scene_checkpoint_list` (~56 tokens)

Scene Checkpoint List

List all saved checkpoints for the current scene state.

Saved scenes list <scene_dir>/checkpoints; untitled scenes list
the workspace ad-hoc snapshots (adhoc flag per entry).

Input parameters:

- `session_key`: Maya session key.

Output parameters:

- `result` (string)

### `camera_create` (~123 tokens)

Camera Create

Create a camera positioned for a specific shot type.

Supports industry-standard shot types: extreme_wide, wide, medium,
close, extreme_close, over_shoulder, bird_eye, low_angle.

Input parameters:

- `azimuth` (number): Horizontal angle in degrees (default 30).
- `elevation` (number): Vertical angle in degrees (default 15).
- `name` (string): Camera name.
- `session_key`: Maya session key.
- `shot_type` (string): Shot type (default "medium").
- `target` (string, required): Target object name to look at.

Output parameters:

- `result` (string)

### `camera_orbit` (~82 tokens)

Camera Orbit

Create a camera that orbits around a point with animation.

Input parameters:

- `center` (string, required): JSON string with center position [x, y, z].
- `frames` (integer): Number of frames for full orbit.
- `name` (string): Camera name.
- `radius` (number): Orbit radius in scene units.
- `session_key`: Maya session key.

Output parameters:

- `result` (string)

### `scene_aesthetics` (~190 tokens)

Scene Aesthetics

Professional-grade aesthetic analysis with 5 design dimensions.

Analyzes scene aesthetics across 5 professional design dimensions:
1\. Color Theory: 60-30-10 rule, temperature balance, harmony type, saturation variety, contrast
2\. Spatial Composition: golden ratio proportions, rule-of-thirds alignment, visual weight balance
3\. Proportion & Scale: human ergonomic reference, size hierarchy (hero/secondary/tertiary)
4\. Lighting Quality: layer composition (key/fill/rim/accent), color temperature consistency
5\. Visual Flow: sight line clarity, circulation paths, visual rhythm patterns

Returns an overall score (0-100) with grade (S/A/B/C/D/F) and improvement suggestions.

Input parameters:

- `format` (string): Output format - "json" (default) or "cos" (chain-of-symbol, token-efficient).
- `session_key`: Maya session key.

Output parameters:

- `result` (string)

### `scene_review` (~139 tokens)

Scene Review

Comprehensive scene audit - reviews all aspects after operations.

Runs spatial integrity, overlap detection, zone coverage, aesthetics,
constraint validation, orphan detection, naming, componentization, conflicts, lighting quality, and scene organization. Returns a score (0-100)
and detailed issue list.

Use this after any major scene modification to verify quality.

Input parameters:

- `checks` (string): Comma-separated check names or "all". Options: spatial, overlaps, zones, aesthetics, constraints, orphans, naming, components, conflicts, lighting, organization
- `format` (string): Output format - "json" or "cos".
- `session_key`: Maya session key.

Output parameters:

- `result` (string)

### `scene_plan` (~191 tokens)

Scene Plan

Holistic scene planning with organization validation and layout optimization.

Performs comprehensive scene health check and generates actionable plans:
\- Organization validation: detects orphan meshes, empty groups, default names
\- Zone analysis: coverage and spatial balance across functional zones
\- Layout suggestions: spacing, overlap, and clustering detection
\- Conflict prevention: near-miss collision prediction
\- Action plan: prioritized step-by-step execution guide

Based on blockout-first methodology: validate organization and proportions
before committing to detailed modeling. Supports natural language objectives.

Input parameters:

- `auto_fix` (boolean): If True, auto-fix safe issues (remove empty groups, reparent orphans).
- `format` (string): Output format - "json" (default) or "cos".
- `objective` (string): Natural language goal description. e.g., "set up entrance area with display window and clear circulation"
- `session_key`: Maya session key.

Output parameters:

- `result` (string)

### `scene_viewport_snapshot` (~184 tokens)

Scene Viewport Snapshot

Capture the active viewport as an image (WYSIWYG).

GUI sessions only - headless (mayapy/batch/native-channel)
sessions get a structured gui_session_required error.

The capture is what the artist sees: viewport HUD, selection
highlights and ornaments included. That is a feature - the
agent verifies exactly what the user is looking at. A
cmds.refresh(force=True) runs first so the frame is current.

Input parameters:

- `format` (string): "jpeg" (default, small) or "png". png recommended for wireframe/line-art review.
- `max_size` (integer): Longest-side pixel cap for the returned image (default 800 - keeps base64 well under client image token limits).
- `quality` (integer): JPEG quality 1-100 (ignored for png).
- `session_key`: Maya session key.

### `scene_render_preview` (~333 tokens)

Scene Render Preview

Single-frame playblast preview from a camera (clean, no HUD).

GUI sessions only - headless sessions get a structured
gui_session_required error.

Side-effect disclosures (read_only_hint is honest, D-026):
1\. Switching the panel camera via the modelPanel camera flag
   is instantaneous, visible, and NOT undoable in Maya.
2\. Net-zero side effect: the panel camera is restored on every
   path - success or failure - so terminal state equals entry.
3\. The current time may visibly jump during capture; it is
   restored afterwards (playblast timeline quirk).
4\. viewer=False: no playblast window pops up.
5\. On failure the restore is still attempted; a failed restore
   is logged, never raised over the error result.
6\. Only a killed Maya process can skip the restore.

Input parameters:

- `camera`: Camera to look through (default: the panel's current camera).
- `format` (string): "jpeg" (default) or "png". png recommended for wireframe/line-art review.
- `height` (integer): Frame height (default 360). Same /4 rule.
- `max_size` (integer): Longest-side cap for the returned image.
- `quality` (integer): JPEG quality 1-100.
- `session_key`: Maya session key.
- `width` (integer): Frame width in pixels (default 640). Rounded UP to a multiple of 4 server-side (playblast constraint); the actual size may also be clamped by the viewport - trust the returned metadata, not the reque…

### `asset_search` (~137 tokens)

Asset Search

Search the Poly Haven CC0 asset index (host-side, no Maya needed).

Queries https://api.polyhaven.com/assets and returns matching
asset metadata. Read-only and idempotent - pure lookup.

Input parameters:

- `asset_type` (string): "models" (default), "hdris", or "textures". Note: asset_import handles models only.
- `limit` (integer): Result cap, 1-20 (default 20). total_count always reports the full match count.
- `query` (string): Free-text search (matches id, name, categories, tags). Empty returns the unfiltered index page (up to limit).

Output parameters:

- `result` (string)

### `asset_import` (~289 tokens)

Asset Import

Import a Poly Haven CC0 model into Maya (find ids via asset_search).

Pipeline: host downloads FBX + textures from the Poly Haven
whitelist (https-only, size caps, per-file md5 verify) into the
platformdirs cache -> Maya imports the local FBX (explicit
meters unit handling) -> texture maps auto-wire by PH naming
convention (diff/albedo -> color sRGB; rough/metal -> Raw
single-channel; nor_gl -> bump2d normal) -> polycount gate ->
group as GRP_asset_<id> -> bbox/metadata report.

Idempotent by default: a second call with the same asset_id
reports the existing group instead of duplicating (force=True
re-imports).

Input parameters:

- `allow_high_polycount` (boolean): Override the polycount guard (the override is disclosed in the audit log).
- `asset_id` (string, required): Poly Haven asset id (case-sensitive, e.g. 'Camera_01').
- `force` (boolean): Re-import even when GRP_asset_<id> already exists.
- `max_polycount` (integer): Face-count guard (default 100000); imports over the limit are deleted and rejected.
- `resolution` (string): Texture tier '1k' (default), '2k', '4k', '8k'.
- `session_key`: Maya session key.

Output parameters:

- `result` (string)

### `scene_export` (~277 tokens)

Scene Export

Export the Maya scene (or named objects) to a local file.

Writes through cmds.file with prompt=False forced (a modal
dialog would hang the command channel). Formats: fbx, obj, usd
(Alembic is not supported - its AbcExport API is not a
cmds.file surface). The selection set is restored after every
objects= export and the scene's modified flag is untouched.

destructive_hint is False but note: overwrite=True permanently
replaces the target file - that path is not recoverable.

Input parameters:

- `format`: "fbx", "obj", or "usd". Optional when the path carries a recognizable extension; a missing extension is appended for an explicit format, and a conflicting extension+format pair is an error, never a g…
- `objects`: Node names to export. None (default) exports the whole scene via exportAll; a list is pre-validated (any missing name aborts - no partial export) and drives exportSelected.
- `overwrite` (boolean): Replace an existing target file (default False).
- `path` (string, required): Target file path on the Maya host. Normalized and auto-parented (missing directories are created). An existing file is rejected unless overwrite=True.
- `session_key`: Maya session key.

Output parameters:

- `result` (string)

### `scene_describe` (~367 tokens)

Scene Describe

API-level self-description of ONE node (not spatial).

Boundary: scene_inspect answers WHERE an object is (position,
bbox, neighbors); scene_describe answers WHAT the node is at the
API level - exact node type, per-attribute metadata, and
connection wiring - so you can compose accurate
execute_code/setAttr/connectAttr calls against real names.

Input parameters:

- `attrs`: Attribute names to describe; None (default) lists every attribute listAttr reports UP TO the response budget (limit) - over-budget output is truncated and disclosed via attrs_truncated + total_count,…
- `include_connections` (boolean): Return connection wiring {src_plug, dst_plug, direction} (default True); the same budget applies (connections_truncated + total_connections; no cursor in v1 - narrow and re-query).
- `include_values` (boolean): Also return value + soft_min/soft_max per attr (default False). Reading a value can trigger DG evaluation inside Maya - still read-only, but the eval may cost time on heavy graphs.
- `limit` (integer): Max items returned per face (attrs and connections). Soft default 200; a caller may relax explicitly to the hard cap 1000 (D-110) - bounds response size only, not the per-attribute query cost.
- `node` (string, required): Node name (short name or long DAG path).
- `session_key`: Maya session key (auto-selected if one session).

Output parameters:

- `result` (string)

### `scene_nodes` (~276 tokens)

Scene Nodes

Bounded enumeration of scene nodes - including non-DAG nodes.

Boundary: scene_snapshot is the low-resolution spatial overview
you call once per workflow; scene_nodes is the name-discovery
complement for the API layer - it lists nodes a spatial view
never shows (materials, shadingEngines, tool nodes) and pages
honestly: has_more/next_cursor tell you when the list was cut.

Input parameters:

- `cursor`: Opaque page token from a previous call's next_cursor; valid while the scene is unchanged.
- `dag_only` (boolean): Only DAG nodes (transforms/shapes); False includes dependency nodes such as materials and utility nodes.
- `include_type_counts` (boolean): Also return per-type counts over the full match set (not just the page).
- `inherited` (boolean): See type.
- `limit` (integer): Page size (default 50, hard-capped at 100).
- `pattern`: Maya glob pattern on names (e.g. "GEO_*").
- `session_key`: Maya session key (auto-selected if one session).
- `type`: Node type filter. With inherited=True (default) derived types match too (ls type= semantics, e.g. type="light" matches spotLight/directionalLight); inherited=False pins the exact type.

Output parameters:

- `result` (string)

### `list_sessions` (~154 tokens)

List Sessions

List all active Maya sessions.

Returns a list of session information including:
\- session_key: Session key used to interact with tools and resources
\- host: Session host address
\- port: Session port number
\- pid: Maya process ID
\- user: Logged-in user
\- maya_version: Maya version string
\- scene_name: Current scene filename
\- scene_path: Full path to current scene

Note: To detect new or removed sessions, clients should call this tool
periodically (e.g., every 10-30 seconds) and compare results. The SessionManager
automatically scans for new Maya sessions in the background.

If this returns an empty list, call maya_setup_guide() for connection help.

Output parameters:

- `result` (array)

### `maya_setup_guide` (~263 tokens)

Maya Setup Guide

Maya connection setup guide and diagnostics.

Use this tool when list_sessions returns empty or when setting up
Maya MCP for the first time. Provides platform-aware diagnostics,
auto-installation of userSetup.py, and step-by-step fallback instructions.

Input parameters:

- `action` (string): What to do: - "diagnose": Run connection diagnostics and return status - "install": Merge the managed marker block into userSetup.py.   Existing files without the block require a second call with   c…
- `confirm` (boolean): Required to write into an existing userSetup.py that has no mcp-for-maya marker block (first install call is dry-run).
- `dry_run` (boolean): Preview the install: return the proposed block without writing anything.
- `port` (integer): Maya command port number (default: 7001)
- `remove_empty_file` (boolean): On uninstall, delete the file when it only contained the marker block.
- `target_version`: Specific Maya version (e.g., "2024"). If None, targets all detected versions.

### `write_module` (~104 tokens)

Write Module

Create a virtual Python module in a Maya session.

Input parameters:

- `code` (string, required): Python source code for the module.
- `name` (string, required): Module name. Can be a dotted path (e.g., 'mypackage.utils')   in which case parent packages are created automatically.
- `overwrite` (boolean): If True, replace existing module. If False, raise error        if module already exists.
- `session_key`: Session key (optional if only one session exists)

Output parameters:

- `result` (string)

### `execute_code` (~88 tokens)

Execute Code

Execute Python code in a Maya session.

Input parameters:

- `code` (string, required): Python code to execute.
- `result_type` (string): How to handle the result: - "NONE": Execute statements, don't capture result - "JSON": Evaluate expression, JSON encode result - "RAW": Evaluate expression, return string representation
- `session_key`: Session key (optional if only one session exists)

### `add_session` (~83 tokens)

Add Session

Manually add a Maya session at a specific host and port.

Use this when auto-discovery doesn't find your Maya session,
or to connect to a Maya instance on a specific port.

Input parameters:

- `host` (string): The session host (default: "127.0.0.1")
- `port` (integer): The session port number (default: 7001)

Output parameters:

- `host` (string)
- `maya_version` (string)
- `pid` (integer)
- `port` (integer)
- `scene_name` (string)
- `scene_path` (string)
- `session_key` (string)
- `user` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/xxx91n-mcp-for-maya/mcp-for-maya#diagnostics

## Score history

- 2026-10-02: 80
- 2026-10-01: 65
- 2026-09-30: 65

## Common questions

### What is the mcp-for-maya server?

mcp-for-maya is listed in the public MCP registry as io.github.Xxx91n/mcp-for-maya. AI agents' spatial awareness inside Autodesk Maya: audit, rollback safety, visual loop (Beta). This page covers its PyPI package (mcp-for-maya).

### Is the mcp-for-maya server safe to use?

mcp-for-maya scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 2 October 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the mcp-for-maya server expose?

mcp-for-maya exposes 25 tools: scene_snapshot, scene_inspect, scene_measure, scene_assert, scene_validate, and 20 more. Their descriptions and schemas cost roughly 4,322 tokens of context every time the server is loaded.

### Is the mcp-for-maya server still maintained?

mcp-for-maya is still listed as active in the MCP registry. We last reached this channel on 2 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the mcp-for-maya server under?

mcp-for-maya declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- PyPI project: https://pypi.org/project/mcp-for-maya/
- Socket report: https://socket.dev/pypi/package/mcp-for-maya
- Repository: https://github.com/Xxx91n/mcp-for-maya
- Changelog RSS feed: https://verifymcp.io/servers/xxx91n-mcp-for-maya/mcp-for-maya.xml
- Changelog JSON feed: https://verifymcp.io/servers/xxx91n-mcp-for-maya/mcp-for-maya.json
- HTML version of this page: https://verifymcp.io/servers/xxx91n-mcp-for-maya/mcp-for-maya
