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.
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
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: $.