Control Autodesk Maya scenes with 71 typed tools for modeling, animation, shading, and more.

Maya MCP is an open-source, local Model Context Protocol server for controlling Autodesk Maya through Maya's commandPort.
Supported Maya versions: Autodesk Maya 2024 and later.
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.
localhost onlyFor Claude Desktop, use the packaged MCPB extension from the latest GitHub Release.
maya-mcp-<version>.mcpb from the release Assets section..mcpb file, dragging
it into Claude Desktop, or using Settings -> Extensions -> Advanced settings
-> Install Extension.7001 unless you use a different port.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.
pip install maya-mcp
On Windows:
py -m pip install maya-mcp
From source:
pip install -e ".[dev]"
commandPortDownload, then paste and run, the complete
scripts/enable_commandport.py
file in Maya's Python Script Editor. The helper keeps the established Python +
echoOutput path on Maya 2025 and later. On Maya 2024 only, it selects the
loopback-only response compatibility path required by that release.
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.
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 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.
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 uses .vscode/mcp.json with a servers object.
{
"servers": {
"maya": {
"type": "stdio",
"command": "maya-mcp"
}
}
}
Some clients use a generic mcpServers object:
{
"mcpServers": {
"maya": {
"command": "maya-mcp",
"args": []
}
}
}
Call these tools in order:
health.checkscene.infonodes.list| 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.
Published docs: https://gimbalgoats.github.io/GG_MayaMCP/
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
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.
MIT. See LICENSE.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx maya-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-gimbalgoats-maya-mcp": {
"command": "uvx",
"args": [
"maya-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencemaya-mcppypiMaya MCP works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.