VF

VMware Fusion

Created 4 months ago

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

development location documentation public vmware mcp

What is VMware Fusion?

Manage VMware Fusion virtual machines via the Fusion REST API.

Documentation

VMware Fusion MCP Server

Features

  • 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)
  1. 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)

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"
      }
    }
  }
}

Usage# Run the MCP Server\n\n#### With Make

VMREST_USER=your-username VMREST_PASS=your-password make run
```\n\n#### With uvx (recommended for VS Code/LLM)
```bash
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"
          }
        }
      }
    }
    

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
```\n\n### Format Code
```bash
make fmt
```\n\n### Lint
```bash
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

License

MIT License - see LICENSE for details.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests and linting: make test && make lint
  5. Submit a pull request

References

Server Config

{
  "mcpServers": {
    "vmware-fusion-server": {
      "command": "npx",
      "args": [
        "vmware-fusion"
      ]
    }
  }
}

Links & Status

Repository: github.com
Hosted: No
Global: No
Official: No

Project Info

Hosted Featured
Created At: Jul 17, 2025
Updated At: Aug 07, 2025
Author: yeahdongcn
Category: community
License: MIT License
Tags:
development location documentation