Docker · Capability

Docker Engine API — Volume

Docker Engine API — Volume. 6 operations. Lead operation: List volumes. Self-contained Naftiko capability covering one Docker business surface.

Run with Naftiko DockerVolume

What You Can Do

GET
Volumelist — List volumes
/v1/volumes
POST
Volumecreate — Create a volume
/v1/volumes/create
POST
Volumeprune — Delete unused volumes
/v1/volumes/prune
GET
Volumeinspect — Inspect a volume
/v1/volumes/{name}
PUT
Volumeupdate — "Update a volume. Valid only for Swarm cluster volumes"
/v1/volumes/{name}
DELETE
Volumedelete — Remove a volume
/v1/volumes/{name}

MCP Tools

list-volumes

List volumes

read-only idempotent
create-volume

Create a volume

delete-unused-volumes

Delete unused volumes

inspect-volume

Inspect a volume

read-only idempotent
update-volume-valid-only-swarm

"Update a volume. Valid only for Swarm cluster volumes"

idempotent
remove-volume

Remove a volume

idempotent

Capability Spec

docker-volume.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Docker Engine API — Volume
  description: 'Docker Engine API — Volume. 6 operations. Lead operation: List volumes. Self-contained Naftiko capability
    covering one Docker business surface.'
  tags:
  - Docker
  - Volume
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    DOCKER_API_KEY: DOCKER_API_KEY
capability:
  consumes:
  - type: http
    namespace: docker-volume
    baseUri: ''
    description: Docker Engine API — Volume business capability. Self-contained, no shared references.
    resources:
    - name: volumes
      path: /volumes
      operations:
      - name: volumelist
        method: GET
        description: List volumes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: filters
          in: query
          type: string
          description: JSON encoded value of the filters (a `map[string][]string`) to
    - name: volumes-create
      path: /volumes/create
      operations:
      - name: volumecreate
        method: POST
        description: Create a volume
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: volumeConfig
          in: body
          type: string
          description: Volume configuration
          required: true
    - name: volumes-prune
      path: /volumes/prune
      operations:
      - name: volumeprune
        method: POST
        description: Delete unused volumes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: filters
          in: query
          type: string
          description: Filters to process on the prune list, encoded as JSON (a `map[string][]string`).
    - name: volumes-name
      path: /volumes/{name}
      operations:
      - name: volumeinspect
        method: GET
        description: Inspect a volume
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: Volume name or ID
          required: true
      - name: volumeupdate
        method: PUT
        description: '"Update a volume. Valid only for Swarm cluster volumes"'
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: The name or ID of the volume
          required: true
        - name: body
          in: body
          type: object
          description: The spec of the volume to update. Currently, only Availability may
        - name: version
          in: query
          type: integer
          description: The version number of the volume being updated. This is required to
          required: true
      - name: volumedelete
        method: DELETE
        description: Remove a volume
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: Volume name or ID
          required: true
        - name: force
          in: query
          type: boolean
          description: Force the removal of the volume
  exposes:
  - type: rest
    namespace: docker-volume-rest
    port: 8080
    description: REST adapter for Docker Engine API — Volume. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/volumes
      name: volumes
      description: REST surface for volumes.
      operations:
      - method: GET
        name: volumelist
        description: List volumes
        call: docker-volume.volumelist
        with:
          filters: rest.filters
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes/create
      name: volumes-create
      description: REST surface for volumes-create.
      operations:
      - method: POST
        name: volumecreate
        description: Create a volume
        call: docker-volume.volumecreate
        with:
          volumeConfig: rest.volumeConfig
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes/prune
      name: volumes-prune
      description: REST surface for volumes-prune.
      operations:
      - method: POST
        name: volumeprune
        description: Delete unused volumes
        call: docker-volume.volumeprune
        with:
          filters: rest.filters
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/volumes/{name}
      name: volumes-name
      description: REST surface for volumes-name.
      operations:
      - method: GET
        name: volumeinspect
        description: Inspect a volume
        call: docker-volume.volumeinspect
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: volumeupdate
        description: '"Update a volume. Valid only for Swarm cluster volumes"'
        call: docker-volume.volumeupdate
        with:
          name: rest.name
          body: rest.body
          version: rest.version
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: volumedelete
        description: Remove a volume
        call: docker-volume.volumedelete
        with:
          name: rest.name
          force: rest.force
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: docker-volume-mcp
    port: 9090
    transport: http
    description: MCP adapter for Docker Engine API — Volume. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: list-volumes
      description: List volumes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: docker-volume.volumelist
      with:
        filters: tools.filters
      outputParameters:
      - type: object
        mapping: $.
    - name: create-volume
      description: Create a volume
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: docker-volume.volumecreate
      with:
        volumeConfig: tools.volumeConfig
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-unused-volumes
      description: Delete unused volumes
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: docker-volume.volumeprune
      with:
        filters: tools.filters
      outputParameters:
      - type: object
        mapping: $.
    - name: inspect-volume
      description: Inspect a volume
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: docker-volume.volumeinspect
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: update-volume-valid-only-swarm
      description: '"Update a volume. Valid only for Swarm cluster volumes"'
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: docker-volume.volumeupdate
      with:
        name: tools.name
        body: tools.body
        version: tools.version
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-volume
      description: Remove a volume
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: docker-volume.volumedelete
      with:
        name: tools.name
        force: tools.force
      outputParameters:
      - type: object
        mapping: $.