Skip to content

MayaMcpServer API(中文) ​

完整 API 文档参阅英文版 MayaMcpServer API。

模块级函数 ​

start_server ​

python
dcc_mcp_maya.start_server(
    port: Optional[int] = None,
    server_name: str = "maya-mcp",
    register_builtins: bool = True,
    extra_skill_paths: Optional[List[str]] = None,
    include_bundled: bool = True,
    gateway_port: Optional[int] = None,
    registry_dir: Optional[str] = None,
    dcc_version: Optional[str] = None,
    scene: Optional[str] = None,
    enable_hot_reload: bool = False,
    enable_gateway_failover: bool = True,
    metrics_enabled: Optional[bool] = None,
    job_storage_path: Optional[str] = None,
    job_recovery: Optional[str] = None,
    dcc_pid: Optional[int] = None,
    dcc_window_title: Optional[str] = None,
    dcc_window_handle: Optional[int] = None,
    enable_workflows: Optional[bool] = None,
    host_dispatcher: Optional[Any] = None,
    readiness_timeout_secs: Optional[int] = None,
) -> McpServerHandle

启动(或返回已运行的)模块级单例服务器。

参数:

参数类型默认值说明
portOptional[int]None可选固定 TCP 端口;未指定时由 core/环境变量和操作系统分配。
server_namestr"maya-mcp"MCP initialize 响应中显示的名称。
register_builtinsboolTrue启动时发现内置技能;具体工具集按需加载。
extra_skill_pathsList[str]None额外扫描 SKILL.md 文件的目录列表。
include_bundledboolTrue发现技能时包含 dcc-mcp-core 自带技能。
gateway_portint | NoneNone多实例网关选举使用的端口。
registry_dirstr | NoneNone用于服务发现元数据的共享注册目录。
dcc_versionstr | NoneNone上报到发现注册表中的 Maya 版本。
scenestr | NoneNone上报到发现注册表中的当前场景路径。
enable_hot_reloadboolFalse启用 Skill 热重载。
enable_gateway_failoverboolTrue网关失效时允许非网关实例自动晋升。
metrics_enabledbool | NoneNone启用 Prometheus /metrics。
job_storage_pathstr | NoneNoneSQLite job 持久化数据库路径。
job_recoverystr | NoneNone中断 job 恢复策略:"drop" 或 "requeue"。
dcc_pidint | NoneNone上报给注册表和 gateway 诊断的 PID。
dcc_window_titlestr | NoneNone上报给发现面的窗口标题。
dcc_window_handleint | NoneNone上报给发现面的原生窗口句柄。
enable_workflowsbool | NoneNone启用 core workflow tools。
host_dispatcherAny | NoneNonecore dispatcher bridge 使用的 Maya host dispatcher。
readiness_timeout_secsint | NoneNone发布给 readiness 消费方的建议超时时间。

返回: McpServerHandle,含 .mcp_url()、.port、.shutdown()。

示例:

python
import dcc_mcp_maya

# 基本启动
handle = dcc_mcp_maya.start_server()
print(handle.mcp_url())  # 操作系统分配的实例地址

# 自定义端口 + 额外技能
handle = dcc_mcp_maya.start_server(
    port=9000,
    extra_skill_paths=["C:/studio/maya-skills"],
    include_bundled=False,
)

stop_server ​

python
dcc_mcp_maya.stop_server() -> None

停止模块级单例服务器。


类:MayaMcpServer ​

python
from dcc_mcp_maya.server import MayaMcpServer

构造函数 ​

python
MayaMcpServer(
    port: Optional[int] = None,
    server_name: str = "maya-mcp",
    server_version: str = "0.3.0",
    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,
    dcc_pid: Optional[int] = None,
    dcc_window_title: Optional[str] = None,
    dcc_window_handle: Optional[int] = None,
    enable_workflows: Optional[bool] = None,
    host_dispatcher: Optional[Any] = None,
    readiness_timeout_secs: Optional[int] = None,
)

方法 ​

register_builtin_actions ​

python
server.register_builtin_actions(
    extra_skill_paths: Optional[List[str]] = None,
    include_bundled: bool = True,
) -> MayaMcpServer

发现内置 Maya 技能并注册诊断能力。返回 self 支持链式调用。

注册过程按阶段执行:core built-ins、recipes tools、skill reference docs、strict skill scan、capability manifest、project tools 和 MCP resources。之后可通过 load_skill MCP 工具按需实体化某个技能。

start ​

python
server.start() -> McpServerHandle

启动 HTTP 服务器,返回 McpServerHandle。

stop ​

python
server.stop() -> None

优雅地停止服务器。

属性 ​

属性类型说明
is_runningbool服务器是否正在运行
mcp_urlOptional[str]MCP 端点 URL,未运行时为 None
registryToolRegistry底层工具(Tool)注册表

完整生命周期示例 ​

python
from dcc_mcp_maya.server import MayaMcpServer

server = MayaMcpServer(server_name="hero-maya")
server.register_builtin_actions(
    extra_skill_paths=["C:/pipeline/maya-actions"]
)

handle = server.start()
print(f"服务器运行于 {handle.mcp_url()}")

# ... Maya 会话 ...

server.stop()

环境变量 ​

变量默认值说明
DCC_MCP_MAYA_PORT操作系统分配直连实例的可选固定 TCP 端口
DCC_MCP_MAYA_SERVER_NAMEmaya-mcp默认服务器名称
DCC_MCP_MAYA_SKILL_PATHS—Maya 专用 skill 搜索根目录(Windows 用 ;,Unix 用 :);每个根目录可以是单个 skill 包或多个子 skill 包的父目录
DCC_MCP_SKILL_PATHS—全局回退 skill 搜索根目录
DCC_MCP_MAYA_HOT_RELOAD0设为 1 时启用 Skill 热重载
DCC_MCP_MAYA_METRICS0设为 1 时启用 Prometheus /metrics
DCC_MCP_MAYA_JOB_STORAGE<data_dir>/jobs.dbSQLite job 持久化数据库路径
DCC_MCP_MAYA_JOB_RECOVERYdroprequeue 表示启动后恢复幂等的中断 job
DCC_MCP_MAYA_ENABLE_GATEWAY_FAILOVER1启用自动网关故障转移选举
DCC_MCP_MAYA_ENABLE_WORKFLOWS0启用 core workflow tools
DCC_MCP_MAYA_READINESS_TIMEOUT_SECS—readiness 消费方使用的建议超时时间
DCC_MCP_MAYA_EXCLUDE_STUBS_FROM_TOOLS_LIST0从 tools/list 隐藏未加载 skill/group stub
DCC_MCP_MAYA_SIDECAR1设为 0 可禁用 Maya 插件默认启动的 dcc-mcp-server sidecar
DCC_MCP_GATEWAY_PORT插件模式下为 9765网关竞争端口;设为 0 可禁用
DCC_MCP_GATEWAY_NAMEsidecar 模式下为 dcc-mcp-gateway@<hostname>admin、health 和 CLI 诊断中展示的独立 gateway 名称
DCC_MCP_GATEWAY_REMOTE_PORT0默认关闭局域网入口;设为正端口号后开启远程访问
DCC_MCP_GATEWAY_REMOTE_HOST0.0.0.0局域网 gateway listener 的绑定地址
DCC_MCP_REGISTRY_DIR操作系统临时目录用于服务发现的共享注册目录

基于 MIT 许可证发布