MCP Connector

Control VMware Fusion VMs via REST API

An MCP server for managing VMware Fusion VMs - list, inspect, and power-control them via Fusion's REST API.

Works with vmware fusion

90
Spark score
out of 100
Updated Jul 2025
Version 1.0.0
Models
universal

Add to Favorites

Why it matters

Automate management of VMware Fusion virtual machines. This asset provides an MCP server to interact with the Fusion REST API for VM listing, information retrieval, and power operations.

Outcomes

What it gets done

01

List all virtual machines in VMware Fusion.

02

Retrieve detailed information about specific VMs.

03

Perform power operations (on, off, suspend, reboot) on VMs.

04

Integrate with LLMs and agent frameworks for automated VM control.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-vmware-fusion | bash

Capabilities

Tools your agent gets

list_vms

List all VMs in VMware Fusion

get_vm_info

Get detailed information about a specific VM

power_vm

Perform VM power operations (power on, power off, suspend, pause, unpause, reboot)

get_vm_power_state

Get the power state of a specific VM

Overview

VMware Fusion MCP Server

This MCP server exposes four tools for VMware Fusion: listing VMs, getting VM details, controlling power state (on/off/suspend/pause/unpause/reset), and querying power state, via Fusion's local REST API. Use it when an AI assistant needs to list, inspect, or power-manage local VMware Fusion VMs. Requires VMware Fusion Pro with the REST API enabled and running.

What it does

An MCP server, built with FastMCP, for managing VMware Fusion virtual machines through Fusion's own REST API (vmrest). It exposes four tools: list_vms lists every VM registered in VMware Fusion with no parameters required; get_vm_info retrieves detailed information about a specific VM by vm_id; power_vm performs a power action - on, off, suspend, pause, unpause, or reset - on a VM given its vm_id and the desired action; and get_vm_power_state queries a specific VM's current power state. This lets an AI assistant or agent framework start, stop, inspect, and enumerate local VMware Fusion VMs conversationally instead of through the Fusion GUI. The server is split into two modules: server.py holds the FastMCP server implementation and tool definitions, while vmware_client.py wraps the vmrest REST API calls.

When to use - and when NOT to

Use it when an AI assistant needs to list, inspect, or power-manage VMware Fusion VMs on the local machine - for example, listing running VMs before a task, or resetting a hung VM. It requires VMware Fusion Pro with the REST API explicitly enabled (Preferences > Advanced > "Enable REST API"), the vmrest service running locally (default port 8697), and Python 3.10 or higher. It is not useful without VMware Fusion Pro installed and its REST API turned on and running.

Capabilities

Tool signatures at a glance: list_vms() takes no parameters; get_vm_info(vm_id) and get_vm_power_state(vm_id) each take only a VM ID string; power_vm(vm_id, action) additionally takes an action string constrained to one of "on", "off", "suspend", "pause", "unpause", or "reset".

How to install

git clone https://github.com/yeahdongcn/vmware-fusion-mcp-server.git
cd vmware-fusion-mcp-server
make env

Start VMware Fusion's REST API with vmrest (available by default at http://localhost:8697 once enabled in Preferences), then run the server with VMREST_USER=your-username VMREST_PASS=your-password make run, or via uvx for VS Code/LLM integration: VMREST_USER=your-username VMREST_PASS=your-password uvx vmware-fusion-mcp-server. A VS Code MCP config example:

{
  "mcpServers": {
    "vmware-fusion": {
      "command": "uvx",
      "args": ["vmware-fusion-mcp-server"],
      "env": { "VMREST_USER": "your-username", "VMREST_PASS": "your-password" }
    }
  }
}

VMREST_USER and VMREST_PASS are required environment variables whenever vmrest authentication is enabled. The project ships make targets for running tests, formatting, and linting (make test, make fmt, make lint), and its own test suite lives under a dedicated tests/ directory alongside the two source modules.

Who it's for

Developers and power users running VMware Fusion Pro locally who want to list, inspect, and control their VMs' power state through an AI assistant or agent framework instead of switching to the Fusion GUI - available on PyPI and distributed under the MIT License, with a standard fork-branch-PR contribution workflow for anyone extending it.

