Cloudflare · Capability

Cloudflare Stream API — Videos

Cloudflare Stream API — Videos. 6 operations. Lead operation: Cloudflare List Videos. Self-contained Naftiko capability covering one Cloudflare business surface.

Run with Naftiko CloudflareVideos

What You Can Do

GET
Liststreamvideos — Cloudflare List Videos
/v1/accounts/{account-id}/stream
POST
Uploadstreamvideo — Cloudflare Upload Video From Url
/v1/accounts/{account-id}/stream
POST
Createdirectupload — Cloudflare Create Direct Upload Url
/v1/accounts/{account-id}/stream/direct-upload
GET
Getstreamvideo — Cloudflare Get Video Details
/v1/accounts/{account-id}/stream/{video-id}
POST
Updatestreamvideo — Cloudflare Update Video
/v1/accounts/{account-id}/stream/{video-id}
DELETE
Deletestreamvideo — Cloudflare Delete Video
/v1/accounts/{account-id}/stream/{video-id}

MCP Tools

cloudflare-list-videos

Cloudflare List Videos

read-only idempotent
cloudflare-upload-video-url

Cloudflare Upload Video From Url

cloudflare-create-direct-upload-url

Cloudflare Create Direct Upload Url

cloudflare-get-video-details

Cloudflare Get Video Details

read-only idempotent
cloudflare-update-video

Cloudflare Update Video

cloudflare-delete-video

Cloudflare Delete Video

idempotent

Capability Spec

stream-videos.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Cloudflare Stream API — Videos
  description: 'Cloudflare Stream API — Videos. 6 operations. Lead operation: Cloudflare List Videos. Self-contained Naftiko
    capability covering one Cloudflare business surface.'
  tags:
  - Cloudflare
  - Videos
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    CLOUDFLARE_API_KEY: CLOUDFLARE_API_KEY
capability:
  consumes:
  - type: http
    namespace: stream-videos
    baseUri: https://api.cloudflare.com/client/v4
    description: Cloudflare Stream API — Videos business capability. Self-contained, no shared references.
    resources:
    - name: accounts-account_id-stream
      path: /accounts/{account_id}/stream
      operations:
      - name: liststreamvideos
        method: GET
        description: Cloudflare List Videos
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: status
          in: query
          type: string
          description: Filter by video status.
        - name: search
          in: query
          type: string
          description: Search videos by name.
      - name: uploadstreamvideo
        method: POST
        description: Cloudflare Upload Video From Url
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: accounts-account_id-stream-direct_upload
      path: /accounts/{account_id}/stream/direct_upload
      operations:
      - name: createdirectupload
        method: POST
        description: Cloudflare Create Direct Upload Url
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: accounts-account_id-stream-video_id
      path: /accounts/{account_id}/stream/{video_id}
      operations:
      - name: getstreamvideo
        method: GET
        description: Cloudflare Get Video Details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatestreamvideo
        method: POST
        description: Cloudflare Update Video
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletestreamvideo
        method: DELETE
        description: Cloudflare Delete Video
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      token: '{{env.CLOUDFLARE_API_KEY}}'
  exposes:
  - type: rest
    namespace: stream-videos-rest
    port: 8080
    description: REST adapter for Cloudflare Stream API — Videos. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/accounts/{account-id}/stream
      name: accounts-account-id-stream
      description: REST surface for accounts-account_id-stream.
      operations:
      - method: GET
        name: liststreamvideos
        description: Cloudflare List Videos
        call: stream-videos.liststreamvideos
        with:
          status: rest.status
          search: rest.search
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: uploadstreamvideo
        description: Cloudflare Upload Video From Url
        call: stream-videos.uploadstreamvideo
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{account-id}/stream/direct-upload
      name: accounts-account-id-stream-direct-upload
      description: REST surface for accounts-account_id-stream-direct_upload.
      operations:
      - method: POST
        name: createdirectupload
        description: Cloudflare Create Direct Upload Url
        call: stream-videos.createdirectupload
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{account-id}/stream/{video-id}
      name: accounts-account-id-stream-video-id
      description: REST surface for accounts-account_id-stream-video_id.
      operations:
      - method: GET
        name: getstreamvideo
        description: Cloudflare Get Video Details
        call: stream-videos.getstreamvideo
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updatestreamvideo
        description: Cloudflare Update Video
        call: stream-videos.updatestreamvideo
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletestreamvideo
        description: Cloudflare Delete Video
        call: stream-videos.deletestreamvideo
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: stream-videos-mcp
    port: 9090
    transport: http
    description: MCP adapter for Cloudflare Stream API — Videos. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: cloudflare-list-videos
      description: Cloudflare List Videos
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: stream-videos.liststreamvideos
      with:
        status: tools.status
        search: tools.search
      outputParameters:
      - type: object
        mapping: $.
    - name: cloudflare-upload-video-url
      description: Cloudflare Upload Video From Url
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: stream-videos.uploadstreamvideo
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: cloudflare-create-direct-upload-url
      description: Cloudflare Create Direct Upload Url
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: stream-videos.createdirectupload
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: cloudflare-get-video-details
      description: Cloudflare Get Video Details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: stream-videos.getstreamvideo
      outputParameters:
      - type: object
        mapping: $.
    - name: cloudflare-update-video
      description: Cloudflare Update Video
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: stream-videos.updatestreamvideo
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: cloudflare-delete-video
      description: Cloudflare Delete Video
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: stream-videos.deletestreamvideo
      outputParameters:
      - type: object
        mapping: $.