Podman · Capability

supports a RESTful API for the Libpod library — images (compat)

supports a RESTful API for the Libpod library — images (compat). 13 operations. Lead operation: Build image. Self-contained Naftiko capability covering one Podman business surface.

Run with Naftiko Podmanimages (compat)

What You Can Do

POST
Imagebuild — Build image
/v1/build
POST
Imagecreate — Create an image
/v1/images/create
GET
Imagegetall — Export several images
/v1/images/get
GET
Imagelist — List Images
/v1/images/json
POST
Imageload — Import image
/v1/images/load
POST
Imageprune — Prune unused images
/v1/images/prune
GET
Imagesearch — Search images
/v1/images/search
DELETE
Imagedelete — Remove Image
/v1/images/{name}
GET
Imageget — Export an image
/v1/images/{name}/get
GET
Imagehistory — History of an image
/v1/images/{name}/history
GET
Imageinspect — Inspect an image
/v1/images/{name}/json
POST
Imagepush — Push Image
/v1/images/{name}/push
POST
Imagetag — Tag an image
/v1/images/{name}/tag

MCP Tools

build-image

Build image

create-image

Create an image

export-several-images

Export several images

read-only idempotent
list-images

List Images

read-only idempotent
import-image

Import image

prune-unused-images

Prune unused images

search-images

Search images

read-only idempotent
remove-image

Remove Image

idempotent
export-image

Export an image

read-only idempotent
history-image

History of an image

read-only idempotent
inspect-image

Inspect an image

read-only idempotent
push-image

Push Image

tag-image

Tag an image

Capability Spec

