simple-parallels
Click on "Deploy 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: vmware-mcp
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 deployed
Maintenance
Related MCP Connectors
MCP server for Appcircle mobile CI/CD platform.
MCP server for Product Management
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for VMware vSphere infrastructure management, enabling VM operations, monitoring, and network discovery.171MIT
- AlicenseBqualityDmaintenanceMCP server for controlling VMware Fusion/Workstation virtual machines via vmrun CLI, providing 32 tools for VM lifecycle, guest execution, and file operations without requiring a REST API daemon.3210 npm3MIT
- AlicenseBqualityDmaintenanceAn MCP server that enables managing Parallels Desktop virtual machines, including listing, starting, stopping, suspending, and executing commands inside VMs.9MIT
- AlicenseBqualityBmaintenanceA stdio MCP server that controls VMware Workstation via vmrun, enabling VM lifecycle management and snapshot operations.14MIT