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.

Run with Naftiko Podmanartifacts

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

podman-artifacts.yaml Raw ↑
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: $.