set_vm_display
Toggle dynamic resolution on a stopped virtual machine to adjust display scaling automatically.
Instructions
Toggle dynamic resolution on the VM display.
Args: name: VM name (must be stopped) dynamic_resolution: Enable or disable dynamic resolution
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| dynamic_resolution | Yes |
Implementation Reference
- src/mcp_utm/applescript.py:649-665 (handler)Core implementation of set_vm_display. Builds an AppleScript that toggles dynamic resolution on the first display of a stopped UTM VM and updates the configuration.
def set_vm_display(name: str, dynamic_resolution: bool) -> bool: """Toggle dynamic resolution on the first display of a stopped VM.""" _validate_vm_name(name) val = "true" if dynamic_resolution else "false" script = f''' tell application "UTM" set vm to virtual machine named "{_esc(name)}" set conf to configuration of vm set disps to displays of conf if (count of disps) > 0 then set dynamic resolution of item 1 of disps to {val} update configuration of vm with conf end if end tell ''' _run(script) return True - src/mcp_utm/server.py:275-284 (schema)MCP tool decorator that defines the server-facing schema for set_vm_display. Accepts 'name' (str) and 'dynamic_resolution' (bool) parameters and returns a dict.
@mcp.tool() def set_vm_display(name: str, dynamic_resolution: bool) -> dict: """Toggle dynamic resolution on the VM display. Args: name: VM name (must be stopped) dynamic_resolution: Enable or disable dynamic resolution """ utm.set_vm_display(name, dynamic_resolution) return {"name": name, "dynamic_resolution": dynamic_resolution} - src/mcp_utm/server.py:275-284 (registration)The @mcp.tool() decorator registers 'set_vm_display' as an MCP tool in the server.
@mcp.tool() def set_vm_display(name: str, dynamic_resolution: bool) -> dict: """Toggle dynamic resolution on the VM display. Args: name: VM name (must be stopped) dynamic_resolution: Enable or disable dynamic resolution """ utm.set_vm_display(name, dynamic_resolution) return {"name": name, "dynamic_resolution": dynamic_resolution} - tests/test_server.py:15-24 (registration)Validation test that confirms 'set_vm_display' is listed among expected tool names in the MCP server registry.
def test_expected_tools(self): names = {t.name for t in mcp._tool_manager.list_tools()} expected = { "list_vms", "get_vm", "clone_vm", "start_vm", "stop_vm", "delete_vm", "suspend_vm", "wait_for_vm", "get_vm_ip", "set_vm_network", "set_vm_resources", "rename_vm", "set_vm_display", "list_vm_shares", "add_vm_share", "remove_vm_share", "set_vm_shares", "list_vm_drives", "attach_drive", "export_vm", "import_vm", "get_serial_port", } assert expected == names