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: $.