Podman · Capability

supports a RESTful API for the Libpod library — volumes

supports a RESTful API for the Libpod library — volumes. 8 operations. Lead operation: Create a volume. Self-contained Naftiko capability covering one Podman business surface.

Run with Naftiko Podmanvolumes

What You Can Do

POST
Volumecreatelibpod — Create a volume
/v1/libpod/volumes/create
GET
Volumelistlibpod — List volumes
/v1/libpod/volumes/json
POST
Volumeprunelibpod — Prune volumes
/v1/libpod/volumes/prune
DELETE
Volumedeletelibpod — Remove volume
/v1/libpod/volumes/{name}
GET
Volumeexistslibpod — Volume exists
/v1/libpod/volumes/{name}/exists
GET
Volumeexportlibpod — Export a volume
/v1/libpod/volumes/{name}/export
POST
Volumeimportlibpod — Populate a volume by importing provided tar
/v1/libpod/volumes/{name}/import
GET
Volumeinspectlibpod — Inspect volume
/v1/libpod/volumes/{name}/json

MCP Tools

create-volume

Create a volume

list-volumes

List volumes

read-only idempotent
prune-volumes

Prune volumes

remove-volume

Remove volume

idempotent
volume-exists

Volume exists

read-only idempotent
export-volume

Export a volume

read-only idempotent
populate-volume-importing-provided-tar

Populate a volume by importing provided tar

inspect-volume

Inspect volume

read-only idempotent

Capability Spec

