Skip to main content

MCP server for controlling Autodesk Maya via commandPort

Project description

Maya MCP

Python 3.10.1+ PyPI version Docs License: MIT

Maya MCP banner

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

Claude Desktop Quick Start

For Claude Desktop, use the packaged MCPB extension from GitHub Releases.

  1. Download maya-mcp-<version>.mcpb from the latest GitHub Release.
  2. Install it in Claude Desktop by double-clicking the .mcpb file, dragging it into Claude Desktop, or using Settings -> Extensions -> Advanced settings -> Install Extension.
  3. Keep the Maya commandPort setting at 7001 unless you use a different port.
  4. Open Maya and run the commandPort setup from the next section.
  5. In Claude Desktop, verify with health_check, scene_info, and nodes_list.

Claude Desktop uses underscore tool names such as scene_info. Other MCP clients use dotted names such as scene.info.

Quick Start

1. Install

pip install maya-mcp

On Windows:

py -m 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

Codex CLI / IDE extension

Codex uses ~/.codex/config.toml for MCP servers. The CLI and IDE extension share that config.

Installed package:

[mcp_servers.maya]
command = "maya-mcp"

Source checkout or Windows-friendly setup:

[mcp_servers.maya]
command = "py"
args = ["-m", "maya_mcp.server"]
env = { PYTHONPATH = "src" }

Use the PYTHONPATH line only when running from a source checkout. Use python instead of py on platforms that do not provide the Windows launcher.

Claude Code

Claude Code project-scoped MCP servers live in .mcp.json. The server key is user-defined; these examples use maya consistently.

Installed package:

{
  "mcpServers": {
    "maya": {
      "command": "maya-mcp",
      "args": []
    }
  }
}

Source checkout or Windows-friendly setup:

{
  "mcpServers": {
    "maya": {
      "command": "py",
      "args": ["-m", "maya_mcp.server"],
      "env": {
        "PYTHONPATH": "src"
      }
    }
  }
}

For Codex CLI and Claude Code on Windows, py -m maya_mcp.server is usually more reliable than relying on the maya-mcp console script being on the correct PATH.

Claude Desktop Extension

Maya MCP ships as a Claude Desktop MCPB extension. The extension still runs the same local stdio server and keeps Maya communication on localhost.

User installation, build, verification, and troubleshooting notes live in Claude Desktop Extension.

Published GitHub Releases attach the built .mcpb package as maya-mcp-<version>.mcpb after the release workflow validates and smoke-tests the bundle.

The packaging script supports a user-local MCPB CLI install:

npm install --prefix "$env:USERPROFILE\.tools\mcpb" @anthropic-ai/mcpb
.\packaging\claude-mcpb\build.ps1

VS Code

VS Code uses .vscode/mcp.json with a servers object.

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

Other MCP clients

Some clients use a generic mcpServers object:

{
  "mcpServers": {
    "maya": {
      "command": "maya-mcp",
      "args": []
    }
  }
}

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

Privacy

Maya MCP runs locally. The project does not operate a hosted service, collect telemetry, or receive Maya scene data from local use. See Privacy Policy.

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.5.0.tar.gz (1.4 MB 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.5.0-py3-none-any.whl (121.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for maya_mcp-0.5.0.tar.gz
Algorithm Hash digest
SHA256 14e475c357d8c713eb238521827b79224dea063842b39f1ae750613cd88d1710
MD5 2ef26240d2f1433f05aef3cebb858242
BLAKE2b-256 06efe63f4050ef2d43c317ffdff70f7671aa0e2582059f3fc3f975314a4e737b

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_mcp-0.5.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.5.0-py3-none-any.whl.

File metadata

  • Download URL: maya_mcp-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 121.6 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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bb2247201e165d70e26f0daf9ffbecf633f10da469d178406492fa2fc12fc5c7
MD5 f0f33d3ba09e8dcab40ed392bd7937ec
BLAKE2b-256 c5d38d19eb9ab699a8d2730c38ff7acdac239f7b3f36293c61fa84aab353e6ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_mcp-0.5.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