naftiko: 1.0.0-alpha2 info: label: Reolink Camera HTTP API — Network description: 'Reolink Camera HTTP API — Network. 10 operations. Lead operation: Get DDNS settings. Self-contained Naftiko capability covering one Reolink business surface.' tags: - Reolink - Network created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: REOLINK_API_KEY: REOLINK_API_KEY capability: consumes: - type: http namespace: camera-network baseUri: https://{camera_ip} description: Reolink Camera HTTP API — Network business capability. Self-contained, no shared references. resources: - name: cgi-bin-api.cgi?cmd=GetDdns&token={token} path: /cgi-bin/api.cgi?cmd=GetDdns&token={token} operations: - name: getddns method: POST description: Get DDNS 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=GetEmail&token={token} path: /cgi-bin/api.cgi?cmd=GetEmail&token={token} operations: - name: getemail method: POST description: Get email notification 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=GetFtp&token={token} path: /cgi-bin/api.cgi?cmd=GetFtp&token={token} operations: - name: getftp method: POST description: Get FTP upload 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=GetLocalLink&token={token} path: /cgi-bin/api.cgi?cmd=GetLocalLink&token={token} operations: - name: getlocallink method: POST description: Get local network link 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=GetNetPort&token={token} path: /cgi-bin/api.cgi?cmd=GetNetPort&token={token} operations: - name: getnetport method: POST description: Get network port configuration 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=GetNtp&token={token} path: /cgi-bin/api.cgi?cmd=GetNtp&token={token} operations: - name: getntp method: POST description: Get NTP 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=GetPush&token={token} path: /cgi-bin/api.cgi?cmd=GetPush&token={token} operations: - name: getpush method: POST description: Get push notification 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=GetUpnp&token={token} path: /cgi-bin/api.cgi?cmd=GetUpnp&token={token} operations: - name: getupnp method: POST description: Get UPnP 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=GetWifi&token={token} path: /cgi-bin/api.cgi?cmd=GetWifi&token={token} operations: - name: getwifi method: POST description: Get WiFi configuration 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=SetNetPort&token={token} path: /cgi-bin/api.cgi?cmd=SetNetPort&token={token} operations: - name: setnetport method: POST description: Set network port configuration 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-network-rest port: 8080 description: REST adapter for Reolink Camera HTTP API — Network. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/cgi-bin/api-cgi-cmd-getddns-token-token name: cgi-bin-api-cgi-cmd-getddns-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetDdns&token={token}. operations: - method: POST name: getddns description: Get DDNS settings call: camera-network.getddns with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getemail-token-token name: cgi-bin-api-cgi-cmd-getemail-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetEmail&token={token}. operations: - method: POST name: getemail description: Get email notification settings call: camera-network.getemail with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getftp-token-token name: cgi-bin-api-cgi-cmd-getftp-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetFtp&token={token}. operations: - method: POST name: getftp description: Get FTP upload settings call: camera-network.getftp with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getlocallink-token-token name: cgi-bin-api-cgi-cmd-getlocallink-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetLocalLink&token={token}. operations: - method: POST name: getlocallink description: Get local network link settings call: camera-network.getlocallink with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getnetport-token-token name: cgi-bin-api-cgi-cmd-getnetport-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetNetPort&token={token}. operations: - method: POST name: getnetport description: Get network port configuration call: camera-network.getnetport with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getntp-token-token name: cgi-bin-api-cgi-cmd-getntp-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetNtp&token={token}. operations: - method: POST name: getntp description: Get NTP settings call: camera-network.getntp with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getpush-token-token name: cgi-bin-api-cgi-cmd-getpush-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetPush&token={token}. operations: - method: POST name: getpush description: Get push notification settings call: camera-network.getpush with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getupnp-token-token name: cgi-bin-api-cgi-cmd-getupnp-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetUpnp&token={token}. operations: - method: POST name: getupnp description: Get UPnP settings call: camera-network.getupnp with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-getwifi-token-token name: cgi-bin-api-cgi-cmd-getwifi-token-token description: REST surface for cgi-bin-api.cgi?cmd=GetWifi&token={token}. operations: - method: POST name: getwifi description: Get WiFi configuration call: camera-network.getwifi with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/cgi-bin/api-cgi-cmd-setnetport-token-token name: cgi-bin-api-cgi-cmd-setnetport-token-token description: REST surface for cgi-bin-api.cgi?cmd=SetNetPort&token={token}. operations: - method: POST name: setnetport description: Set network port configuration call: camera-network.setnetport with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: camera-network-mcp port: 9090 transport: http description: MCP adapter for Reolink Camera HTTP API — Network. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-ddns-settings description: Get DDNS settings hints: readOnly: true destructive: false idempotent: false call: camera-network.getddns with: body: tools.body outputParameters: - type: object mapping: $. - name: get-email-notification-settings description: Get email notification settings hints: readOnly: true destructive: false idempotent: false call: camera-network.getemail with: body: tools.body outputParameters: - type: object mapping: $. - name: get-ftp-upload-settings description: Get FTP upload settings hints: readOnly: true destructive: false idempotent: false call: camera-network.getftp with: body: tools.body outputParameters: - type: object mapping: $. - name: get-local-network-link-settings description: Get local network link settings hints: readOnly: true destructive: false idempotent: false call: camera-network.getlocallink with: body: tools.body outputParameters: - type: object mapping: $. - name: get-network-port-configuration description: Get network port configuration hints: readOnly: true destructive: false idempotent: false call: camera-network.getnetport with: body: tools.body outputParameters: - type: object mapping: $. - name: get-ntp-settings description: Get NTP settings hints: readOnly: true destructive: false idempotent: false call: camera-network.getntp with: body: tools.body outputParameters: - type: object mapping: $. - name: get-push-notification-settings description: Get push notification settings hints: readOnly: true destructive: false idempotent: false call: camera-network.getpush with: body: tools.body outputParameters: - type: object mapping: $. - name: get-upnp-settings description: Get UPnP settings hints: readOnly: true destructive: false idempotent: false call: camera-network.getupnp with: body: tools.body outputParameters: - type: object mapping: $. - name: get-wifi-configuration description: Get WiFi configuration hints: readOnly: true destructive: false idempotent: false call: camera-network.getwifi with: body: tools.body outputParameters: - type: object mapping: $. - name: set-network-port-configuration description: Set network port configuration hints: readOnly: false destructive: false idempotent: false call: camera-network.setnetport with: body: tools.body outputParameters: - type: object mapping: $.