Skip to content

MayaMcpServer API ​

MayaMcpServer is the main server class that embeds an MCP HTTP server inside Maya.

Class: MayaMcpServer ​

python
from dcc_mcp_maya.server import MayaMcpServer

Constructor ​

python
MayaMcpServer(
    port: Optional[int] = None,
    server_name: str = "maya-mcp",
    server_version: str = "0.9.43",  # x-release-please-version
    gateway_port: Optional[int] = None,
    registry_dir: Optional[str] = None,
    dcc_version: Optional[str] = None,
    scene: Optional[str] = None,
    enable_gateway_failover: bool = True,
    metrics_enabled: Optional[bool] = None,
    job_storage_path: Optional[str] = None,
    job_recovery: Optional[str] = None,
)
ParameterTypeDefaultDescription
portint | NoneNoneOptional fixed TCP port; core/env then the OS selects a free port.
server_namestr"maya-mcp"Name shown in MCP initialize response
server_versionstr"0.9.43"Version shown in MCP initialize response
gateway_portint | NoneNoneGateway election port for multi-instance discovery
registry_dirstr | NoneNoneShared registry directory for discovery metadata
dcc_versionstr | NoneNoneMaya version reported to the registry
scenestr | NoneNoneScene path reported to the registry
enable_gateway_failoverboolTrueAllow gateway failover auto-promotion
metrics_enabledbool | NoneNoneEnable Prometheus /metrics. None reads DCC_MCP_MAYA_METRICS=1
job_storage_pathstr | NoneNoneSQLite job DB path. None reads env or defaults to <data_dir>/jobs.db. "" disables
job_recoverystr | NoneNoneInterrupted job policy: "drop" or "requeue". None reads DCC_MCP_MAYA_JOB_RECOVERY

Methods ​

register_builtin_actions(extra_skill_paths=None, include_bundled=True) ​

Discover built-in Maya skills for progressive loading.

python
server = MayaMcpServer()
server.register_builtin_actions()

# With custom paths:
server.register_builtin_actions(extra_skill_paths=["/my/skills"])
ParameterTypeDefaultDescription
extra_skill_pathslist[str]NoneAdditional skill directories to scan
include_bundledboolTrueInclude bundled dcc-mcp-core skills

Returns: self (fluent interface)

start() ​

Start the MCP HTTP server.

python
handle = server.start()
print(handle.mcp_url())   # exact OS-assigned instance URL

Returns: McpServerHandle with .mcp_url(), .port, .shutdown()

stop() ​

Gracefully stop the server.

python
server.stop()

Properties ​

PropertyTypeDescription
is_runningboolWhether the server is currently running
mcp_urlstr | NoneThe MCP endpoint URL, or None if not running

Example ​

python
from dcc_mcp_maya.server import MayaMcpServer

server = MayaMcpServer(server_name="my-maya")
server.register_builtin_actions(extra_skill_paths=["/studio/skills"])
handle = server.start()

print(handle.mcp_url())   # exact OS-assigned instance URL
print(handle.port)        # selected free port

# Later:
server.stop()

Module-Level Helpers ​

start_server() ​

Start (or return the already-running) Maya MCP server as a singleton.

python
import dcc_mcp_maya

handle = dcc_mcp_maya.start_server(
    server_name="maya-mcp",
    register_builtins=True,
    extra_skill_paths=None,
    include_bundled=True,
    gateway_port=None,
    registry_dir=None,
    dcc_version=None,
    scene=None,
    enable_hot_reload=False,
    enable_gateway_failover=True,
)
ParameterTypeDefaultDescription
portint | NoneNoneOptional fixed TCP port; omit for core/env then OS assignment
server_namestr"maya-mcp"MCP server name
register_builtinsboolTrueDiscover built-in skills during startup; toolsets load on demand
extra_skill_pathslist[str]NoneAdditional skill paths
include_bundledboolTrueInclude bundled dcc-mcp-core skills
gateway_portint | NoneNoneGateway election port for multi-instance discovery
registry_dirstr | NoneNoneShared registry directory for discovery metadata
dcc_versionstr | NoneNoneMaya version reported to the registry
scenestr | NoneNoneScene path reported to the registry
enable_hot_reloadboolFalseEnable skill hot-reload support
enable_gateway_failoverboolTrueAllow gateway failover auto-promotion

Returns: McpServerHandle

stop_server() ​

Stop the module-level singleton server.

python
dcc_mcp_maya.stop_server()

McpServerHandle ​

The handle returned by start() / start_server():

MemberDescription
handle.mcp_url()Returns the full MCP URL string
handle.portThe TCP port number
handle.shutdown()Stop the server

Released under the MIT License.