simple-parallels

simple-parallels

MCP server for managing Parallels Desktop VMs, including lifecycle operations and snapshots.

Category
Visit Server

README

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.json

Edit .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.

Tools

Tool Input Description
open_parallels_desktop Launch Parallels Desktop (foreground)
list_vms List all VMs
list_running_vms List running VMs only
show_vm_info vm Full VM configuration (JSON)
get_vm_status vm Lightweight status by name or UUID
start_vm vm Start a VM (auto-opens Parallels if needed)
stop_vm vm Gracefully stop a VM
force_stop_vm vm Force stop (--kill)
restart_vm vm Restart a VM (auto-opens Parallels if needed)
pause_vm vm Pause in memory
resume_vm vm Resume a suspended VM (auto-opens Parallels if needed)
suspend_vm vm Suspend to disk (saved state)
drop_vm_state vm Drop suspended state (--drop-state)
list_snapshots vm List snapshots for a VM
create_snapshot vm, name, description? Create a snapshot
revert_to_snapshot vm, snapshot_id, skip_resume? Revert to a snapshot
delete_snapshot vm, snapshot_id, include_children? 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
PRLCTL_PATH /usr/local/bin/prlctl Path to prlctl
PARALLELS_APP_NAME Parallels Desktop App name for open -a
OPEN_PATH /usr/bin/open Path to macOS open
PGREP_PATH /usr/bin/pgrep Path to pgrep for process detection
PARALLELS_AUTO_OPEN_ON_VM_START true Set false to disable auto-open on start/resume/restart
PARALLELS_INIT_WAIT_MS 3000 Milliseconds to wait after opening Parallels
PARALLELS_OPEN_IN_BACKGROUND false Set true to use open -g for auto-open (no focus steal)

Out of scope

Guest exec, clone/delete VM, file transfer, arbitrary prlctl commands.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured