power_off_vm
Hard power off a virtual machine by specifying its display name or managed object reference ID.
Instructions
Hard power off a VM by display name or moref ID (e.g. 'vm-42').
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name_or_id | Yes | ||
| target | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- src/vcenter_mcp/tools/vm_power.py:20-32 (handler)The actual handler function that powers off a VM. It loads config, resolves the target, connects to vCenter, finds the VM by name/ID, calls PowerOff(), and waits for the task to complete.
@mcp.tool() def power_off_vm(name_or_id: str, target: str | None = None) -> str: """Hard power off a VM by display name or moref ID (e.g. 'vm-42').""" try: cfg = load_config() target_cfg = resolve_target(cfg, target) with vcenter_connection(target_cfg) as si: vm = lookup_vm(si, name_or_id) task = vm.PowerOff() wait_for_task(task) return f"VM '{vm.name}' is now powered off" except Exception as e: return f"Error: {e}" - src/vcenter_mcp/tools/vm_power.py:5-21 (registration)The register_power_tools function uses @mcp.tool() decorator to register power_off_vm as an MCP tool.
def register_power_tools(mcp) -> None: @mcp.tool() def power_on_vm(name_or_id: str, target: str | None = None) -> str: """Power on a VM by display name or moref ID (e.g. 'vm-42').""" try: cfg = load_config() target_cfg = resolve_target(cfg, target) with vcenter_connection(target_cfg) as si: vm = lookup_vm(si, name_or_id) task = vm.PowerOn() wait_for_task(task) return f"VM '{vm.name}' is now powered on" except Exception as e: return f"Error: {e}" @mcp.tool() def power_off_vm(name_or_id: str, target: str | None = None) -> str: - src/vcenter_mcp/server.py:15-21 (registration)Imports register_power_tools from vm_power module and calls it on line 20 to register the tool.
from vcenter_mcp.tools.vm_power import register_power_tools from vcenter_mcp.tools.vm_delete import register_delete_tools register_list_tools(mcp) register_create_tools(mcp) register_power_tools(mcp) register_delete_tools(mcp) - src/vcenter_mcp/client.py:47-51 (helper)lookup_vm helper used by power_off_vm to find a VM by display name or moref ID.
def lookup_vm(si, name_or_id: str): """ Find a VM by moref ID (e.g. 'vm-42') or display name. Raises ValueError if not found or if multiple VMs share the same display name. """ - src/vcenter_mcp/client.py:75-77 (helper)wait_for_task helper waits for the PowerOff vSphere task to complete.
def wait_for_task(task) -> None: """Wait for a vSphere task to complete. Raises on task error.""" WaitForTask(task)