mcp-utm
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-utmClone the 'Ubuntu Server' template VM."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-utm
MCP server for managing UTM virtual machines on macOS via AppleScript.
Provides 22 tools for cloning, configuring, and controlling UTM VMs — including proper MAC address randomization for Apple Virtualization Framework clones, which enables concurrent VMs with unique network identities.
Install
# PyPI
uvx mcp-utm
# Or install globally
uv tool install mcp-utm
pip install mcp-utmClaude Code config
{
"mcpServers": {
"utm": {
"command": "uvx",
"args": ["mcp-utm"]
}
}
}Requirements
macOS (uses AppleScript /
osascript)UTM 4.6+ (download or
brew install --cask utm)Python 3.11+
Tools
Lifecycle
Tool | Description |
| List all registered VMs with status |
| Get status and configuration of a VM |
| Clone a template with unique random MAC |
| Start a stopped or suspended VM |
| Stop a running VM (graceful or force) |
| Delete a VM permanently |
State
Tool | Description |
| Suspend a running VM to memory |
| Poll until VM reaches a target status |
Networking
Tool | Description |
| Discover VM IP via ARP table |
| Update MAC address or network mode |
Configuration
Tool | Description |
| Update memory and CPU cores |
| Rename a VM |
| Toggle dynamic resolution |
Directory Shares (VirtioFS)
Tool | Description |
| List shared directories |
| Add a host directory share |
| Remove a directory share |
| Replace all shares |
Drives
Tool | Description |
| List attached drives |
| Attach an ISO or disk image |
Portability
Tool | Description |
| Export VM to a |
| Import VM from a |
Console
Tool | Description |
| Get serial port address for console access |
How MAC randomization works
Apple's Virtualization Framework ignores MacAddress changes written directly to config.plist — UTM caches the config in memory. This server uses AppleScript's update configuration command which properly updates UTM's internal state, giving each clone a unique MAC and therefore a unique IP on the 192.168.64.0/24 subnet.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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