mcp-utm
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_vmsA | List all registered UTM virtual machines with their status. |
| get_vmA | Get status and configuration of a VM by name. |
| clone_vmA | Clone a UTM template VM with a unique random MAC address. Args: template: Name of the template VM to clone name: Name for the new VM randomize_mac: Assign a random MAC so clones get unique IPs (default: True) |
| start_vmB | Start a stopped or suspended VM. |
| stop_vmB | Stop a running VM. Args: name: VM name force: Force stop if graceful shutdown fails |
| delete_vmB | Delete a VM permanently. Cannot be undone. |
| get_vm_ipA | Discover the IP address of a running VM via ARP. Polls the ARP table for the VM's MAC address. Works for Apple VF (macOS) VMs on the 192.168.64.0/24 subnet and bridged QEMU VMs. Args: name: VM name timeout: Seconds to wait for ARP discovery (default: 60) |
| set_vm_networkA | Update network configuration of a stopped VM. Args: name: VM name (must be stopped) mac_address: New MAC address (e.g. "aa:bb:cc:dd:ee:ff"), or None to keep current mode: Network mode ("shared" or "bridged"), or None to keep current |
| set_vm_resourcesA | Update memory and CPU cores of a stopped VM. Args: name: VM name (must be stopped) memory: Memory in MiB, or None to keep current cpu_cores: Number of CPU cores, or None to keep current |
| suspend_vmA | Suspend a running VM to memory. Args: name: VM name (must be running) save: Save VM state to disk for later resume (default: True) |
| rename_vmA | Rename a stopped VM. Args: name: Current VM name (must be stopped) new_name: New name for the VM |
| get_serial_portA | Get the serial port address of a VM. Returns the ptty path (for Apple VF) or TCP address/port (for QEMU) that can be used for direct console access without SSH. Args: name: VM name |
| wait_for_vmA | Wait until a VM reaches a target status. Useful for orchestration — start a VM then wait for it to be ready. Args: name: VM name target_status: Status to wait for: "stopped", "started", or "paused" timeout: Seconds to wait (default: 120) |
| export_vmB | Export a VM to a .utm file. Args: name: VM name path: Destination file path (e.g. "/tmp/my-vm.utm") |
| import_vmB | Import a VM from a .utm file. Args: path: Path to the .utm file to import |
| list_vm_drivesB | List drives attached to a VM with their IDs and sizes. Args: name: VM name |
| attach_driveA | Attach an ISO or disk image to a removable drive. Args: name: VM name (must be stopped) drive_id: Drive ID (from list_vm_drives) source_path: Path to ISO or disk image file |
| list_vm_sharesC | List shared directories (VirtioFS) registered for a VM. Args: name: VM name |
| add_vm_shareA | Add a host directory as a VirtioFS share on a VM. Creates a security-scoped bookmark so the share persists across boots and works with Apple VF clones. The directory appears inside the guest at /Volumes/My Shared Files/. Args: name: VM name (must be stopped) path: Host directory path to share (e.g. "/Users/you/project") |
| remove_vm_shareA | Remove a shared directory from a VM. Args: name: VM name (must be stopped) path: Host directory path to remove |
| set_vm_sharesA | Replace all shared directories on a VM. Overwrites the entire share list. Use add_vm_share/remove_vm_share for incremental changes. Args: name: VM name (must be stopped) paths: List of host directory paths to share (empty list clears all) |
| set_vm_displayA | Toggle dynamic resolution on the VM display. Args: name: VM name (must be stopped) dynamic_resolution: Enable or disable dynamic resolution |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/neverprepared/mcp-utm'
If you have feedback or need assistance with the MCP directory API, please join our Discord server