mcp-utm
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": 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_vmC | 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_vmC | Import a VM from a .utm file. Args: path: Path to the .utm file to import |
| list_vm_drivesA | 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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