simple-parallels
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., "@simple-parallelsstart the Windows 11 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.
simple-parallels
MCP server for Parallels Desktop VM lifecycle and snapshots. Seventeen tools use fixed execFile commands (no shell, no arbitrary CLI).
Requirements: macOS, Parallels Desktop installed, prlctl (default /usr/local/bin/prlctl), Node.js 20+. start_vm, resume_vm, and restart_vm open Parallels in the background if it is not running.
Setup
npm install
npm run build
cp .cursor/mcp.json.example .cursor/mcp.jsonEdit .cursor/mcp.json and replace /path/to/simple-parallels with your clone path. From the repo root:
# Clone root (paste into args, before /dist/index.js)
echo "$(pwd)/dist/index.js" | sed 's|/dist/index.js||'
# Or the full path to dist/index.js directly
echo "$(pwd)/dist/index.js"{
"mcpServers": {
"simple-parallels": {
"command": "node",
"args": ["/path/to/simple-parallels/dist/index.js"],
"env": {
"PRLCTL_PATH": "/usr/local/bin/prlctl"
}
}
}
}Reload simple-parallels in Cursor Settings → MCP.
.cursor/mcp.json is gitignored; .cursor/mcp.json.example matches the config above.
Related MCP server: vsphere-mcp-server
Tools
Tool | Input | Description |
| — | Launch Parallels Desktop (foreground) |
| — | List all VMs |
| — | List running VMs only |
|
| Full VM configuration (JSON) |
|
| Lightweight status by name or UUID |
|
| Start a VM (auto-opens Parallels if needed) |
|
| Gracefully stop a VM |
|
| Force stop ( |
|
| Restart a VM (auto-opens Parallels if needed) |
|
| Pause in memory |
|
| Resume a suspended VM (auto-opens Parallels if needed) |
|
| Suspend to disk (saved state) |
|
| Drop suspended state ( |
|
| List snapshots for a VM |
|
| Create a snapshot |
|
| Revert to a snapshot |
|
| Delete a snapshot |
vm accepts a display name (e.g. Ubuntu 24.04 ARM64) or UUID (with or without {...}). Run list_vms for exact names. For snapshots, run list_snapshots first to get snapshot IDs.
Pause vs suspend: pause_vm pauses in memory; suspend_vm saves state to disk.
Auto-open: start_vm, resume_vm, and restart_vm check for the Parallels GUI (prl_client_app, not background services only). If the GUI is not running, they run open -a and wait before prlctl. Set PARALLELS_OPEN_IN_BACKGROUND=true to use open -g instead.
Configuration
Variable | Default | Description |
|
| Path to |
|
| App name for |
|
| Path to macOS |
|
| Path to |
|
| Set |
|
| Milliseconds to wait after opening Parallels |
|
| Set |
Out of scope
Guest exec, clone/delete VM, file transfer, arbitrary prlctl commands.
This server cannot be installed
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/atahan99/simple-parallels'
If you have feedback or need assistance with the MCP directory API, please join our Discord server