Parallels Pro MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PARALLELS_DEFAULT_VM | No | Fallback VM name or UUID used when a tool argument is omitted. | |
| PARALLELS_ARTIFACT_DIR | No | Host directory where captured screenshots and artifacts are stored. | ~/.cache/parallels-pro-mcp-server |
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 |
|---|---|
| vm_listA | List every registered Parallels VM with its current power state. |
| vm_statusA | Return bounded status details for a VM name or UUID. |
| vm_startA | Start a registered VM by name or UUID. |
| vm_stopB | Request an ACPI shutdown; this never uses Parallels force-kill. |
| vm_suspendA | Suspend a VM, preserving its current guest memory state. |
| vm_wait_readyB | Poll the guest OS until Parallels Tools and execution answering. |
| vm_execA | Execute an explicit argv vector inside the guest. Args: vm: The VM name or UUID. command: Argument vector, e.g. ["whoami"] or ["ls", "-la"]. user: Optional guest username. If omitted, uses the current desktop user on Windows. timeout_s: Execution timeout in seconds (default: 300s). |
| vm_screenshotA | Capture a screenshot of the VM's current screen buffer. Args: vm: The VM name or UUID. output_path: Optional host path where the PNG will be saved. If omitted, saved to the default artifact directory. |
| vm_send_keysA | Send synthetic keystrokes or hotkey combinations to a running VM. Supports:
Args: vm: The VM name or UUID. keys: Key name, chord string (e.g. "ctrl+alt+del"), or list of keys to send in order. delay_ms: Delay in milliseconds between key events (default: 50ms). |
| vm_copy_to_guestA | Stream a file or entire directory from the host into a guest path. Works across Windows, Linux, and macOS guests using direct stream execution. Creates parent directories in the guest if they do not exist. Args: vm: The VM name or UUID. host_path: Path on the host filesystem (file or directory). guest_path: Destination path inside the guest (e.g. "C:\temp\file.txt" or "/tmp/dir"). user: Optional guest user to run file extraction as. timeout_s: Transfer timeout in seconds (default: 300s). |
| vm_copy_from_guestA | Stream a file or directory from a guest path back to the host filesystem. Extracts test reports, build artifacts, logs, or files produced inside the VM. Args: vm: The VM name or UUID. guest_path: Path to the file or directory inside the guest. host_path: Destination path on the host where file/folder will be written. user: Optional guest user to read files as. timeout_s: Transfer timeout in seconds (default: 300s). |
| vm_share_folderA | Mount a host directory into the guest as a Parallels Shared Folder. Args: vm: The VM name or UUID. name: Name of the share (e.g. "project_workspace"). host_path: Host directory to mount. mode: Sharing mode: "ro" (read-only) or "rw" (read-write). Default is "rw". description: Optional notes describing the shared folder. |
| vm_unshare_folderA | Unmount and remove a previously shared folder from the VM. Args: vm: The VM name or UUID. name: Name of the share to delete. |
| snapshot_listA | List snapshots for a VM without changing state. |
| snapshot_createB | Create a snapshot of the current VM state after explicit confirmation. |
| snapshot_revertB | Revert guest state to a snapshot after explicit confirmation. |
| snapshot_deleteA | Permanently delete a snapshot to free host disk space. Args: vm: The VM name or UUID. snapshot: Snapshot name or UUID to delete. delete_children: If true, also delete child snapshots descended from this one. confirm: Must be explicitly set to true. |
| vm_cloneA | Clone an existing VM to quickly spin up sandboxes or disposable test environments. Args: vm: The source VM name or UUID to clone. name: Name for the newly created clone. linked: If true (default), creates a fast linked clone sharing the base disk. If false, creates a full independent deep clone. dst: Optional custom destination path for the cloned VM. |
| vm_deleteA | Permanently delete a VM and all its associated disk images from host storage. Args: vm: The VM name or UUID to delete. confirm: Must be explicitly set to true to prevent accidental VM deletion. |
| vm_set_headlessA | Configure whether the VM runs headlessly in the background or displays a GUI window. Args: vm: The VM name or UUID. enabled: If true (default), sets startup-view to headless. If false, sets startup-view to window. |
| vm_set_network_conditionA | Simulate degraded network conditions or offline state for the VM. Args: vm: The VM name or UUID. profile: Network profile name ('off', 'edge', 'dsl', '3g', '100-percent-loss', 'very-bad-net', 'wifi'). Use 'off' to disable simulation and restore normal network conditions. |
| vm_doctorA | Run diagnostic pre-flight checks on host macOS and Parallels setup, with optional guest inspection. Args: vm: Optional VM name or UUID. If specified, checks guest OS, runtimes, and environment. |
| vm_optimize_windowsA | Optimize a Windows guest VM for automated tasks, testing, and script execution. Configures Windows Defender real-time scanning exclusions (preventing EPERM/EBUSY file locks) and sets PowerShell ExecutionPolicy to Bypass. Args: vm: The Windows VM name or UUID. exclusion_paths: Optional directory paths to exclude from Defender scanning. exclusion_processes: Optional process binary names to exclude (defaults to node.exe, npm.cmd, pnpm.cmd, git.exe, python.exe). |
| vm_changelogA | Read the release notes, new features, and bug fixes for parallels-pro-mcp-server. Args: latest_only: If true, returns only the latest release section. If false, returns the complete changelog. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| changelog | The complete changelog, recent updates, bug fixes, and release history for parallels-pro-mcp-server. |
TDQS
Scored across 24 tools
Tools are largely distinct — lifecycle, snapshot, file-transfer, and input tools each target a specific action. vm_list and vm_status both surface VM information (all vs. one), and vm_doctor vs. vm_optimize_windows both occupy 'maintenance' territory, creating minor selection ambiguity, but descriptions are clear enough to prevent real misselection.
The dominant pattern is object_verb snake_case (vm_start, vm_stop, snapshot_create), which is predictable within each namespace. However, snapshot operations use a snapshot_* prefix instead of the expected vm_snapshot_* style, and vm_changelog is a meta-tool about the server itself that breaks the VM-domain naming entirely.
At 24 tools, the set is on the heavy side, falling in the 16-25 borderline band. Most tools earn their place in a full VM management suite, but vm_changelog is a self-referential filler that doesn't belong, pushing an already large surface slightly beyond its scope.
The surface covers the full VM lifecycle (list/start/stop/suspend/delete/clone), complete snapshot CRUD, bidirectional file transfer, shared folder management, guest execution/input, and key configuration. Obvious gaps — no create-VM-from-installer, no restart/reboot, no rename or resource controls — are workaroundable (stop+start) but will force agents to improvise.