vmm-mcp-server
The vmm-mcp-server provides an MCP interface to the VMM API, enabling management of network topologies, VMs, configurations, YAML/JSON conversion, and leases.
Current state: Only vmm_list_topologies is exposed in the active server schema. The project defines many additional tools (per README):
Topology Management: List, launch, validate, bind/start/stop/unbind VMs, export/import/clone topologies.
Configuration Management: Upload configs, show active config, and manage a library of saved configs (list, get, save, remove).
YAML/JSON Conversion: Parse lab YAML to quickstart spec JSON, render JSON to YAML, and convert existing VMM configs to lab YAML.
Lease Management: Check lease status, schedule earlier unbind, and extend leases.
All operations leverage the vmm-api CLI.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vmm-mcp-serverList all network topologies."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
vmm-mcp-server
An MCP server for VMM, a tool for creating and
managing network topologies. It wraps the vmm-api CLI and exposes its subcommands as
MCP tools so any MCP-compatible client (Claude Code, Claude Desktop, etc.) can drive VMM.
Tools
Tool | VMM CLI command | Description |
|
| List all network topologies known to VMM. |
|
| Configure, bind, and start a topology in one step. |
|
| Upload a topology config without binding/starting it. |
|
| Display the currently active topology config. |
|
| Dry-run capacity check for a config, no deployment. |
|
| Launch VMs' QEMU processes, paused. |
|
| Start paused VMs (binds first if needed). |
|
| Pause QEMU emulation without deleting the process. |
|
| Release VMs (hard teardown, no guest shutdown). |
|
| Print a topology's userdb as JSON. |
|
| Recreate a topology from exported JSON. |
|
| Copy a topology's config into a new topo_id. |
|
| Lab YAML -> normalized quickstart spec JSON. |
|
| Quickstart spec JSON -> clean lab YAML. |
|
| Existing VMM config -> lab YAML. |
|
| List your saved-config library. |
|
| Print one saved config. |
|
| Store a config file into the saved-config library. |
|
| Delete a saved config. |
|
| Show lease expiry and extensions used/remaining. |
|
| Move auto-unbind earlier than the lease expiry. |
|
| Extend a topology's lease by 30 days. |
More tools (e.g. auth) can be added as needed — see Adding a new tool.
Related MCP server: vsphere-mcp
Requirements
Node.js >= 18
The
vmm-apiCLI installed and available onPATH(or pointVMM_API_BINat it)
Install & build
npm install
npm run buildConfiguration
The server reads two optional environment variables:
Variable | Default | Purpose |
|
| Path to the VMM CLI executable. |
|
| Timeout for each |
Running
npm startThe server speaks MCP over stdio, so it's meant to be launched by an MCP client rather
than run standalone. For example, in Claude Code's mcp config:
{
"mcpServers": {
"vmm": {
"command": "node",
"args": ["/absolute/path/to/vmm-mcp-server/dist/index.js"],
"env": {
"VMM_API_BIN": "/usr/local/bin/vmm-api"
}
}
}
}During development you can run it directly from TypeScript without building first:
npm run devAdding a new tool
Each tool is a small, self-contained module:
Create
src/tools/<name>.tsexporting aVmmTool(seesrc/tools/types.ts) that callsrunVmmApi([...])fromsrc/lib/vmmApi.tswith the rightvmm-apiargs.Register it by adding it to the array in
src/tools/index.ts.
No changes to src/index.ts are needed — it registers whatever tools are listed there.
Project layout
src/
index.ts MCP server entry point (stdio transport, tool registration)
lib/
vmmApi.ts Wrapper around spawning the vmm-api CLI
args.ts Helpers for building argv from flags (-x, --require, repeated -r, ...)
tools/
types.ts Shared VmmTool interface + runAsToolResult() helper
schemas.ts Shared zod field definitions (groupId, requires, topoId, vmNames)
listTopologies.ts vmm_list_topologies -> vmm-api ls
launchTopology.ts vmm_launch_topology -> vmm-api launch
uploadConfig.ts vmm_upload_config -> vmm-api config
configPrint.ts vmm_show_active_config -> vmm-api config-print
validateTopology.ts vmm_validate_topology -> vmm-api validate
vmLifecycle.ts vmm_bind_vms/start_vms/stop_vms/unbind_vms -> bind/start/stop/unbind
exportTopology.ts vmm_export_topology -> vmm-api export
importTopology.ts vmm_import_topology -> vmm-api import
cloneTopology.ts vmm_clone_topology -> vmm-api clone
yaml.ts vmm_yaml_parse/render/convert -> vmm-api yaml ...
savedConfigs.ts vmm_*_saved_config(s) -> vmm-api configs ...
lease.ts vmm_lease_status/schedule_unbind/extend_lease -> lease/extend
index.ts Registry of all toolsMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for managing Proxmox VE clusters — provision VMs and containers, manage snapshots and backups, execute commands, browse storage, and monitor resources through natural language3414MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for VMware vSphere/vCenter operations, enabling natural language control of VMs, hosts, and infrastructure.Apache 2.0
- FlicenseNot gradedqualityDmaintenanceMCP server for interacting with NetBox API, enabling users to query and manage NetBox resources such as devices through natural language.
- FlicenseNot gradedqualityCmaintenanceMCP server for the Runn API, enabling resource management and reporting through natural language.
Related MCP Connectors
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
GibsonAI MCP server: manage your databases with natural language
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/urao/vmm-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server