podman-volumes.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: supports a RESTful API for the Libpod library — volumes
  description: 'supports a RESTful API for the Libpod library — volumes. 8 operations. Lead operation: Create a volume. Self-contained
    Naftiko capability covering one Podman business surface.'
  tags:
  - Podman
  - volumes
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    PODMAN_API_KEY: PODMAN_API_KEY
capability:
  consumes:
  - type: http
    namespace: podman-volumes
    baseUri: http://podman.io
    description: supports a RESTful API for the Libpod library — volumes business capability. Self-contained, no shared references.
    resources:
    - name: libpod-volumes-create
      path: /libpod/volumes/create
      operations:
      - name: volumecreatelibpod
        method: POST
        description: Create a volume
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: create
          in: body
          type: string
          description: attributes for creating a volume
    - name: libpod-volumes-json
      path: /libpod/volumes/json
      operations:
      - name: volumelistlibpod
        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 process on the volumes list. Available
            filters:'
    - name: libpod-volumes-prune
      path: /libpod/volumes/prune
      operations:
      - name: volumeprunelibpod
        method: POST
        description: Prune volumes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: filters
          in: query
          type: string
          description: JSON encoded value of filters (a map[string][]string) to match volumes against before pruning.
    - name: libpod-volumes-name
      path: /libpod/volumes/{name}
      operations:
      - name: volumedeletelibpod
        method: DELETE
        description: Remove volume
        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: force
          in: query
          type: boolean
          description: force removal
        - name: timeout
          in: query
          type: integer
          description: timeout before forcibly killing any containers using the volume
    - name: libpod-volumes-name-exists
      path: /libpod/volumes/{name}/exists
      operations:
      - name: volumeexistslibpod
        method: GET
        description: Volume exists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: the name of the volume
          required: true
    - name: libpod-volumes-name-export
      path: /libpod/volumes/{name}/export
      operations:
      - name: volumeexportlibpod
        method: GET
        description: Export a volume
        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: libpod-volumes-name-import
      path: /libpod/volumes/{name}/import
      operations:
      - name: volumeimportlibpod
        method: POST
        description: Populate a volume by importing provided tar
        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: inputStream
          in: body
          type: string
          description: An uncompressed tar archive
    - name: libpod-volumes-name-json
      path: /libpod/volumes/{name}/json
      operations:
      - name: volumeinspectlibpod
        method: GET
        description: Inspect volume
        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
  exposes:
  - type: rest
    namespace: podman-volumes-rest
    port: 8080
    description: REST adapter for supports a RESTful API for the Libpod library — volumes. One Spectral-compliant resource
      per consumed operation, prefixed with /v1.
    resources:
    - path: /v1/libpod/volumes/create
      name: libpod-volumes-create
      description: REST surface for libpod-volumes-create.
      operations:
      - method: POST
        name: volumecreatelibpod
        description: Create a volume
        call: podman-volumes.volumecreatelibpod
        with:
          create: rest.create
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/libpod/volumes/json
      name: libpod-volumes-json
      description: REST surface for libpod-volumes-json.
      operations:
      - method: GET
        name: volumelistlibpod
        description: List volumes
        call: podman-volumes.volumelistlibpod
        with:
          filters: rest.filters
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/libpod/volumes/prune
      name: libpod-volumes-prune
      description: REST surface for libpod-volumes-prune.
      operations:
      - method: POST
        name: volumeprunelibpod
        description: Prune volumes
        call: podman-volumes.volumeprunelibpod
        with:
          filters: rest.filters
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/libpod/volumes/{name}
      name: libpod-volumes-name
      description: REST surface for libpod-volumes-name.
      operations:
      - method: DELETE
        name: volumedeletelibpod
        description: Remove volume
        call: podman-volumes.volumedeletelibpod
        with:
          name: rest.name
          force: rest.force
          timeout: rest.timeout
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/libpod/volumes/{name}/exists
      name: libpod-volumes-name-exists
      description: REST surface for libpod-volumes-name-exists.
      operations:
      - method: GET
        name: volumeexistslibpod
        description: Volume exists
        call: podman-volumes.volumeexistslibpod
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/libpod/volumes/{name}/export
      name: libpod-volumes-name-export
      description: REST surface for libpod-volumes-name-export.
      operations:
      - method: GET
        name: volumeexportlibpod
        description: Export a volume
        call: podman-volumes.volumeexportlibpod
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/libpod/volumes/{name}/import
      name: libpod-volumes-name-import
      description: REST surface for libpod-volumes-name-import.
      operations:
      - method: POST
        name: volumeimportlibpod
        description: Populate a volume by importing provided tar
        call: podman-volumes.volumeimportlibpod
        with:
          name: rest.name
          inputStream: rest.inputStream
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/libpod/volumes/{name}/json
      name: libpod-volumes-name-json
      description: REST surface for libpod-volumes-name-json.
      operations:
      - method: GET
        name: volumeinspectlibpod
        description: Inspect volume
        call: podman-volumes.volumeinspectlibpod
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: podman-volumes-mcp
    port: 9090
    transport: http
    description: MCP adapter for supports a RESTful API for the Libpod library — volumes. One tool per consumed operation,
      routed inline through this capability's consumes block.
    tools:
    - name: create-volume
      description: Create a volume
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: podman-volumes.volumecreatelibpod
      with:
        create: tools.create
      outputParameters:
      - type: object
        mapping: $.
    - name: list-volumes
      description: List volumes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: podman-volumes.volumelistlibpod
      with:
        filters: tools.filters
      outputParameters:
      - type: object
        mapping: $.
    - name: prune-volumes
      description: Prune volumes
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: podman-volumes.volumeprunelibpod
      with:
        filters: tools.filters
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-volume
      description: Remove volume
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: podman-volumes.volumedeletelibpod
      with:
        name: tools.name
        force: tools.force
        timeout: tools.timeout
      outputParameters:
      - type: object
        mapping: $.
    - name: volume-exists
      description: Volume exists
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: podman-volumes.volumeexistslibpod
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: export-volume
      description: Export a volume
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: podman-volumes.volumeexportlibpod
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: populate-volume-importing-provided-tar
      description: Populate a volume by importing provided tar
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: podman-volumes.volumeimportlibpod
      with:
        name: tools.name
        inputStream: tools.inputStream
      outputParameters:
      - type: object
        mapping: $.
    - name: inspect-volume
      description: Inspect volume
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: podman-volumes.volumeinspectlibpod
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.