naftiko: 1.0.0-alpha2 info: label: Reolink Camera HTTP API — System description: 'Reolink Camera HTTP API — System. 12 operations. Lead operation: Format storage drive. Self-contained Naftiko capability covering one Reolink business surface.' tags: - Reolink - System created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: REOLINK_API_KEY: REOLINK_API_KEY capability: consumes: - type: http namespace: camera-system baseUri: https://{camera_ip} description: Reolink Camera HTTP API — System business capability. Self-contained, no shared references. resources: - name: cgi-bin-api.cgi?cmd=FormatHdd&token={token} path: /cgi-bin/api.cgi?cmd=FormatHdd&token={token} operations: - name: formathdd method: POST description: Format storage drive outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=GetAbility&token={token} path: /cgi-bin/api.cgi?cmd=GetAbility&token={token} operations: - name: getability method: POST description: Get user abilities and permissions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=GetAutoMaint&token={token} path: /cgi-bin/api.cgi?cmd=GetAutoMaint&token={token} operations: - name: getautomaint method: POST description: Get automatic maintenance settings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=GetAutoUpgrade&token={token} path: /cgi-bin/api.cgi?cmd=GetAutoUpgrade&token={token} operations: - name: getautoupgrade method: POST description: Get auto upgrade settings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=GetChannelStatus&token={token} path: /cgi-bin/api.cgi?cmd=GetChannelStatus&token={token} operations: - name: getchannelstatus method: POST description: Get channel status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=GetDevInfo&token={token} path: /cgi-bin/api.cgi?cmd=GetDevInfo&token={token} operations: - name: getdevinfo method: POST description: Get device information outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=GetDevName&token={token} path: /cgi-bin/api.cgi?cmd=GetDevName&token={token} operations: - name: getdevname method: POST description: Get device name outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=GetHddInfo&token={token} path: /cgi-bin/api.cgi?cmd=GetHddInfo&token={token} operations: - name: gethddinfo method: POST description: Get storage information outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=GetTime&token={token} path: /cgi-bin/api.cgi?cmd=GetTime&token={token} operations: - name: gettime method: POST description: Get device time outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=Reboot&token={token} path: /cgi-bin/api.cgi?cmd=Reboot&token={token} operations: - name: reboot method: POST description: Reboot the device outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=SetDevName&token={token} path: /cgi-bin/api.cgi?cmd=SetDevName&token={token} operations: - name: setdevname method: POST description: Set device name outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: cgi-bin-api.cgi?cmd=SetTime&token={token} path: /cgi-bin/api.cgi?cmd=SetTime&token={token} operations: - name: settime method: POST description: Set device time outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: token value: '{{env.REOLINK_API_KEY}}' placement: query exposes: - type: rest namespace: camera-system-rest port: 8080 description: REST adapter for Reolink Camera HTTP API — System. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/cgi-bin/api-cgi-cmd-formathdd-token-token name: cgi-bin-api-cgi-cmd-formathdd-token-token description: REST surface for cgi-bin-api.cgi?cmd=FormatHdd&token={token}. operations: - method: POST name: formathdd description: Format storage drive call: camera-system.formathdd with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getability-token-token name: cgi-bin-api-cgi-cmd-getability-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetAbility&token={token}. operations: - method: POST name: getability description: Get user abilities and permissions call: camera-system.getability with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getautomaint-token-token name: cgi-bin-api-cgi-cmd-getautomaint-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetAutoMaint&token={token}. operations: - method: POST name: getautomaint description: Get automatic maintenance settings call: camera-system.getautomaint with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getautoupgrade-token-token name: cgi-bin-api-cgi-cmd-getautoupgrade-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetAutoUpgrade&token={token}. operations: - method: POST name: getautoupgrade description: Get auto upgrade settings call: camera-system.getautoupgrade with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getchannelstatus-token-token name: cgi-bin-api-cgi-cmd-getchannelstatus-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetChannelStatus&token={token}. operations: - method: POST name: getchannelstatus description: Get channel status call: camera-system.getchannelstatus with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getdevinfo-token-token name: cgi-bin-api-cgi-cmd-getdevinfo-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetDevInfo&token={token}. operations: - method: POST name: getdevinfo description: Get device information call: camera-system.getdevinfo with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getdevname-token-token name: cgi-bin-api-cgi-cmd-getdevname-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetDevName&token={token}. operations: - method: POST name: getdevname description: Get device name call: camera-system.getdevname with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-gethddinfo-token-token name: cgi-bin-api-cgi-cmd-gethddinfo-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetHddInfo&token={token}. operations: - method: POST name: gethddinfo description: Get storage information call: camera-system.gethddinfo with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-gettime-token-token name: cgi-bin-api-cgi-cmd-gettime-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetTime&token={token}. operations: - method: POST name: gettime description: Get device time call: camera-system.gettime with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-reboot-token-token name: cgi-bin-api-cgi-cmd-reboot-token-token description: REST surface for cgi-bin-api.cgi?cmd=Reboot&token={token}. operations: - method: POST name: reboot description: Reboot the device call: camera-system.reboot with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-setdevname-token-token name: cgi-bin-api-cgi-cmd-setdevname-token-token description: REST surface for cgi-bin-api.cgi?cmd=SetDevName&token={token}. operations: - method: POST name: setdevname description: Set device name call: camera-system.setdevname with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-settime-token-token name: cgi-bin-api-cgi-cmd-settime-token-token description: REST surface for cgi-bin-api.cgi?cmd=SetTime&token={token}. operations: - method: POST name: settime description: Set device time call: camera-system.settime with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: camera-system-mcp port: 9090 transport: http description: MCP adapter for Reolink Camera HTTP API — System. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: format-storage-drive description: Format storage drive hints: readOnly: false destructive: false idempotent: false call: camera-system.formathdd with: body: tools.body outputParameters: - type: object mapping: $. - name: get-user-abilities-and-permissions description: Get user abilities and permissions hints: readOnly: true destructive: false idempotent: false call: camera-system.getability with: body: tools.body outputParameters: - type: object mapping: $. - name: get-automatic-maintenance-settings description: Get automatic maintenance settings hints: readOnly: true destructive: false idempotent: false call: camera-system.getautomaint with: body: tools.body outputParameters: - type: object mapping: $. - name: get-auto-upgrade-settings description: Get auto upgrade settings hints: readOnly: true destructive: false idempotent: false call: camera-system.getautoupgrade with: body: tools.body outputParameters: - type: object mapping: $. - name: get-channel-status description: Get channel status hints: readOnly: true destructive: false idempotent: false call: camera-system.getchannelstatus with: body: tools.body outputParameters: - type: object mapping: $. - name: get-device-information description: Get device information hints: readOnly: true destructive: false idempotent: false call: camera-system.getdevinfo with: body: tools.body outputParameters: - type: object mapping: $. - name: get-device-name description: Get device name hints: readOnly: true destructive: false idempotent: false call: camera-system.getdevname with: body: tools.body outputParameters: - type: object mapping: $. - name: get-storage-information description: Get storage information hints: readOnly: true destructive: false idempotent: false call: camera-system.gethddinfo with: body: tools.body outputParameters: - type: object mapping: $. - name: get-device-time description: Get device time hints: readOnly: true destructive: false idempotent: false call: camera-system.gettime with: body: tools.body outputParameters: - type: object mapping: $. - name: reboot-device description: Reboot the device hints: readOnly: false destructive: false idempotent: false call: camera-system.reboot with: body: tools.body outputParameters: - type: object mapping: $. - name: set-device-name description: Set device name hints: readOnly: false destructive: false idempotent: false call: camera-system.setdevname with: body: tools.body outputParameters: - type: object mapping: $. - name: set-device-time description: Set device time hints: readOnly: false destructive: false idempotent: false call: camera-system.settime with: body: tools.body outputParameters: - type: object mapping: $.