VMware · Capability

VMware vSphere Automation REST API — VMs

VMware vSphere Automation REST API — VMs. 4 operations. Lead operation: Vmware List Virtual Machines. Self-contained Naftiko capability covering one Vmware business surface.

Run with Naftiko VmwareVMs

What You Can Do

GET
Listvms — Vmware List Virtual Machines
/v1/vcenter/vm
POST
Createvm — Vmware Create a New Virtual Machine
/v1/vcenter/vm
GET
Getvm — Vmware Get Virtual Machine Details
/v1/vcenter/vm/{vm}
DELETE
Deletevm — Vmware Delete a Virtual Machine
/v1/vcenter/vm/{vm}

MCP Tools

vmware-list-virtual-machines

Vmware List Virtual Machines

read-only idempotent
vmware-create-new-virtual-machine

Vmware Create a New Virtual Machine

vmware-get-virtual-machine-details

Vmware Get Virtual Machine Details

read-only idempotent
vmware-delete-virtual-machine

Vmware Delete a Virtual Machine

idempotent

Capability Spec

vsphere-vms.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: VMware vSphere Automation REST API — VMs
  description: 'VMware vSphere Automation REST API — VMs. 4 operations. Lead operation: Vmware List Virtual Machines. Self-contained
    Naftiko capability covering one Vmware business surface.'
  tags:
  - Vmware
  - VMs
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    VMWARE_API_KEY: VMWARE_API_KEY
capability:
  consumes:
  - type: http
    namespace: vsphere-vms
    baseUri: https://{vcenter}/api
    description: VMware vSphere Automation REST API — VMs business capability. Self-contained, no shared references.
    resources:
    - name: vcenter-vm
      path: /vcenter/vm
      operations:
      - name: listvms
        method: GET
        description: Vmware List Virtual Machines
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: filter.vms
          in: query
          type: array
          description: Identifiers of VMs to filter by
        - name: filter.names
          in: query
          type: array
          description: Names of VMs to filter by (exact match)
        - name: filter.folders
          in: query
          type: array
          description: Folders that must contain the VMs
        - name: filter.datacenters
          in: query
          type: array
          description: Datacenters that must contain the VMs
        - name: filter.hosts
          in: query
          type: array
          description: Hosts that must contain the VMs
        - name: filter.clusters
          in: query
          type: array
          description: Clusters that must contain the VMs
        - name: filter.resource_pools
          in: query
          type: array
          description: Resource pools that must contain the VMs
        - name: filter.power_states
          in: query
          type: array
          description: Power states to filter by
      - name: createvm
        method: POST
        description: Vmware Create a New Virtual Machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: vcenter-vm-vm
      path: /vcenter/vm/{vm}
      operations:
      - name: getvm
        method: GET
        description: Vmware Get Virtual Machine Details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletevm
        method: DELETE
        description: Vmware Delete a Virtual Machine
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: apikey
      key: vmware-api-session-id
      value: '{{env.VMWARE_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: vsphere-vms-rest
    port: 8080
    description: REST adapter for VMware vSphere Automation REST API — VMs. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/vcenter/vm
      name: vcenter-vm
      description: REST surface for vcenter-vm.
      operations:
      - method: GET
        name: listvms
        description: Vmware List Virtual Machines
        call: vsphere-vms.listvms
        with:
          filter.vms: rest.filter.vms
          filter.names: rest.filter.names
          filter.folders: rest.filter.folders
          filter.datacenters: rest.filter.datacenters
          filter.hosts: rest.filter.hosts
          filter.clusters: rest.filter.clusters
          filter.resource_pools: rest.filter.resource_pools
          filter.power_states: rest.filter.power_states
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createvm
        description: Vmware Create a New Virtual Machine
        call: vsphere-vms.createvm
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vcenter/vm/{vm}
      name: vcenter-vm-vm
      description: REST surface for vcenter-vm-vm.
      operations:
      - method: GET
        name: getvm
        description: Vmware Get Virtual Machine Details
        call: vsphere-vms.getvm
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletevm
        description: Vmware Delete a Virtual Machine
        call: vsphere-vms.deletevm
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: vsphere-vms-mcp
    port: 9090
    transport: http
    description: MCP adapter for VMware vSphere Automation REST API — VMs. One tool per consumed operation, routed inline
      through this capability's consumes block.
    tools:
    - name: vmware-list-virtual-machines
      description: Vmware List Virtual Machines
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: vsphere-vms.listvms
      with:
        filter.vms: tools.filter.vms
        filter.names: tools.filter.names
        filter.folders: tools.filter.folders
        filter.datacenters: tools.filter.datacenters
        filter.hosts: tools.filter.hosts
        filter.clusters: tools.filter.clusters
        filter.resource_pools: tools.filter.resource_pools
        filter.power_states: tools.filter.power_states
      outputParameters:
      - type: object
        mapping: $.
    - name: vmware-create-new-virtual-machine
      description: Vmware Create a New Virtual Machine
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: vsphere-vms.createvm
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: vmware-get-virtual-machine-details
      description: Vmware Get Virtual Machine Details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: vsphere-vms.getvm
      outputParameters:
      - type: object
        mapping: $.
    - name: vmware-delete-virtual-machine
      description: Vmware Delete a Virtual Machine
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: vsphere-vms.deletevm
      outputParameters:
      - type: object
        mapping: $.