Golioth · Capability

Golioth Management API — OTA Firmware

Golioth Management API — OTA Firmware. Upload firmware artifacts, package them into releases, and roll out updates to devices or cohorts. Self-contained Naftiko capability.

Golioth Management API — OTA Firmware is a Naftiko capability published by Golioth, one of 9 capabilities the APIs.io network indexes for this provider. It bundles 5 operations.

The capability includes 3 read-only operations and 2 state-changing operations. Lead operation: Golioth List Firmware Artifacts. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Golioth, OTA, Firmware, and Releases.

Run with Naftiko GoliothOTAFirmwareReleases

MCP Tools

golioth-list-artifacts

Golioth List Firmware Artifacts

read-only idempotent
golioth-get-artifact

Golioth Get Firmware Artifact

read-only idempotent
golioth-delete-artifact

Golioth Delete Firmware Artifact

idempotent
golioth-list-releases

Golioth List Releases

read-only idempotent
golioth-create-release

Golioth Create Release

Capability Spec

management-ota.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Golioth Management API — OTA Firmware
  description: Golioth Management API — OTA Firmware. Upload firmware artifacts, package them into releases, and roll out updates to devices or cohorts. Self-contained Naftiko capability.
  tags:
    - Golioth
    - OTA
    - Firmware
    - Releases
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
  - namespace: env
    keys:
      GOLIOTH_API_KEY: GOLIOTH_API_KEY
capability:
  consumes:
    - type: http
      namespace: management-ota
      baseUri: https://api.golioth.io
      description: Golioth Management API — OTA Firmware business capability.
      resources:
        - name: v1-artifacts
          path: /v1/projects/{projectId}/artifacts
          operations:
            - name: listArtifacts
              method: GET
              description: Golioth List Firmware Artifacts
              outputRawFormat: json
              inputParameters:
                - name: projectId
                  in: path
                  type: string
                  required: true
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: v1-artifacts-by-id
          path: /v1/projects/{projectId}/artifacts/{artifactId}
          operations:
            - name: getArtifact
              method: GET
              description: Golioth Get Firmware Artifact
              outputRawFormat: json
              inputParameters:
                - name: projectId
                  in: path
                  type: string
                  required: true
                - name: artifactId
                  in: path
                  type: string
                  required: true
              outputParameters:
                - name: result
                  type: object
                  value: $.
            - name: deleteArtifact
              method: DELETE
              description: Golioth Delete Firmware Artifact
              outputRawFormat: json
              inputParameters:
                - name: projectId
                  in: path
                  type: string
                  required: true
                - name: artifactId
                  in: path
                  type: string
                  required: true
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: v1-releases
          path: /v1/projects/{projectId}/releases
          operations:
            - name: listReleases
              method: GET
              description: Golioth List Releases
              outputRawFormat: json
              inputParameters:
                - name: projectId
                  in: path
                  type: string
                  required: true
              outputParameters:
                - name: result
                  type: object
                  value: $.
            - name: createRelease
              method: POST
              description: Golioth Create Release
              outputRawFormat: json
              inputParameters:
                - name: projectId
                  in: path
                  type: string
                  required: true
                - name: body
                  in: body
                  type: object
                  required: true
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: v1-releases-by-id
          path: /v1/projects/{projectId}/releases/{releaseId}
          operations:
            - name: getRelease
              method: GET
              description: Golioth Get Release
              outputRawFormat: json
              inputParameters:
                - name: projectId
                  in: path
                  type: string
                  required: true
                - name: releaseId
                  in: path
                  type: string
                  required: true
              outputParameters:
                - name: result
                  type: object
                  value: $.
            - name: updateRelease
              method: PATCH
              description: Golioth Update Release
              outputRawFormat: json
              inputParameters:
                - name: projectId
                  in: path
                  type: string
                  required: true
                - name: releaseId
                  in: path
                  type: string
                  required: true
                - name: body
                  in: body
                  type: object
                  required: true
              outputParameters:
                - name: result
                  type: object
                  value: $.
            - name: deleteRelease
              method: DELETE
              description: Golioth Delete Release
              outputRawFormat: json
              inputParameters:
                - name: projectId
                  in: path
                  type: string
                  required: true
                - name: releaseId
                  in: path
                  type: string
                  required: true
              outputParameters:
                - name: result
                  type: object
                  value: $.
      authentication:
        type: apikey
        key: x-api-key
        value: '{{env.GOLIOTH_API_KEY}}'
        placement: header
  exposes:
    - type: mcp
      namespace: management-ota-mcp
      port: 9090
      transport: http
      description: MCP adapter for Golioth OTA Firmware capability.
      tools:
        - name: golioth-list-artifacts
          description: Golioth List Firmware Artifacts
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: management-ota.listArtifacts
          with:
            projectId: tools.projectId
          outputParameters:
            - type: object
              mapping: $.
        - name: golioth-get-artifact
          description: Golioth Get Firmware Artifact
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: management-ota.getArtifact
          with:
            projectId: tools.projectId
            artifactId: tools.artifactId
          outputParameters:
            - type: object
              mapping: $.
        - name: golioth-delete-artifact
          description: Golioth Delete Firmware Artifact
          hints:
            readOnly: false
            destructive: true
            idempotent: true
          call: management-ota.deleteArtifact
          with:
            projectId: tools.projectId
            artifactId: tools.artifactId
          outputParameters:
            - type: object
              mapping: $.
        - name: golioth-list-releases
          description: Golioth List Releases
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: management-ota.listReleases
          with:
            projectId: tools.projectId
          outputParameters:
            - type: object
              mapping: $.
        - name: golioth-create-release
          description: Golioth Create Release
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: management-ota.createRelease
          with:
            projectId: tools.projectId
            body: tools.body
          outputParameters:
            - type: object
              mapping: $.