Cumulocity · Capability

Cumulocity Device Bootstrap API — Credentials

Zero-touch onboarding — devices poll for credentials with their external ID and operators accept the registration request to bind a tenant-scoped user.

Cumulocity Device Bootstrap API — Credentials is a Naftiko capability published by Cumulocity, one of 31 capabilities the APIs.io network indexes for this provider. It bundles 2 operations.

The capability includes 1 read-only operation and 1 state-changing operation. Lead operation: List pending Cumulocity device registration requests. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Cumulocity, Bootstrap, and Device Onboarding.

Run with Naftiko CumulocityBootstrapDevice Onboarding

MCP Tools

cumulocity-list-registration-requests

List pending Cumulocity device registration requests.

read-only idempotent
cumulocity-accept-registration

Accept a pending Cumulocity device registration request, allowing the device to receive its credentials.

idempotent

Capability Spec

device-bootstrap-credentials.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Cumulocity Device Bootstrap API — Credentials
  description: Zero-touch onboarding — devices poll for credentials with their external ID and operators accept the registration request to bind a tenant-scoped user.
  tags: [Cumulocity, Bootstrap, Device Onboarding]
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
- namespace: env
  keys:
    C8Y_BASE_URL: C8Y_BASE_URL
    C8Y_BOOTSTRAP_USER: C8Y_BOOTSTRAP_USER
    C8Y_BOOTSTRAP_PASSWORD: C8Y_BOOTSTRAP_PASSWORD
    C8Y_USER: C8Y_USER
    C8Y_PASSWORD: C8Y_PASSWORD
capability:
  consumes:
  - type: http
    namespace: device-bootstrap-credentials
    baseUri: '{{env.C8Y_BASE_URL}}'
    resources:
    - name: device-credentials
      path: /devicecontrol/deviceCredentials
      operations:
      - name: requestdevicecredentials
        method: POST
        description: Request Device Credentials (Polled By The Device)
        inputParameters:
        - {name: body, in: body, type: object, required: true}
    - name: new-device-requests
      path: /devicecontrol/newDeviceRequests
      operations:
      - name: listnewdevicerequests
        method: GET
        description: List New Device Requests
      - name: createnewdevicerequest
        method: POST
        description: Create A New Device Request
        inputParameters:
        - {name: body, in: body, type: object, required: true}
    - name: new-device-request
      path: /devicecontrol/newDeviceRequests/{id}
      operations:
      - name: acceptnewdevicerequest
        method: PUT
        description: Accept Or Reject A New Device Request
        inputParameters:
        - {name: id, in: path, type: string, required: true}
        - {name: body, in: body, type: object, required: true}
    authentication:
      type: basic
      username: '{{env.C8Y_USER}}'
      password: '{{env.C8Y_PASSWORD}}'
  exposes:
  - type: mcp
    namespace: device-bootstrap-credentials-mcp
    port: 9090
    transport: http
    tools:
    - name: cumulocity-list-registration-requests
      description: List pending Cumulocity device registration requests.
      hints: {readOnly: true, destructive: false, idempotent: true}
      call: device-bootstrap-credentials.listnewdevicerequests
      with: {}
    - name: cumulocity-accept-registration
      description: Accept a pending Cumulocity device registration request, allowing the device to receive its credentials.
      hints: {readOnly: false, destructive: false, idempotent: true}
      call: device-bootstrap-credentials.acceptnewdevicerequest
      with: {id: tools.id, body: tools.body}