Give Claude, Cursor, and custom AI agents full autonomy over your virtual machines. Control any OS via ultra-fast serial console or vision-enabled noVNC, with zero guest-side configuration for noVNC connection.
Get up and running in minutes
git clone https://github.com/Andreansx/VibeConsole-MCP.git
cd VibeConsole-MCP
npm install
npm run build
cp .env.example .env
# Edit .env with your Proxmox credentials
Enable Proxmox serial console end-to-end for xterm.js access and headless automation.
Configures serial0 (socket) and vga=serial0 on the host. Pass your VMID when running.
curl -fsSL https://raw.githubusercontent.com/Andreansx/VibeConsole-MCP/main/scripts/enable-serial-host.sh | bash -s -- <vmid>
Adds kernel args and starts serial-getty@ttyS0 for xterm.js serial console access inside the guest.
curl -fsSL https://raw.githubusercontent.com/Andreansx/VibeConsole-MCP/main/scripts/enable-serial-guest.sh | bash
sudo reboot
Everything you need to control VMs through AI agents
Seamlessly switch between noVNC for GUI interactions and xterm.js serial console for lightweight, reliable CLI automation.
Extract text with precise bounding boxes. Support for regex searching and grid-cell mapping helps AI "read" the screen in real-time.
Injects coordinate grids into screenshots, allowing LLMs to perform precise clicks based on grid references (e.g., "K9") instead of unstable pixel offsets.
Detect early boot stages (BIOS/GRUB) and wait for specific system states or OS readiness before executing agent tasks.
Full control over VM power states, snapshots, and resource monitoring directly through the MCP protocol, with no guest-side agents required.
Works entirely via Proxmox API and WebSockets. Control any VM, from legacy Windows to minimal Linux, without installing any software on the guest.
Configure for Claude Desktop, Cursor, or any MCP client - prefer the serial console for speed; fall back to noVNC when GUI pixels matter
{
"mcpServers": {
"vibeconsole": {
"command": "node",
"args": ["/path/to/VibeConsole-MCP/dist/index.js"],
"env": {
"PROXMOX_HOST": "pve",
"PROXMOX_PORT": "8006",
"PROXMOX_TOKEN": "vibeconsole@pve!mcp-token",
"PROXMOX_SECRET": "your-token-secret",
"DEFAULT_NODE": "pve",
"DEFAULT_VMID": "108"
}
}
}
}