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-utmRelated MCP server: Discord Server Setup MCP
Claude 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
- 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