Maya plugin for the DCC Model Context Protocol (MCP) ecosystem — embeds a Streamable HTTP MCP server directly inside Maya
Project description
dcc-mcp-maya
Maya plugin for the DCC Model Context Protocol (MCP) ecosystem.
Embeds a standards-compliant MCP Streamable HTTP server (2025-03-26 spec) directly inside Maya — no external gateway or separate IPC process required.
Architecture
┌─────────────────────────────────────────────────────────┐
│ Maya (embedded Python) │
│ │
│ import dcc_mcp_maya │
│ handle = dcc_mcp_maya.start_server(port=8765) │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ McpHttpServer (dcc-mcp-core / Rust/axum) │ │
│ │ POST /mcp ──► ToolRegistry │ │
│ │ GET /mcp ──► SSE stream │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────┬───────────────────────────┘
│ http://127.0.0.1:8765/mcp
┌─────────────────────────────▼───────────────────────────┐
│ MCP Host (Claude Desktop / OpenClaw / Cursor / …) │
└─────────────────────────────────────────────────────────┘
Installation
Into Maya's Python
mayapy -m pip install dcc-mcp-maya
As a Maya Plugin
- Load the plugin via Window > Settings/Preferences > Plug-in Manager and find
dcc_mcp_maya. - Or add to your
userSetup.py:import maya.cmds as cmds cmds.loadPlugin("dcc_mcp_maya_plugin")
Quick Start
Option A — From Python Script Panel
import dcc_mcp_maya
handle = dcc_mcp_maya.start_server(port=8765)
print(handle.mcp_url()) # http://127.0.0.1:8765/mcp
Point your MCP host at the URL above.
Option B — Load Plugin
Copy maya/plugin/dcc_mcp_maya_plugin.py to a directory on MAYA_PLUG_IN_PATH.
The server starts automatically when the plugin loads.
Configuration
| Environment variable | Default | Description |
|---|---|---|
DCC_MCP_MAYA_PORT |
8765 |
TCP port for the MCP server |
DCC_MCP_MAYA_SERVER_NAME |
maya-mcp |
Name shown in MCP initialize |
DCC_MCP_MAYA_SKILL_PATHS |
(none) | Extra skill directories (semicolon-separated on Windows, colon on Unix) |
DCC_MCP_SKILL_PATHS |
(none) | Global fallback skill directories for all DCC adapters |
Bundled Skills (Zero Configuration)
dcc-mcp-maya automatically loads the bundled general-purpose skills shipped
inside the dcc-mcp-core wheel — no path configuration required.
| Skill | Tools | Notes |
|---|---|---|
dcc-diagnostics |
screenshot, audit_log, action_metrics, process_status |
Observability & debugging |
workflow |
run_chain |
Multi-step action chaining |
git-automation |
repo_stats, changelog_gen |
Git analysis |
ffmpeg-media |
convert, probe, thumbnail |
Requires ffmpeg on PATH |
imagemagick-tools |
resize, composite |
Requires ImageMagick on PATH |
To opt-out of bundled skills:
# Disable all bundled core skills
handle = dcc_mcp_maya.start_server(include_bundled=False)
# Or fine-grained control
server = MayaMcpServer()
server.register_builtin_actions(include_bundled=False)
Skill search-path priority (highest → lowest):
extra_skill_pathsargument- Built-in Maya skills (shipped in this package)
DCC_MCP_MAYA_SKILL_PATHSenvironment variableDCC_MCP_SKILL_PATHSenvironment variable- Bundled
dcc-mcp-coreskills ← loaded by default - Platform default skills directory
Diagnostic IPC Actions
When register_builtin_actions() is called, three IPC callback actions are
automatically registered so the dcc-diagnostics skill can retrieve live
runtime data from the running Maya process:
| Action | Returns |
|---|---|
get_audit_log |
SandboxContext audit entries |
get_tool_metrics |
ToolRecorder performance counters |
dispatch_tool |
Relay for workflow__run_chain |
The DCC_MCP_IPC_ADDRESS environment variable is set automatically so skill
subprocesses can connect back without any manual configuration.
Available MCP Tools
dcc-mcp-maya currently ships 64 built-in skill packages and 370+ Maya MCP tools.
The sections below are representative categories, not an exhaustive inventory.
Skill discovery is progressive: register_builtin_actions() indexes available skills,
and individual skill toolsets are loaded on demand by the MCP server.
Scene
| Tool | Description |
|---|---|
get_session_info |
Maya version, scene path, FPS, object count |
new_scene |
Create a new scene |
save_scene |
Save scene to disk |
open_scene |
Open a scene file |
list_objects |
List DAG objects (optional type filter) |
get_selection |
Get current selection |
set_selection |
Set active selection |
Geometry
| Tool | Description |
|---|---|
create_sphere |
Create polygon sphere |
create_cube |
Create polygon cube |
create_cylinder |
Create polygon cylinder |
create_plane |
Create polygon plane |
delete_objects |
Delete objects from the scene |
set_transform |
Set translate/rotate/scale |
get_transform |
Query translate/rotate/scale |
rename_object |
Rename an object |
Material
| Tool | Description |
|---|---|
create_material |
Create Lambert/Blinn/Phong/Arnold material |
assign_material |
Assign material to objects |
set_material_attribute |
Set material color, roughness, etc. |
list_materials |
List all scene materials |
Animation
| Tool | Description |
|---|---|
set_keyframe |
Set keyframe on object attributes |
get_keyframes |
Get keyframe times for object/attribute |
set_timeline |
Set playback timeline range |
get_current_time |
Get current frame number |
set_current_time |
Set current frame number |
Render
| Tool | Description |
|---|---|
set_render_settings |
Set resolution, frame range, renderer |
capture_viewport |
Capture viewport as base64-encoded PNG |
import_file |
Import FBX/OBJ/Alembic/Maya file |
export_selection |
Export selection to FBX/OBJ/Alembic |
Scripting
| Tool | Description |
|---|---|
execute_mel |
Execute a MEL script |
execute_python |
Execute Python inside Maya |
Claude Desktop Integration
Add to claude_desktop_config.json:
{
"mcpServers": {
"maya": {
"url": "http://127.0.0.1:8765/mcp"
}
}
}
Requirements
- Maya 2020+ (Python 3.7+)
dcc-mcp-core≥ 0.12.29
Development
git clone https://github.com/loonghao/dcc-mcp-maya
cd dcc-mcp-maya
pip install -e ".[dev]"
pytest tests/
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dcc_mcp_maya-0.2.9.tar.gz.
File metadata
- Download URL: dcc_mcp_maya-0.2.9.tar.gz
- Upload date:
- Size: 608.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ecdf7e455c425160331cc11568657c77c2329ad6d01d5bac5c2650675e2b8ba7
|
|
| MD5 |
47ab3a1a50a77b7ae1d00132e26c2f88
|
|
| BLAKE2b-256 |
6c0c450c04ffe76fa1779008e883a8f3d344ddaee9df9fbbbd0bacc5b87d80fc
|
Provenance
The following attestation bundles were made for dcc_mcp_maya-0.2.9.tar.gz:
Publisher:
release.yml on loonghao/dcc-mcp-maya
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcc_mcp_maya-0.2.9.tar.gz -
Subject digest:
ecdf7e455c425160331cc11568657c77c2329ad6d01d5bac5c2650675e2b8ba7 - Sigstore transparency entry: 1341613260
- Sigstore integration time:
-
Permalink:
loonghao/dcc-mcp-maya@ba03ce88d9895e4dc9a4f45dcfd80d0ee20ce18a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/loonghao
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ba03ce88d9895e4dc9a4f45dcfd80d0ee20ce18a -
Trigger Event:
push
-
Statement type:
File details
Details for the file dcc_mcp_maya-0.2.9-py3-none-any.whl.
File metadata
- Download URL: dcc_mcp_maya-0.2.9-py3-none-any.whl
- Upload date:
- Size: 558.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b1405ad548d2143ff8eee32e3214bf815105c20abd414d65b5115e57f1711c6
|
|
| MD5 |
dbcaa80e2febe4f9c0174de50a65f80d
|
|
| BLAKE2b-256 |
b519410584b2875be2bcefe3d62d9df8a2212fb0ccfc76ef693455aabfad92ce
|
Provenance
The following attestation bundles were made for dcc_mcp_maya-0.2.9-py3-none-any.whl:
Publisher:
release.yml on loonghao/dcc-mcp-maya
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcc_mcp_maya-0.2.9-py3-none-any.whl -
Subject digest:
8b1405ad548d2143ff8eee32e3214bf815105c20abd414d65b5115e57f1711c6 - Sigstore transparency entry: 1341613265
- Sigstore integration time:
-
Permalink:
loonghao/dcc-mcp-maya@ba03ce88d9895e4dc9a4f45dcfd80d0ee20ce18a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/loonghao
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ba03ce88d9895e4dc9a4f45dcfd80d0ee20ce18a -
Trigger Event:
push
-
Statement type: