Podman · Capability
supports a RESTful API for the Libpod library — artifacts
supports a RESTful API for the Libpod library — artifacts. 9 operations. Lead operation: Add a file as an artifact. Self-contained Naftiko capability covering one Podman business surface.
What You Can Do
POST
Artifactaddlibpod
— Add a file as an artifact
/v1/libpod/artifacts/add
GET
Artifactlistlibpod
— List artifacts
/v1/libpod/artifacts/json
POST
Artifactlocallibpod
— Add a local file as an artifact
/v1/libpod/artifacts/local/add
POST
Artifactpulllibpod
— Pull an artifact
/v1/libpod/artifacts/pull
DELETE
Artifactdeletealllibpod
— Remove one or more artifacts
/v1/libpod/artifacts/remove
DELETE
Artifactdeletelibpod
— Remove an artifact
/v1/libpod/artifacts/{name}
GET
Artifactextractlibpod
— Extract an artifacts contents
/v1/libpod/artifacts/{name}/extract
GET
Artifactinspectlibpod
— Inspect an artifact
/v1/libpod/artifacts/{name}/json
POST
Artifactpushlibpod
— Push an artifact
/v1/libpod/artifacts/{name}/push
MCP Tools
add-file-artifact
Add a file as an artifact
list-artifacts
List artifacts
read-only
idempotent
add-local-file-artifact
Add a local file as an artifact
pull-artifact
Pull an artifact
remove-one-more-artifacts
Remove one or more artifacts
idempotent
remove-artifact
Remove an artifact
idempotent
extract-artifacts-contents
Extract an artifacts contents
read-only
idempotent
inspect-artifact
Inspect an artifact
read-only
idempotent
push-artifact
Push an artifact
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: supports a RESTful API for the Libpod library — artifacts
description: 'supports a RESTful API for the Libpod library — artifacts. 9 operations. Lead operation: Add a file as an
artifact. Self-contained Naftiko capability covering one Podman business surface.'
tags:
- Podman
- artifacts
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
PODMAN_API_KEY: PODMAN_API_KEY
capability:
consumes:
- type: http
namespace: podman-artifacts
baseUri: http://podman.io
description: supports a RESTful API for the Libpod library — artifacts business capability. Self-contained, no shared
references.
resources:
- name: libpod-artifacts-add
path: /libpod/artifacts/add
operations:
- name: artifactaddlibpod
method: POST
description: Add a file as an artifact
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: query
type: string
description: Mandatory reference to the artifact (e.g., quay.io/image/artifact:tag)
required: true
- name: fileName
in: query
type: string
description: Path of the file to be added
required: true
- name: fileMIMEType
in: query
type: string
description: Optionally set the type of file
- name: annotations
in: query
type: array
description: Array of annotation strings e.g "test=true"
- name: artifactMIMEType
in: query
type: string
description: Use type to describe an artifact
- name: append
in: query
type: boolean
description: Append files to an existing artifact
- name: replace
in: query
type: boolean
description: Replace an existing artifact with the same name
- name: inputStream
in: body
type: string
description: Binary stream of the file to add to an artifact
- name: libpod-artifacts-json
path: /libpod/artifacts/json
operations:
- name: artifactlistlibpod
method: GET
description: List artifacts
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: libpod-artifacts-local-add
path: /libpod/artifacts/local/add
operations:
- name: artifactlocallibpod
method: POST
description: Add a local file as an artifact
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: query
type: string
description: Mandatory reference to the artifact (e.g., quay.io/image/artifact:tag)
required: true
- name: path
in: query
type: string
description: Absolute path to the local file on the server filesystem to be added
required: true
- name: fileName
in: query
type: string
description: Name/title of the file within the artifact
required: true
- name: fileMIMEType
in: query
type: string
description: Optionally set the MIME type of the file
- name: annotations
in: query
type: array
description: Array of annotation strings e.g "test=true"
- name: artifactMIMEType
in: query
type: string
description: Use type to describe an artifact
- name: append
in: query
type: boolean
description: Append files to an existing artifact
- name: replace
in: query
type: boolean
description: Replace an existing artifact with the same name
- name: libpod-artifacts-pull
path: /libpod/artifacts/pull
operations:
- name: artifactpulllibpod
method: POST
description: Pull an artifact
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: query
type: string
description: Mandatory reference to the artifact (e.g., quay.io/image/artifact:tag)
required: true
- 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 (e.g., 10s)
- name: tlsVerify
in: query
type: boolean
description: Require TLS verification
- name: X-Registry-Auth
in: header
type: string
description: base-64 encoded auth config.
- name: libpod-artifacts-remove
path: /libpod/artifacts/remove
operations:
- name: artifactdeletealllibpod
method: DELETE
description: Remove one or more artifacts
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: artifacts
in: query
type: array
description: List of artifact names/IDs to remove
- name: all
in: query
type: boolean
description: Remove all artifacts
- name: ignore
in: query
type: boolean
description: Ignore errors if artifact does not exist
- name: libpod-artifacts-name
path: /libpod/artifacts/{name}
operations:
- name: artifactdeletelibpod
method: DELETE
description: Remove an artifact
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Name or ID of the artifact to remove
required: true
- name: libpod-artifacts-name-extract
path: /libpod/artifacts/{name}/extract
operations:
- name: artifactextractlibpod
method: GET
description: Extract an artifacts contents
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Name or digest of the artifact
required: true
- name: title
in: query
type: string
description: Only extract the file with the given title
- name: digest
in: query
type: string
description: Only extract the file with the given digest
- name: excludeTitle
in: query
type: boolean
description: When extracting a single file from an artifact, don't use the files title as the file name in the tar
archive
- name: libpod-artifacts-name-json
path: /libpod/artifacts/{name}/json
operations:
- name: artifactinspectlibpod
method: GET
description: Inspect an artifact
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Name or ID of the artifact
required: true
- name: libpod-artifacts-name-push
path: /libpod/artifacts/{name}/push
operations:
- name: artifactpushlibpod
method: POST
description: Push an artifact
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Mandatory reference to the artifact (e.g., quay.io/image/artifact:tag)
required: true
- 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 (e.g., 10s)
- name: tlsVerify
in: query
type: boolean
description: Require TLS verification
- name: X-Registry-Auth
in: header
type: string
description: base-64 encoded auth config.
exposes:
- type: rest
namespace: podman-artifacts-rest
port: 8080
description: REST adapter for supports a RESTful API for the Libpod library — artifacts. One Spectral-compliant resource
per consumed operation, prefixed with /v1.
resources:
- path: /v1/libpod/artifacts/add
name: libpod-artifacts-add
description: REST surface for libpod-artifacts-add.
operations:
- method: POST
name: artifactaddlibpod
description: Add a file as an artifact
call: podman-artifacts.artifactaddlibpod
with:
name: rest.name
fileName: rest.fileName
fileMIMEType: rest.fileMIMEType
annotations: rest.annotations
artifactMIMEType: rest.artifactMIMEType
append: rest.append
replace: rest.replace
inputStream: rest.inputStream
outputParameters:
- type: object
mapping: $.
- path: /v1/libpod/artifacts/json
name: libpod-artifacts-json
description: REST surface for libpod-artifacts-json.
operations:
- method: GET
name: artifactlistlibpod
description: List artifacts
call: podman-artifacts.artifactlistlibpod
outputParameters:
- type: object
mapping: $.
- path: /v1/libpod/artifacts/local/add
name: libpod-artifacts-local-add
description: REST surface for libpod-artifacts-local-add.
operations:
- method: POST
name: artifactlocallibpod
description: Add a local file as an artifact
call: podman-artifacts.artifactlocallibpod
with:
name: rest.name
path: rest.path
fileName: rest.fileName
fileMIMEType: rest.fileMIMEType
annotations: rest.annotations
artifactMIMEType: rest.artifactMIMEType
append: rest.append
replace: rest.replace
outputParameters:
- type: object
mapping: $.
- path: /v1/libpod/artifacts/pull
name: libpod-artifacts-pull
description: REST surface for libpod-artifacts-pull.
operations:
- method: POST
name: artifactpulllibpod
description: Pull an artifact
call: podman-artifacts.artifactpulllibpod
with:
name: rest.name
retry: rest.retry
retryDelay: rest.retryDelay
tlsVerify: rest.tlsVerify
X-Registry-Auth: rest.X-Registry-Auth
outputParameters:
- type: object
mapping: $.
- path: /v1/libpod/artifacts/remove
name: libpod-artifacts-remove
description: REST surface for libpod-artifacts-remove.
operations:
- method: DELETE
name: artifactdeletealllibpod
description: Remove one or more artifacts
call: podman-artifacts.artifactdeletealllibpod
with:
artifacts: rest.artifacts
all: rest.all
ignore: rest.ignore
outputParameters:
- type: object
mapping: $.
- path: /v1/libpod/artifacts/{name}
name: libpod-artifacts-name
description: REST surface for libpod-artifacts-name.
operations:
- method: DELETE
name: artifactdeletelibpod
description: Remove an artifact
call: podman-artifacts.artifactdeletelibpod
with:
name: rest.name
outputParameters:
- type: object
mapping: $.
- path: /v1/libpod/artifacts/{name}/extract
name: libpod-artifacts-name-extract
description: REST surface for libpod-artifacts-name-extract.
operations:
- method: GET
name: artifactextractlibpod
description: Extract an artifacts contents
call: podman-artifacts.artifactextractlibpod
with:
name: rest.name
title: rest.title
digest: rest.digest
excludeTitle: rest.excludeTitle
outputParameters:
- type: object
mapping: $.
- path: /v1/libpod/artifacts/{name}/json
name: libpod-artifacts-name-json
description: REST surface for libpod-artifacts-name-json.
operations:
- method: GET
name: artifactinspectlibpod
description: Inspect an artifact
call: podman-artifacts.artifactinspectlibpod
with:
name: rest.name
outputParameters:
- type: object
mapping: $.
- path: /v1/libpod/artifacts/{name}/push
name: libpod-artifacts-name-push
description: REST surface for libpod-artifacts-name-push.
operations:
- method: POST
name: artifactpushlibpod
description: Push an artifact
call: podman-artifacts.artifactpushlibpod
with:
name: rest.name
retry: rest.retry
retryDelay: rest.retryDelay
tlsVerify: rest.tlsVerify
X-Registry-Auth: rest.X-Registry-Auth
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: podman-artifacts-mcp
port: 9090
transport: http
description: MCP adapter for supports a RESTful API for the Libpod library — artifacts. One tool per consumed operation,
routed inline through this capability's consumes block.
tools:
- name: add-file-artifact
description: Add a file as an artifact
hints:
readOnly: false
destructive: false
idempotent: false
call: podman-artifacts.artifactaddlibpod
with:
name: tools.name
fileName: tools.fileName
fileMIMEType: tools.fileMIMEType
annotations: tools.annotations
artifactMIMEType: tools.artifactMIMEType
append: tools.append
replace: tools.replace
inputStream: tools.inputStream
outputParameters:
- type: object
mapping: $.
- name: list-artifacts
description: List artifacts
hints:
readOnly: true
destructive: false
idempotent: true
call: podman-artifacts.artifactlistlibpod
outputParameters:
- type: object
mapping: $.
- name: add-local-file-artifact
description: Add a local file as an artifact
hints:
readOnly: false
destructive: false
idempotent: false
call: podman-artifacts.artifactlocallibpod
with:
name: tools.name
path: tools.path
fileName: tools.fileName
fileMIMEType: tools.fileMIMEType
annotations: tools.annotations
artifactMIMEType: tools.artifactMIMEType
append: tools.append
replace: tools.replace
outputParameters:
- type: object
mapping: $.
- name: pull-artifact
description: Pull an artifact
hints:
readOnly: false
destructive: false
idempotent: false
call: podman-artifacts.artifactpulllibpod
with:
name: tools.name
retry: tools.retry
retryDelay: tools.retryDelay
tlsVerify: tools.tlsVerify
X-Registry-Auth: tools.X-Registry-Auth
outputParameters:
- type: object
mapping: $.
- name: remove-one-more-artifacts
description: Remove one or more artifacts
hints:
readOnly: false
destructive: true
idempotent: true
call: podman-artifacts.artifactdeletealllibpod
with:
artifacts: tools.artifacts
all: tools.all
ignore: tools.ignore
outputParameters:
- type: object
mapping: $.
- name: remove-artifact
description: Remove an artifact
hints:
readOnly: false
destructive: true
idempotent: true
call: podman-artifacts.artifactdeletelibpod
with:
name: tools.name
outputParameters:
- type: object
mapping: $.
- name: extract-artifacts-contents
description: Extract an artifacts contents
hints:
readOnly: true
destructive: false
idempotent: true
call: podman-artifacts.artifactextractlibpod
with:
name: tools.name
title: tools.title
digest: tools.digest
excludeTitle: tools.excludeTitle
outputParameters:
- type: object
mapping: $.
- name: inspect-artifact
description: Inspect an artifact
hints:
readOnly: true
destructive: false
idempotent: true
call: podman-artifacts.artifactinspectlibpod
with:
name: tools.name
outputParameters:
- type: object
mapping: $.
- name: push-artifact
description: Push an artifact
hints:
readOnly: false
destructive: false
idempotent: false
call: podman-artifacts.artifactpushlibpod
with:
name: tools.name
retry: tools.retry
retryDelay: tools.retryDelay
tlsVerify: tools.tlsVerify
X-Registry-Auth: tools.X-Registry-Auth
outputParameters:
- type: object
mapping: $.