Storyblok · Capability

Storyblok Management API — Assets

Storyblok Management API — Assets. 4 operations. Lead operation: List assets in a space. Self-contained Naftiko capability covering one Storyblok business surface.

Run with Naftiko StoryblokAssets

What You Can Do

GET
Listassets — List assets in a space
/v1/spaces/{space-id}/assets
POST
Signassetupload — Sign an asset upload
/v1/spaces/{space-id}/assets
GET
Getasset — Retrieve a single asset
/v1/spaces/{space-id}/assets/{asset-id}
DELETE
Deleteasset — Delete an asset
/v1/spaces/{space-id}/assets/{asset-id}

MCP Tools

list-assets-space

List assets in a space

read-only idempotent
sign-asset-upload

Sign an asset upload

retrieve-single-asset

Retrieve a single asset

read-only idempotent
delete-asset

Delete an asset

idempotent

Capability Spec

management-assets.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Storyblok Management API — Assets
  description: 'Storyblok Management API — Assets. 4 operations. Lead operation: List assets in a space. Self-contained Naftiko
    capability covering one Storyblok business surface.'
  tags:
  - Storyblok
  - Assets
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    STORYBLOK_API_KEY: STORYBLOK_API_KEY
capability:
  consumes:
  - type: http
    namespace: management-assets
    baseUri: https://mapi.storyblok.com/v1
    description: Storyblok Management API — Assets business capability. Self-contained, no shared references.
    resources:
    - name: spaces-space_id-assets
      path: /spaces/{space_id}/assets
      operations:
      - name: listassets
        method: GET
        description: List assets in a space
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: in_folder
          in: query
          type: integer
          description: Filter assets within a specific asset folder ID.
        - name: search
          in: query
          type: string
          description: Filter assets by filename using a partial text match.
        - name: content_type
          in: query
          type: string
          description: Filter assets by MIME type, such as image/jpeg or application/pdf.
      - name: signassetupload
        method: POST
        description: Sign an asset upload
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: spaces-space_id-assets-asset_id
      path: /spaces/{space_id}/assets/{asset_id}
      operations:
      - name: getasset
        method: GET
        description: Retrieve a single asset
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteasset
        method: DELETE
        description: Delete an asset
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      token: '{{env.STORYBLOK_API_KEY}}'
  exposes:
  - type: rest
    namespace: management-assets-rest
    port: 8080
    description: REST adapter for Storyblok Management API — Assets. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/spaces/{space-id}/assets
      name: spaces-space-id-assets
      description: REST surface for spaces-space_id-assets.
      operations:
      - method: GET
        name: listassets
        description: List assets in a space
        call: management-assets.listassets
        with:
          in_folder: rest.in_folder
          search: rest.search
          content_type: rest.content_type
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: signassetupload
        description: Sign an asset upload
        call: management-assets.signassetupload
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/spaces/{space-id}/assets/{asset-id}
      name: spaces-space-id-assets-asset-id
      description: REST surface for spaces-space_id-assets-asset_id.
      operations:
      - method: GET
        name: getasset
        description: Retrieve a single asset
        call: management-assets.getasset
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteasset
        description: Delete an asset
        call: management-assets.deleteasset
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: management-assets-mcp
    port: 9090
    transport: http
    description: MCP adapter for Storyblok Management API — Assets. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-assets-space
      description: List assets in a space
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: management-assets.listassets
      with:
        in_folder: tools.in_folder
        search: tools.search
        content_type: tools.content_type
      outputParameters:
      - type: object
        mapping: $.
    - name: sign-asset-upload
      description: Sign an asset upload
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: management-assets.signassetupload
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-single-asset
      description: Retrieve a single asset
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: management-assets.getasset
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-asset
      description: Delete an asset
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: management-assets.deleteasset
      outputParameters:
      - type: object
        mapping: $.