maya-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {
"tasks": {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
}
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_sessionsA | List all active Maya sessions. Returns a list of session information including:
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. |
| write_moduleA | Create a virtual Python module in a Maya session. Args: name: Module name. Can be a dotted path (e.g., 'mypackage.utils') in which case parent packages are created automatically. code: Python source code for the module. overwrite: If True, replace existing module. If False, raise error if module already exists. session_key: Session key (optional if only one session exists) Returns: Success message Example: write_module("mytools", ''' import maya.cmds as cmds |
| execute_codeA | Execute Python code in a Maya session. Args: code: Python code to execute. result_type: 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) Returns: Captured result (None if result_type is NONE) Note: stdout and stderr are delivered in real-time via MCP Resource subscriptions (maya://sessions/{session_key}/stdout and /stderr). Call get_output() to retrieve buffered output. Example: # Execute statements execute_code("import maya.cmds as cmds; cmds.polyCube()") |
| add_sessionA | 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. Args: host: The session host (default: "127.0.0.1") port: The session port number (default: 7001) Returns: Session information for the added session Before using this, ensure Maya has a Python command port open. In Maya's Script Editor (Python), run: import maya.cmds as cmds cmds.commandPort(name=':7001', sourceType='python') |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool has a distinct purpose: listing sessions, writing modules, executing code, and adding sessions. No overlap, descriptions are clear.
All tool names follow a consistent verb_noun pattern using snake_case: list_sessions, write_module, execute_code, add_session.
Four tools cover the essential functions for a Maya remote control server: session listing, code execution, module creation, and manual session addition. Not too few nor too many.
The tool set provides core functionality for executing Python code and managing modules in Maya sessions. Minor gaps include dedicated output retrieval or scene manipulation tools, but the set is functional for its scope.