A Model Context Protocol (MCP) server for managing VMware Fusion virtual machines via the Fusion REST API, built with FastMCP.
- 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.
- VMware Fusion Pro (with REST API enabled)
- Python 3.10+
- uv (recommended) or pip
- uvx (for VS Code/LLM integration)
-
Clone the repository:
git clone https://github.com/yeahdongcn/vmware-fusion-mcp-server.git cd vmware-fusion-mcp-server
-
Set up the environment and install dependencies:
make env
-
Enable the REST API:
- Open VMware Fusion > Preferences > Advanced
- Check "Enable REST API"
- Note the API port (default: 8697)
-
Start the REST API service:
vmrest
The API will be available at
https://localhost:8697
by default.
The server connects to VMware Fusion's REST API at https://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.
{
"mcpServers": {
"vmware-fusion": {
"command": "uvx",
"args": ["vmware-fusion-mcp-server"],
"env": {
"VMREST_USER": "your-username",
"VMREST_PASS": "your-password"
}
}
}
}
- Set
VMREST_USER
andVMREST_PASS
to your vmrest credentials.
VMREST_USER=your-username VMREST_PASS=your-password make run
VMREST_USER=your-username VMREST_PASS=your-password uvx vmware-fusion-mcp-server
To use this server as a tool provider in VS Code (or any MCP-compatible client):
-
Install uvx:
uv pip install uvx
-
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
andVMREST_PASS
to your vmrest credentials. - You can now use the VMware Fusion tools in any MCP-enabled LLM or agent in VS Code.
- Set
- Description: List all VMs in VMware Fusion.
- Parameters: None
- Description: Get detailed information about a specific VM.
- Parameters:
vm_id
(string): The ID of the VM
- Description: Perform a power action on a VM.
- Parameters:
vm_id
(string): The ID of the VMaction
(string): One of: "on", "off", "suspend", "pause", "unpause", "reset"
- Description: Get the power state of a specific VM.
- Parameters:
vm_id
(string): The ID of the VM
make test
make fmt
make lint
vmware_fusion_mcp/server.py
- Main FastMCP server implementationvmware_fusion_mcp/vmware_client.py
- VMware Fusion REST API clienttests/
- Unit and integration tests
MIT License - see LICENSE for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting:
make test && make lint
- Submit a pull request