vsphere-console-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VSPHERE_USER | No | The vCenter account username | |
| VSPHERE_SERVER | No | vCenter address, e.g. https://vcenter.example.com (a port may follow; IPv6 in brackets) | |
| VSPHERE_CA_FILE | No | CA bundle for vCenter's certificate (e.g. your VMCA root certificate). Defaults to system CAs | |
| VSPHERE_TIMEOUT | No | Seconds per request | 20 |
| VSPHERE_INSECURE | No | Set to 1 to skip verification of vCenter's certificate. For labs only | 0 |
| VSPHERE_KEYBOARD | No | Default guest keyboard layout: us or jis (the caller can override per call) | us |
| VSPHERE_LOCK_DIR | No | Directory where the login-failure lock state is kept | ~/.cache/vsphere-console-mcp |
| VSPHERE_PASSWORD | No | The vSphere account password. Prefer the credentials file to putting the password in client config | |
| VSPHERE_VM_ALLOW | No | Comma-separated VM name patterns (e.g. lab-*,web-0?) that the account may use; other VMs are hidden and refused. Defaults to all | |
| VSPHERE_AUDIT_LOG | No | File to append a JSON line per call to (- = stderr). Defaults to off | |
| VSPHERE_READ_ONLY | No | Set to 1 to offer only the vms and look actions; input actions are not advertised to the client | 0 |
| VSPHERE_LOCKOUT_MINUTES | No | After vCenter rejects the password, do not try again for this many minutes (0 = never pause) | 15 |
| VSPHERE_CREDENTIALS_FILE | No | Path to a KEY=VALUE file containing the vCenter connection settings |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| vmA | Operate the screen of a VMware vSphere virtual machine through vCenter, the same way its console window does: look takes a picture of the VM's screen, click/move/drag/scroll use its mouse, type/key use its keyboard. Nothing is installed in the VM, so it also works at sign-in and lock screens, BIOS, installers, and when the VM's own network is down. This may be a real machine that people are using: look before acting, and click or type only what the user asked for. Name the VM in every call (vm=...); action='vms' lists them. There is no way to power on/off, reset or reconfigure a VM with this tool. Do not restart, shut down or sign out of a VM from its screen unless the user asked for exactly that. Actions:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 1 tool
With a single tool, the real disambiguation burden falls on the action enum, and those actions are well-differentiated: look, click, move, drag, scroll, type and key each map to a distinct console input or observation. Minor overlap exists between move and click (a click inherently moves the pointer) and between type and key, but the descriptions make the intended use of each clear.
Action names are uniformly short lowercase words (vms, look, click, move, drag, scroll, type, key), plus a consistent then_look modifier. The lone tool name 'vm' is a bare noun rather than a verb_noun form, and 'vms'/'look' mix noun and verb styles slightly, but with one tool there is no convention clash to speak of.
Everything lives behind one multiplexed 'vm' tool, which is thin for a surface this broad — an agent must read a long action list and cannot discover capabilities from tool names alone. The multiplexing is a defensible way to avoid power-operation confusion, but 1 tool for the whole vSphere console domain sits at the borderline end of the scale.
The console-interaction domain is well covered: VM enumeration with power/IP metadata, screen capture with scaling, full mouse (click/move/drag/scroll), and keyboard (type/key) input, all with then_look feedback. Gaps are minor and explicitly scoped out (no power on/off or reconfiguration), though clipboard/file transfer and waiting-for-screen-change helpers are absent.