supports a RESTful API for the Libpod library — containers (compat)
supports a RESTful API for the Libpod library — containers (compat). 25 operations. Lead operation: New Image. Self-contained Naftiko capability covering one Podman business surface.
What You Can Do
MCP Tools
new-image
New Image
create-container
Create a container
list-containers
List containers
delete-stopped-containers
Delete stopped containers
remove-container
Remove a container
get-files-container
Get files from a container
put-files-container
Put files into a container
attach-container
Attach to a container
report-changes-container-s-filesystem-adds
Report on changes to container's filesystem; adds, deletes or modifications.
export-container
Export a container
inspect-container
Inspect container
kill-container
Kill container
get-container-logs
Get container logs
pause-container
Pause container
rename-existing-container
Rename an existing container
resize-container-s-tty
Resize a container's TTY
restart-container
Restart container
start-container
Start a container
get-stats-container
Get stats for a container
stop-container
Stop a container
list-processes-running-inside-container
List processes running inside a container
unpause-container
Unpause container
update-configuration-existing-container-allowing
Update configuration of an existing container, allowing changes to resource limits
wait-container
Wait on a container
copy-files-container
Copy files from a container
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: supports a RESTful API for the Libpod library — containers (compat)
description: 'supports a RESTful API for the Libpod library — containers (compat). 25 operations. Lead operation: New Image.
Self-contained Naftiko capability covering one Podman business surface.'
tags:
- Podman
- containers (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-containers-compat
baseUri: http://podman.io
description: supports a RESTful API for the Libpod library — containers (compat) business capability. Self-contained,
no shared references.
resources:
- name: commit
path: /commit
operations:
- name: imagecommit
method: POST
description: New Image
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: container
in: query
type: string
description: the name or ID of a container
- name: repo
in: query
type: string
description: the repository name for the created image
- name: tag
in: query
type: string
description: tag name for the created image
- name: comment
in: query
type: string
description: commit message
- name: author
in: query
type: string
description: author of the image
- name: pause
in: query
type: boolean
description: pause the container before committing it
- name: changes
in: query
type: string
description: instructions to apply while committing in Dockerfile format
- name: squash
in: query
type: boolean
description: squash newly built layers into a single new layer
- name: containers-create
path: /containers/create
operations:
- name: containercreate
method: POST
description: Create a container
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: query
type: string
description: container name
- name: body
in: body
type: string
description: Container to create
required: true
- name: containers-json
path: /containers/json
operations:
- name: containerlist
method: GET
description: List containers
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: all
in: query
type: boolean
description: Return all containers. By default, only running containers are shown
- name: external
in: query
type: boolean
description: Return containers in storage not controlled by Podman
- name: limit
in: query
type: integer
description: Return this number of most recently created containers, including non-running ones.
- name: size
in: query
type: boolean
description: Return the size of container as fields SizeRw and SizeRootFs.
- name: filters
in: query
type: string
description: 'A JSON encoded value of the filters (a `map[string][]string`) to process on the containers list. Available
filters:'
- name: containers-prune
path: /containers/prune
operations:
- name: containerprune
method: POST
description: Delete stopped containers
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`). Available filters:'
- name: containers-name
path: /containers/{name}
operations:
- name: containerdelete
method: DELETE
description: Remove a container
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: force
in: query
type: boolean
description: If the container is running, kill it before removing it.
- name: v
in: query
type: boolean
description: Remove the volumes associated with the container.
- name: link
in: query
type: boolean
description: not supported
- name: ignore
in: query
type: boolean
description: Ignore if a specified container does not exist.
- name: depend
in: query
type: boolean
description: Remove container dependencies.
- name: timeout
in: query
type: integer
description: Number of seconds to wait before forcibly stopping the container.
- name: volumes
in: query
type: boolean
description: Remove anonymous volumes associated with the container.
- name: containers-name-archive
path: /containers/{name}/archive
operations:
- name: containerarchive
method: GET
description: Get files from a container
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: container name or id
required: true
- name: path
in: query
type: string
description: Path to a directory in the container to extract
required: true
- name: putcontainerarchive
method: PUT
description: Put files into a container
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: container name or id
required: true
- name: path
in: query
type: string
description: Path to a directory in the container to extract
required: true
- name: noOverwriteDirNonDir
in: query
type: string
description: if unpacking the given content would cause an existing directory to be replaced with a non-directory
and vice versa (1 or true)
- name: copyUIDGID
in: query
type: string
description: copy UID/GID maps to the dest file or di (1 or true)
- name: request
in: body
type: string
description: tarfile of files to copy into the container
- name: containers-name-attach
path: /containers/{name}/attach
operations:
- name: containerattach
method: POST
description: Attach to a container
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: detachKeys
in: query
type: string
description: keys to use for detaching from the container
- name: logs
in: query
type: boolean
description: Stream all logs from the container across the connection. Happens before streaming attach (if requested).
At least one of logs or stream must be set
- name: stream
in: query
type: boolean
description: Attach to the container. If unset, and logs is set, only the container's logs will be sent. At least
one of stream or logs must be set
- name: stdout
in: query
type: boolean
description: Attach to container STDOUT
- name: stderr
in: query
type: boolean
description: Attach to container STDERR
- name: stdin
in: query
type: boolean
description: Attach to container STDIN
- name: containers-name-changes
path: /containers/{name}/changes
operations:
- name: containerchanges
method: GET
description: Report on changes to container's filesystem; adds, deletes or modifications.
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: parent
in: query
type: string
description: specify a second layer which is used to compare against it instead of the parent layer
- name: diffType
in: query
type: string
description: select what you want to match, default is all
- name: containers-name-export
path: /containers/{name}/export
operations:
- name: containerexport
method: GET
description: Export a container
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: containers-name-json
path: /containers/{name}/json
operations:
- name: containerinspect
method: GET
description: Inspect container
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: size
in: query
type: boolean
description: include the size of the container
- name: containers-name-kill
path: /containers/{name}/kill
operations:
- name: containerkill
method: POST
description: Kill container
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: all
in: query
type: boolean
description: Send kill signal to all containers
- name: signal
in: query
type: string
description: signal to be sent to container
- name: containers-name-logs
path: /containers/{name}/logs
operations:
- name: containerlogs
method: GET
description: Get container logs
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: follow
in: query
type: boolean
description: Keep connection after returning logs.
- name: stdout
in: query
type: boolean
description: Return logs from stdout
- name: stderr
in: query
type: boolean
description: Return logs from stderr
- name: since
in: query
type: string
description: Only return logs since this time, as a UNIX timestamp
- name: until
in: query
type: string
description: Only return logs before this time, as a UNIX timestamp
- name: timestamps
in: query
type: boolean
description: Add timestamps to every log line
- name: tail
in: query
type: string
description: Only return this number of log lines from the end of the logs
- name: containers-name-pause
path: /containers/{name}/pause
operations:
- name: containerpause
method: POST
description: Pause container
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: containers-name-rename
path: /containers/{name}/rename
operations:
- name: containerrename
method: POST
description: Rename an existing container
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Full or partial ID or full name of the container to rename
required: true
- name: name
in: query
type: string
description: New name for the container
required: true
- name: containers-name-resize
path: /containers/{name}/resize
operations:
- name: containerresize
method: POST
description: Resize a container's TTY
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: h
in: query
type: integer
description: Height to set for the terminal, in characters
- name: w
in: query
type: integer
description: Width to set for the terminal, in characters
- name: running
in: query
type: boolean
description: Ignore containers not running errors
- name: containers-name-restart
path: /containers/{name}/restart
operations:
- name: containerrestart
method: POST
description: Restart container
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: t
in: query
type: integer
description: timeout before sending kill signal to container
- name: containers-name-start
path: /containers/{name}/start
operations:
- name: containerstart
method: POST
description: Start a container
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: detachKeys
in: query
type: string
description: 'Override the key sequence for detaching a container. Format is a single character [a-Z] or ctrl-<value>
where <value> is one of: a-z, @, ^, [, , or _.'
- name: containers-name-stats
path: /containers/{name}/stats
operations:
- name: containerstats
method: GET
description: Get stats for a container
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: stream
in: query
type: boolean
description: Stream the output
- name: one-shot
in: query
type: boolean
description: Provide a one-shot response in which preCPU stats are blank, resulting in a single cycle return.
- name: containers-name-stop
path: /containers/{name}/stop
operations:
- name: containerstop
method: POST
description: Stop a container
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: t
in: query
type: integer
description: number of seconds to wait before killing container
- name: timeout
in: query
type: integer
description: Number of seconds to wait before killing the container (libpod alias for `t`).
- name: ignore
in: query
type: boolean
description: Do not return an error if the container is already stopped.
- name: containers-name-top
path: /containers/{name}/top
operations:
- name: containertop
method: GET
description: List processes running inside a container
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: ps_args
in: query
type: string
description: arguments to pass to ps such as aux.
- name: containers-name-unpause
path: /containers/{name}/unpause
operations:
- name: containerunpause
method: POST
description: Unpause container
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: containers-name-update
path: /containers/{name}/update
operations:
- name: containerupdate
method: POST
description: Update configuration of an existing container, allowing changes to resource limits
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Full or partial ID or full name of the container to rename
required: true
- name: resources
in: body
type: string
description: attributes for updating the container
- name: containers-name-wait
path: /containers/{name}/wait
operations:
- name: containerwait
method: POST
description: Wait on a container
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: condition
in: query
type: string
description: 'Wait condition. Valid values are:'
- name: libpod-containers-name-archive
path: /libpod/containers/{name}/archive
operations:
- name: containerarchivelibpod
method: GET
description: Copy files from a container
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: container name or id
required: true
- name: path
in: query
type: string
description: Path to a directory in the container to extract
required: true
- name: rename
in: query
type: string
description: JSON encoded map[string]string to translate paths
exposes:
- type: rest
namespace: podman-containers-compat-rest
port: 8080
description: REST adapter for supports a RESTful API for the Libpod library — containers (compat). One Spectral-compliant
resource per consumed operation, prefixed with /v1.
resources:
- path: /v1/commit
name: commit
description: REST surface for commit.
operations:
- method: POST
name: imagecommit
description: New Image
call: podman-containers-compat.imagecommit
with:
container: rest.container
repo: rest.repo
tag: rest.tag
comment: rest.comment
author: rest.author
pause: rest.pause
changes: rest.changes
squash: rest.squash
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/create
name: containers-create
description: REST surface for containers-create.
operations:
- method: POST
name: containercreate
description: Create a container
call: podman-containers-compat.containercreate
with:
name: rest.name
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/json
name: containers-json
description: REST surface for containers-json.
operations:
- method: GET
name: containerlist
description: List containers
call: podman-containers-compat.containerlist
with:
all: rest.all
external: rest.external
limit: rest.limit
size: rest.size
filters: rest.filters
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/prune
name: containers-prune
description: REST surface for containers-prune.
operations:
- method: POST
name: containerprune
description: Delete stopped containers
call: podman-containers-compat.containerprune
with:
filters: rest.filters
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}
name: containers-name
description: REST surface for containers-name.
operations:
- method: DELETE
name: containerdelete
description: Remove a container
call: podman-containers-compat.containerdelete
with:
name: rest.name
force: rest.force
v: rest.v
link: rest.link
ignore: rest.ignore
depend: rest.depend
timeout: rest.timeout
volumes: rest.volumes
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/archive
name: containers-name-archive
description: REST surface for containers-name-archive.
operations:
- method: GET
name: containerarchive
description: Get files from a container
call: podman-containers-compat.containerarchive
with:
name: rest.name
path: rest.path
outputParameters:
- type: object
mapping: $.
- method: PUT
name: putcontainerarchive
description: Put files into a container
call: podman-containers-compat.putcontainerarchive
with:
name: rest.name
path: rest.path
noOverwriteDirNonDir: rest.noOverwriteDirNonDir
copyUIDGID: rest.copyUIDGID
request: rest.request
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/attach
name: containers-name-attach
description: REST surface for containers-name-attach.
operations:
- method: POST
name: containerattach
description: Attach to a container
call: podman-containers-compat.containerattach
with:
name: rest.name
detachKeys: rest.detachKeys
logs: rest.logs
stream: rest.stream
stdout: rest.stdout
stderr: rest.stderr
stdin: rest.stdin
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/changes
name: containers-name-changes
description: REST surface for containers-name-changes.
operations:
- method: GET
name: containerchanges
description: Report on changes to container's filesystem; adds, deletes or modifications.
call: podman-containers-compat.containerchanges
with:
name: rest.name
parent: rest.parent
diffType: rest.diffType
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/export
name: containers-name-export
description: REST surface for containers-name-export.
operations:
- method: GET
name: containerexport
description: Export a container
call: podman-containers-compat.containerexport
with:
name: rest.name
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/json
name: containers-name-json
description: REST surface for containers-name-json.
operations:
- method: GET
name: containerinspect
description: Inspect container
call: podman-containers-compat.containerinspect
with:
name: rest.name
size: rest.size
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/kill
name: containers-name-kill
description: REST surface for containers-name-kill.
operations:
- method: POST
name: containerkill
description: Kill container
call: podman-containers-compat.containerkill
with:
name: rest.name
all: rest.all
signal: rest.signal
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/logs
name: containers-name-logs
description: REST surface for containers-name-logs.
operations:
- method: GET
name: containerlogs
description: Get container logs
call: podman-containers-compat.containerlogs
with:
name: rest.name
follow: rest.follow
stdout: rest.stdout
stderr: rest.stderr
since: rest.since
until: rest.until
timestamps: rest.timestamps
tail: rest.tail
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/pause
name: containers-name-pause
description: REST surface for containers-name-pause.
operations:
- method: POST
name: containerpause
description: Pause container
call: podman-containers-compat.containerpause
with:
name: rest.name
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/rename
name: containers-name-rename
description: REST surface for containers-name-rename.
operations:
- method: POST
name: containerrename
description: Rename an existing container
call: podman-containers-compat.containerrename
with:
name: rest.name
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/resize
name: containers-name-resize
description: REST surface for containers-name-resize.
operations:
- method: POST
name: containerresize
description: Resize a container's TTY
call: podman-containers-compat.containerresize
with:
name: rest.name
h: rest.h
w: rest.w
running: rest.running
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/restart
name: containers-name-restart
description: REST surface for containers-name-restart.
operations:
- method: POST
name: containerrestart
description: Restart container
call: podman-containers-compat.containerrestart
with:
name: rest.name
t: rest.t
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/start
name: containers-name-start
description: REST surface for containers-name-start.
operations:
- method: POST
name: containerstart
description: Start a container
call: podman-containers-compat.containerstart
with:
name: rest.name
detachKeys: rest.detachKeys
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/stats
name: containers-name-stats
description: REST surface for containers-name-stats.
operations:
- method: GET
name: containerstats
description: Get stats for a container
call: podman-containers-compat.containerstats
with:
name: rest.name
stream: rest.stream
one-shot: rest.one-shot
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/stop
name: containers-name-stop
description: REST surface for containers-name-stop.
operations:
- method: POST
name: containerstop
description: Stop a container
call: podman-containers-compat.containerstop
with:
name: rest.name
t: rest.t
timeout: rest.timeout
ignore: rest.ignore
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/top
name: containers-name-top
description: REST surface for containers-name-top.
operations:
- method: GET
name: containertop
description: List processes running inside a container
call: podman-containers-compat.containertop
with:
name: rest.name
ps_args: rest.ps_args
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/unpause
name: containers-name-unpause
description: REST surface for containers-name-unpause.
operations:
- method: POST
name: containerunpause
description: Unpause container
call: podman-containers-compat.containerunpause
with:
name: rest.name
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/update
name: containers-name-update
description: REST surface for containers-name-update.
operations:
- method: POST
name: containerupdate
description: Update configuration of an existing container, allowing changes to resource limits
call: podman-containers-compat.containerupdate
with:
name: rest.name
resources: rest.resources
outputParameters:
- type: object
mapping: $.
- path: /v1/containers/{name}/wait
name: containers-name-wait
description: REST surface for containers-name-wait.
operations:
- method: POST
name: containerwait
description: Wait on a container
call: podman-containers-compat.containerwait
with:
name: rest.name
condition: rest.condition
outputParameters:
- type: object
mapping: $.
- path: /v1/libpod/containers/{name}/archive
name: libpod-containers-name-archive
description: REST surface for libpod-containers-name-archive.
operations:
-
# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/podman/refs/heads/main/capabilities/podman-containers-compat.yaml