Source README

VMware Fusion MCP Server

agentman

PyPI version Python versions GitHub Issues Pepy Total Downloads License


A Model Context Protocol (MCP) server for managing VMware Fusion virtual machines via the Fusion REST API, built with FastMCP.

Repobeats analytics image


Features

Demo

  • List VMs: View all VMs registered in VMware Fusion.
  • Get VM Info: Retrieve detailed information about a specific VM.
  • Power Operations: Perform power actions (on, off, suspend, pause, unpause, reset) on a VM.
  • Get Power State: Query the current power state of a VM.
  • Modern MCP/LLM Integration: Exposes all features as MCP tools for LLMs and agent frameworks.

Prerequisites

  • VMware Fusion Pro (with REST API enabled)
  • Python 3.10+
  • uv (recommended) or pip
  • uvx (for VS Code/LLM integration)

Installation

  1. Clone the repository:

    git clone https://github.com/yeahdongcn/vmware-fusion-mcp-server.git
    cd vmware-fusion-mcp-server
    
  2. Set up the environment and install dependencies:

    make env
    

VMware Fusion Setup

  1. Enable the REST API:

    • Open VMware Fusion > Preferences > Advanced
    • Check "Enable REST API"
    • Note the API port (default: 8697)
  2. Start the REST API service:

    vmrest
    

    The API will be available at http://localhost:8697 by default.


Configuration

The server connects to VMware Fusion's REST API at http://localhost:8697 by default. You must configure authentication for the vmrest API using environment variables:

  • VMREST_USER: Username for the vmrest API (required if authentication is enabled)
  • VMREST_PASS: Password for the vmrest API (required if authentication is enabled)

These must be set in your shell, in your VS Code MCP config, or in your deployment environment.

Example: MCP server config for VS Code with credentials

{
  "mcpServers": {
    "vmware-fusion": {
      "command": "uvx",
      "args": ["vmware-fusion-mcp-server"],
      "env": {
        "VMREST_USER": "your-username",
        "VMREST_PASS": "your-password"
      }
    }
  }
}
  • Set VMREST_USER and VMREST_PASS to your vmrest credentials.

Usage

Run the MCP Server

With Make
VMREST_USER=your-username VMREST_PASS=your-password make run
With uvx (recommended for VS Code/LLM)
VMREST_USER=your-username VMREST_PASS=your-password uvx vmware-fusion-mcp-server

VS Code / LLM Integration

To use this server as a tool provider in VS Code (or any MCP-compatible client):

  1. Install uvx:

    uv pip install uvx
    
  2. Add to your MCP server config (e.g., .vscode/mcp.json):

    {
      "mcpServers": {
        "vmware-fusion": {
          "command": "uvx",
          "args": ["vmware-fusion-mcp-server"],
          "env": {
            "VMREST_USER": "your-username",
            "VMREST_PASS": "your-password"
          }
        }
      }
    }
    
    • Set VMREST_USER and VMREST_PASS to your vmrest credentials.
    • You can now use the VMware Fusion tools in any MCP-enabled LLM or agent in VS Code.

MCP Tools

list_vms

  • Description: List all VMs in VMware Fusion.
  • Parameters: None

get_vm_info

  • Description: Get detailed information about a specific VM.
  • Parameters:
    • vm_id (string): The ID of the VM

power_vm

  • Description: Perform a power action on a VM.
  • Parameters:
    • vm_id (string): The ID of the VM
    • action (string): One of: "on", "off", "suspend", "pause", "unpause", "reset"

get_vm_power_state

  • Description: Get the power state of a specific VM.
  • Parameters:
    • vm_id (string): The ID of the VM

Development

Run Tests

make test

Format Code

make fmt

Lint

make lint

Project Structure

  • vmware_fusion_mcp/server.py - Main FastMCP server implementation
  • vmware_fusion_mcp/vmware_client.py - VMware Fusion REST API client
  • tests/ - Unit and integration tests

References

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.