Skip to main content

MCP server for controlling Autodesk Maya via commandPort

Project description

Maya MCP

Python 3.10.1+ License: MIT

Maya MCP is a local Model Context Protocol server for controlling Autodesk Maya through Maya's commandPort.

It gives MCP clients a typed tool surface for scene work, nodes, selection, modeling, shading, skinning, animation, curves, scripts, and viewport capture without importing Maya modules in the server process.

This project is unofficial and is not affiliated with or endorsed by Autodesk. Autodesk Maya is a trademark of Autodesk, Inc.

Why Use It

  • runs outside Maya, so the server stays isolated from Maya imports
  • talks to Maya over localhost only
  • exposes 71 typed tools instead of raw API calls
  • supports safer scene replacement flows for unsaved changes
  • leaves raw code execution disabled unless you opt in

Quick Start

1. Install

pip install maya-mcp

From source:

pip install -e ".[dev]"

2. Open Maya commandPort

Run this in Maya's Script Editor on the Python tab:

import maya.cmds as cmds

try:
    cmds.commandPort(name=":7001", close=True)
except RuntimeError:
    pass

cmds.commandPort(
    name=":7001",
    sourceType="python",
    echoOutput=True,
    noreturn=False,
    bufferSize=16384,
)

3. Start the server

maya-mcp

Other supported launch styles:

python -m maya_mcp.server
python src/maya_mcp/server.py
fastmcp run

fastmcp run works from this repo because it includes fastmcp.json.

4. Add it to your client

Minimal generic config:

{
  "command": "maya-mcp"
}

VS Code workspace example in .vscode/mcp.json:

{
  "servers": {
    "maya": {
      "type": "stdio",
      "command": "maya-mcp"
    }
  }
}

5. Verify

Call these tools in order:

  1. health.check
  2. scene.info
  3. nodes.list

Tool Coverage

Family Count
health 1
maya 2
scene 9
nodes 7
attributes 2
selection 6
connections 5
mesh 3
viewport 1
modeling 15
shading 3
skin 6
animation 6
curve 2
script 3

script.run is disabled by default and requires MAYA_MCP_ENABLE_RAW_EXECUTION=true.

scene.new and scene.open still refuse by default when the current scene has unsaved changes. Clients that advertise MCP form elicitation can receive an in-band discard-changes confirmation instead of having to retry with force=True.

Main Docs

Published docs: https://gimbalgoats.github.io/GG_MayaMCP/

Development

This repo uses py for Python commands on Windows:

py -m ruff check .
py -m ruff format .
py -m mypy src/
py -m pytest

If tests import maya_mcp from site-packages instead of this repo:

$env:PYTHONPATH='src'
py -m pytest

Security Notes

  • localhost only
  • no remote-host support
  • no Maya imports in the MCP server process
  • no arbitrary code execution by default
  • no secrets or raw tracebacks in client-facing errors

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

maya_mcp-0.4.0.tar.gz (154.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

maya_mcp-0.4.0-py3-none-any.whl (118.0 kB view details)

Uploaded Python 3

File details

Details for the file maya_mcp-0.4.0.tar.gz.

File metadata

  • Download URL: maya_mcp-0.4.0.tar.gz
  • Upload date:
  • Size: 154.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for maya_mcp-0.4.0.tar.gz
Algorithm Hash digest
SHA256 0c70cd7078dfaf6196f258597420f647bd1e4d381e472b401467553363f624f7
MD5 6d0fe28315715ddfc836c3150da5e924
BLAKE2b-256 076d03f8046d45f942398b7638aeeaa65aa4dbd8c7fcabcd252c920f2b26ccd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_mcp-0.4.0.tar.gz:

Publisher: publish-pypi.yml on GimbalGoats/GG_MayaMCP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_mcp-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: maya_mcp-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 118.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for maya_mcp-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d839a57426a4a87e48e5c2a2d2b50c283776773e3a9cbc589850afd556f30511
MD5 44e98964af8b179e4f08fa86190847d0
BLAKE2b-256 e5712e8a5043ea10923b9e0b5f338fdea0010f5949ec80838fe23e5a19175118

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_mcp-0.4.0-py3-none-any.whl:

Publisher: publish-pypi.yml on GimbalGoats/GG_MayaMCP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page