A Model Context Protocol (MCP) server for managing VMware Fusion virtual machines via the Fusion REST API, built with FastMCP.
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:
Start the REST API service:
vmrest
The API will be available at http://localhost:8697
by default.
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.
{
"mcpServers": {
"vmware-fusion": {
"command": "uvx",
"args": ["vmware-fusion-mcp-server"],
"env": {
"VMREST_USER": "your-username",
"VMREST_PASS": "your-password"
}
}
}
}
VMREST_USER
and VMREST_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"
}
}
}
}
VMREST_USER
and VMREST_PASS
to your vmrest credentials.vm_id
(string): The ID of the VMvm_id
(string): The ID of the VMaction
(string): One of: "on", "off", "suspend", "pause", "unpause", "reset"vm_id
(string): The ID of the VMmake 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 testsMIT License - see LICENSE for details.
make test && make lint