list_virtual_machine_metrics
Retrieve virtual machine performance metrics by specifying Zone ID or VM ID to monitor and manage cloud resource utilization in CloudStack environments.
Instructions
List virtual machine performance metrics
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Specific VM ID | |
| zoneid | No | Zone ID to filter VMs |
Input Schema (JSON Schema)
{
"additionalProperties": false,
"properties": {
"id": {
"description": "Specific VM ID",
"type": "string"
},
"zoneid": {
"description": "Zone ID to filter VMs",
"type": "string"
}
},
"type": "object"
}
Implementation Reference
- The handler function that implements the core logic of the 'list_virtual_machine_metrics' tool. It calls the CloudStack client to fetch metrics, processes the response, and formats it into a structured text output for the MCP protocol.async handleListVirtualMachineMetrics(args: any) { const result = await this.cloudStackClient.listVirtualMachineMetrics(args); const metrics = result.listvirtualmachinemetricsresponse?.virtualmachine || []; const metricsList = metrics.map((vm: any) => ({ id: vm.id, name: vm.name, state: vm.state, cpuused: vm.cpuused, networkkbsread: vm.networkkbsread, networkkbswrite: vm.networkkbswrite, diskioread: vm.diskioread, diskiowrite: vm.diskiowrite, disksize: vm.disksize, memory: vm.memory, cpunumber: vm.cpunumber })); return { content: [ { type: 'text', text: `Found ${metricsList.length} virtual machine metrics:\n\n${metricsList .map((vm: any) => `⢠${vm.name} (${vm.id})\n State: ${vm.state}\n CPU Used: ${vm.cpuused}%\n Memory: ${vm.memory}MB\n CPUs: ${vm.cpunumber}\n Disk Size: ${vm.disksize}GB\n Network Read: ${vm.networkkbsread}KB\n Network Write: ${vm.networkkbswrite}KB\n Disk Read: ${vm.diskioread}KB\n Disk Write: ${vm.diskiowrite}KB\n` ) .join('\n')}` } ] }; }
- The tool schema definition including name, description, and input schema validation for the 'list_virtual_machine_metrics' tool.{ name: 'list_virtual_machine_metrics', description: 'List virtual machine performance metrics', inputSchema: { type: 'object', properties: { zoneid: { type: 'string', description: 'Zone ID to filter VMs', }, id: { type: 'string', description: 'Specific VM ID', }, }, additionalProperties: false, }, },
- src/server.ts:130-131 (registration)The registration/dispatch case in the MCP server's tool request handler that routes calls to the 'list_virtual_machine_metrics' tool to its handler method.case 'list_virtual_machine_metrics': return await this.vmHandlers.handleListVirtualMachineMetrics(args);
- src/cloudstack-client.ts:218-220 (helper)Helper method in CloudStack client that performs the actual API request to CloudStack's listVirtualMachineMetrics endpoint.async listVirtualMachineMetrics(params: CloudStackParams = {}): Promise<CloudStackResponse> { return this.request('listVirtualMachineMetrics', params); }