podman-images-compat.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: supports a RESTful API for the Libpod library — images (compat)
  description: 'supports a RESTful API for the Libpod library — images (compat). 13 operations. Lead operation: Build image.
    Self-contained Naftiko capability covering one Podman business surface.'
  tags:
  - Podman
  - images (compat)
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    PODMAN_API_KEY: PODMAN_API_KEY
capability:
  consumes:
  - type: http
    namespace: podman-images-compat
    baseUri: http://podman.io
    description: supports a RESTful API for the Libpod library — images (compat) business capability. Self-contained, no shared
      references.
    resources:
    - name: build
      path: /build
      operations:
      - name: imagebuild
        method: POST
        description: Build image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Content-Type
          in: header
          type: string
        - name: X-Registry-Config
          in: header
          type: string
        - name: dockerfile
          in: query
          type: string
          description: Path within the build context to the `Dockerfile`.
        - name: t
          in: query
          type: string
          description: A name and optional tag to apply to the image in the `name:tag` format. If you omit the tag, the default
            latest value is assumed. You can provide several t para
        - name: extrahosts
          in: query
          type: string
          description: TBD Extra hosts to add to /etc/hosts
        - name: nohosts
          in: query
          type: boolean
          description: Not to create /etc/hosts when building the image
        - name: remote
          in: query
          type: string
          description: A Git repository URI or HTTP/HTTPS context URI.
        - name: retry
          in: query
          type: integer
          description: Number of times to retry in case of failure when performing push/pull.
        - name: retry-delay
          in: query
          type: string
          description: Delay between retries in case of push/pull failures.
        - name: q
          in: query
          type: boolean
          description: Suppress verbose build output
        - name: nocache
          in: query
          type: boolean
          description: Do not use the cache when building the image
        - name: cachefrom
          in: query
          type: string
          description: JSON array of images used to build cache resolution
        - name: pull
          in: query
          type: boolean
          description: Attempt to pull the image even if an older image exists locally
        - name: rm
          in: query
          type: boolean
          description: Remove intermediate containers after a successful build
        - name: forcerm
          in: query
          type: boolean
          description: Always remove intermediate containers, even upon failure
        - name: memory
          in: query
          type: integer
          description: Memory is the upper limit (in bytes) on how much memory running containers can use
        - name: memswap
          in: query
          type: integer
          description: MemorySwap limits the amount of memory and swap together
        - name: cpushares
          in: query
          type: integer
          description: CPUShares (relative weight
        - name: cpusetcpus
          in: query
          type: string
          description: CPUSetCPUs in which to allow execution (0-3, 0,1)
        - name: cpuperiod
          in: query
          type: integer
          description: CPUPeriod limits the CPU CFS (Completely Fair Scheduler) period
        - name: cpuquota
          in: query
          type: integer
          description: CPUQuota limits the CPU CFS (Completely Fair Scheduler) quota
        - name: buildargs
          in: query
          type: string
          description: JSON map of string pairs denoting build-time variables.
        - name: shmsize
          in: query
          type: integer
          description: ShmSize is the "size" value to use when mounting an shmfs on the container's /dev/shm directory.
        - name: squash
          in: query
          type: boolean
          description: Silently ignored.
        - name: save-stages
          in: query
          type: boolean
          description: Preserve intermediate stage images instead of removing them after the build completes.
        - name: stage-labels
          in: query
          type: boolean
          description: Add metadata labels to all intermediate stage images of a multistage build, including the final image.
        - name: labels
          in: query
          type: string
          description: JSON map of key, value pairs to set as labels on the new image
        - name: networkmode
          in: query
          type: string
          description: Sets the networking mode for the run commands during build.
        - name: platform
          in: query
          type: string
          description: Platform format os[/arch[/variant]]
        - name: target
          in: query
          type: string
          description: Target build stage
        - name: outputs
          in: query
          type: string
          description: output configuration TBD
        - name: inputStream
          in: body
          type: string
          description: 'A tar archive compressed with one of the following algorithms:'
    - name: images-create
      path: /images/create
      operations:
      - name: imagecreate
        method: POST
        description: Create an image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: X-Registry-Auth
          in: header
          type: string
          description: A base64-encoded auth configuration.
        - name: fromImage
          in: query
          type: string
          description: Name of the image to pull. The name may include a tag or digest. This parameter may only be used when
            pulling an image. The pull is cancelled if the HTTP connec
        - name: fromSrc
          in: query
          type: string
          description: Source to import. The value may be a URL from which the image can be retrieved or - to read the image
            from the request body. This parameter may only be used whe
        - name: repo
          in: query
          type: string
          description: Repository name given to an image when it is imported. The repo may include a tag. This parameter may
            only be used when importing an image.
        - name: tag
          in: query
          type: string
          description: Tag or digest. If empty when pulling an image, this causes all tags for the given image to be pulled.
        - name: message
          in: query
          type: string
          description: Set commit message for imported image.
        - name: platform
          in: query
          type: string
          description: Platform in the format os[/arch[/variant]]
        - name: retry
          in: query
          type: integer
          description: Number of times to retry in case of failure when performing pull.
        - name: retryDelay
          in: query
          type: string
          description: Delay between retries in case of pull failures.
        - name: inputImage
          in: body
          type: string
          description: Image content if fromSrc parameter was used
    - name: images-get
      path: /images/get
      operations:
      - name: imagegetall
        method: GET
        description: Export several images
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: names
          in: query
          type: string
          description: one or more image names or IDs comma separated
          required: true
    - name: images-json
      path: /images/json
      operations:
      - name: imagelist
        method: GET
        description: List Images
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: all
          in: query
          type: boolean
          description: Show all images. Only images from a final layer (no children) are shown by default.
        - name: filters
          in: query
          type: string
          description: 'JSON-encoded string containing filters as a `map[string][]string` to process on the images list. Available
            filters:'
        - name: digests
          in: query
          type: boolean
          description: Not supported
        - name: shared-size
          in: query
          type: boolean
          description: Compute and show shared size as a SharedSize field on each image.
    - name: images-load
      path: /images/load
      operations:
      - name: imageload
        method: POST
        description: Import image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: quiet
          in: query
          type: boolean
          description: not supported
        - name: request
          in: body
          type: string
          description: tarball of container image
    - name: images-prune
      path: /images/prune
      operations:
      - name: imageprune
        method: POST
        description: Prune unused images
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: filters
          in: query
          type: string
          description: 'filters to apply to image pruning, encoded as JSON (map[string][]string). Available filters:'
    - name: images-search
      path: /images/search
      operations:
      - name: imagesearch
        method: GET
        description: Search images
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: term
          in: query
          type: string
          description: term to search
        - name: limit
          in: query
          type: integer
          description: maximum number of results
        - name: filters
          in: query
          type: string
          description: 'JSON-encoded string containing filters as a `map[string][]string` to process on the images list. Available
            filters:'
        - name: tlsVerify
          in: query
          type: boolean
          description: Require HTTPS and verify signatures when contacting registries.
        - name: listTags
          in: query
          type: boolean
          description: list the available tags in the repository
    - name: images-name
      path: /images/{name}
      operations:
      - name: imagedelete
        method: DELETE
        description: Remove Image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: name or ID of image to delete
          required: true
        - name: force
          in: query
          type: boolean
          description: Remove the image even if it is being used by stopped containers or has other tags
        - name: noprune
          in: query
          type: boolean
          description: do not remove dangling parent images
        - name: ignore
          in: query
          type: boolean
          description: Ignore if a specified image does not exist and do not throw an error.
    - name: images-name-get
      path: /images/{name}/get
      operations:
      - name: imageget
        method: GET
        description: Export an image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: the name or ID of the container
          required: true
    - name: images-name-history
      path: /images/{name}/history
      operations:
      - name: imagehistory
        method: GET
        description: History of an image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: the name or ID of the container
          required: true
    - name: images-name-json
      path: /images/{name}/json
      operations:
      - name: imageinspect
        method: GET
        description: Inspect an image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: the name or ID of the container
          required: true
    - name: images-name-push
      path: /images/{name}/push
      operations:
      - name: imagepush
        method: POST
        description: Push Image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: Name of image to push.
          required: true
        - name: tag
          in: query
          type: string
          description: The tag to associate with the image on the registry.
        - name: all
          in: query
          type: boolean
          description: All indicates whether to push all images related to the image list
        - name: compress
          in: query
          type: boolean
          description: Use compression on image.
        - name: destination
          in: query
          type: string
          description: Allows for pushing the image to a different destination than the image refers to.
        - name: format
          in: query
          type: string
          description: Manifest type (oci, v2s1, or v2s2) to use when pushing an image. Default is manifest type of source,
            with fallbacks.
        - name: tlsVerify
          in: query
          type: boolean
          description: Require TLS verification.
        - name: X-Registry-Auth
          in: header
          type: string
          description: A base64-encoded auth configuration.
    - name: images-name-tag
      path: /images/{name}/tag
      operations:
      - name: imagetag
        method: POST
        description: Tag an image
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: the name or ID of the container
          required: true
        - name: repo
          in: query
          type: string
          description: the repository to tag in
        - name: tag
          in: query
          type: string
          description: the name of the new tag
  exposes:
  - type: rest
    namespace: podman-images-compat-rest
    port: 8080
    description: REST adapter for supports a RESTful API for the Libpod library — images (compat). One Spectral-compliant
      resource per consumed operation, prefixed with /v1.
    resources:
    - path: /v1/build
      name: build
      description: REST surface for build.
      operations:
      - method: POST
        name: imagebuild
        description: Build image
        call: podman-images-compat.imagebuild
        with:
          Content-Type: rest.Content-Type
          X-Registry-Config: rest.X-Registry-Config
          dockerfile: rest.dockerfile
          t: rest.t
          extrahosts: rest.extrahosts
          nohosts: rest.nohosts
          remote: rest.remote
          retry: rest.retry
          retry-delay: rest.retry-delay
          q: rest.q
          nocache: rest.nocache
          cachefrom: rest.cachefrom
          pull: rest.pull
          rm: rest.rm
          forcerm: rest.forcerm
          memory: rest.memory
          memswap: rest.memswap
          cpushares: rest.cpushares
          cpusetcpus: rest.cpusetcpus
          cpuperiod: rest.cpuperiod
          cpuquota: rest.cpuquota
          buildargs: rest.buildargs
          shmsize: rest.shmsize
          squash: rest.squash
          save-stages: rest.save-stages
          stage-labels: rest.stage-labels
          labels: rest.labels
          networkmode: rest.networkmode
          platform: rest.platform
          target: rest.target
          outputs: rest.outputs
          inputStream: rest.inputStream
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/images/create
      name: images-create
      description: REST surface for images-create.
      operations:
      - method: POST
        name: imagecreate
        description: Create an image
        call: podman-images-compat.imagecreate
        with:
          X-Registry-Auth: rest.X-Registry-Auth
          fromImage: rest.fromImage
          fromSrc: rest.fromSrc
          repo: rest.repo
          tag: rest.tag
          message: rest.message
          platform: rest.platform
          retry: rest.retry
          retryDelay: rest.retryDelay
          inputImage: rest.inputImage
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/images/get
      name: images-get
      description: REST surface for images-get.
      operations:
      - method: GET
        name: imagegetall
        description: Export several images
        call: podman-images-compat.imagegetall
        with:
          names: rest.names
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/images/json
      name: images-json
      description: REST surface for images-json.
      operations:
      - method: GET
        name: imagelist
        description: List Images
        call: podman-images-compat.imagelist
        with:
          all: rest.all
          filters: rest.filters
          digests: rest.digests
          shared-size: rest.shared-size
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/images/load
      name: images-load
      description: REST surface for images-load.
      operations:
      - method: POST
        name: imageload
        description: Import image
        call: podman-images-compat.imageload
        with:
          quiet: rest.quiet
          request: rest.request
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/images/prune
      name: images-prune
      description: REST surface for images-prune.
      operations:
      - method: POST
        name: imageprune
        description: Prune unused images
        call: podman-images-compat.imageprune
        with:
          filters: rest.filters
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/images/search
      name: images-search
      description: REST surface for images-search.
      operations:
      - method: GET
        name: imagesearch
        description: Search images
        call: podman-images-compat.imagesearch
        with:
          term: rest.term
          limit: rest.limit
          filters: rest.filters
          tlsVerify: rest.tlsVerify
          listTags: rest.listTags
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/images/{name}
      name: images-name
      description: REST surface for images-name.
      operations:
      - method: DELETE
        name: imagedelete
        description: Remove Image
        call: podman-images-compat.imagedelete
        with:
          name: rest.name
          force: rest.force
          noprune: rest.noprune
          ignore: rest.ignore
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/images/{name}/get
      name: images-name-get
      description: REST surface for images-name-get.
      operations:
      - method: GET
        name: imageget
        description: Export an image
        call: podman-images-compat.imageget
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/images/{name}/history
      name: images-name-history
      description: REST surface for images-name-history.
      operations:
      - method: GET
        name: imagehistory
        description: History of an image
        call: podman-images-compat.imagehistory
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/images/{name}/json
      name: images-name-json
      description: REST surface for images-name-json.
      operations:
      - method: GET
        name: imageinspect
        description: Inspect an image
        call: podman-images-compat.imageinspect
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/images/{name}/push
      name: images-name-push
      description: REST surface for images-name-push.
      operations:
      - method: POST
        name: imagepush
        description: Push Image
        call: podman-images-compat.imagepush
        with:
          name: rest.name
          tag: rest.tag
          all: rest.all
          compress: rest.compress
          destination: rest.destination
          format: rest.format
          tlsVerify: rest.tlsVerify
          X-Registry-Auth: rest.X-Registry-Auth
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/images/{name}/tag
      name: images-name-tag
      description: REST surface for images-name-tag.
      operations:
      - method: POST
        name: imagetag
        description: Tag an image
        call: podman-images-compat.imagetag
        with:
          name: rest.name
          repo: rest.repo
          tag: rest.tag
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: podman-images-compat-mcp
    port: 9090
    transport: http
    description: MCP adapter for supports a RESTful API for the Libpod library — images (compat). One tool per consumed operation,
      routed inline through this capability's consumes block.
    tools:
    - name: build-image
      description: Build image
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: podman-images-compat.imagebuild
      with:
        Content-Type: tools.Content-Type
        X-Registry-Config: tools.X-Registry-Config
        dockerfile: tools.dockerfile
        t: tools.t
        extrahosts: tools.extrahosts
        nohosts: tools.nohosts
        remote: tools.remote
        retry: tools.retry
        retry-delay: tools.retry-delay
        q: tools.q
        nocache: tools.nocache
        cachefrom: tools.cachefrom
        pull: tools.pull
        rm: tools.rm
        forcerm: tools.forcerm
        memory: tools.memory
        memswap: tools.memswap
        cpushares: tools.cpushares
        cpusetcpus: tools.cpusetcpus
        cpuperiod: tools.cpuperiod
        cpuquota: tools.cpuquota
        buildargs: tools.buildargs
        shmsize: tools.shmsize
        squash: tools.squash
        save-stages: tools.save-stages
        stage-labels: tools.stage-labels
        labels: tools.labels
        networkmode: tools.networkmode
        platform: tools.platform
        target: tools.target
        outputs: tools.outputs
        inputStream: tools.inputStream
      outputParameters:
      - type: object
        mapping: $.
    - name: create-image
      description: Create an image
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: podman-images-compat.imagecreate
      with:
        X-Registry-Auth: tools.X-Registry-Auth
        fromImage: tools.fromImage
        fromSrc: tools.fromSrc
        repo: tools.repo
        tag: tools.tag
        message: tools.message
        platform: tools.platform
        retry: tools.retry
        retryDelay: tools.retryDelay
        inputImage: tools.inputImage
      outputParameters:
      - type: object
        mapping: $.
    - name: export-several-images
      description: Export several images
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: podman-images-compat.imagegetall
      with:
        names: tools.names
      outputParameters:
      - type: object
        mapping: $.
    - name: list-images
      description: List Images
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: podman-images-compat.imagelist
      with:
        all: tools.all
        filters: tools.filters
        digests: tools.digests
        shared-size: tools.shared-size
      outputParameters:
      - type: object
        mapping: $.
    - name: import-image
      description: Import image
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: podman-images-compat.imageload
      with:
        quiet: tools.quiet
        request: tools.request
      outputParameters:
      - type: object
        mapping: $.
    - name: prune-unused-images
      description: Prune unused images
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: podman-images-compat.imageprune
      with:
        filters: tools.filters
      outputParameters:
      - type: object
        mapping: $.
    - name: search-images
      description: Search images
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: podman-images-compat.imagesearch
      with:
        term: tools.term
        limit: tools.limit
        filters: tools.filters
        tlsVerify: tools.tlsVerify
        listTags: tools.listTags
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-image
      description: Remove Image
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: podman-images-compat.imagedelete
      with:
        name: tools.name
        force: tools.force
        noprune: tools.noprune
        ignore: tools.ignore
      outputParameters:
      - type: object
        mapping: $.
    - name: export-image
      description: Export an image
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: podman-images-compat.imageget
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: history-image
      description: History of an image
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: podman-images-compat.imagehistory
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: inspect-image
      description: Inspect an image
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: podman-images-compat.imageinspect
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: push-image
      description: Push Image
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: podman-images-compat.imagepush
      with:
        name: tools.name
        tag: tools.tag
        all: tools.all
        compress: tools.compress
        destination: tools.destination
        format: tools.format
        tlsVerify: tools.tlsVerify
        X-Registry-Auth: tools.X-Registry-Auth
      outputParameters:
      - type: object
        mapping: $.
    - name: tag-image
      description: Tag an image
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: podman-images-compat.imagetag
      with:
        name: tools.name
        repo: tools.repo
        tag: tools.tag
      outputParameters:
      - type: object
        mapping: $.