naftiko: 1.0.0-alpha2 info: label: Samsung SmartThings API — Devices description: 'Samsung SmartThings API — Devices. 5 operations. Lead operation: List Devices. Self-contained Naftiko capability covering one Samsung business surface.' tags: - Samsung - Devices created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SAMSUNG_API_KEY: SAMSUNG_API_KEY capability: consumes: - type: http namespace: smartthings-devices baseUri: https://api.smartthings.com/v1 description: Samsung SmartThings API — Devices business capability. Self-contained, no shared references. resources: - name: devices path: /devices operations: - name: listdevices method: GET description: List Devices outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: locationId in: query type: string description: Filter devices by location ID. - name: capabilityId in: query type: string description: Filter devices by SmartThings capability (e.g., switch, lock). - name: deviceId in: query type: array description: Filter by specific device IDs (repeatable). - name: max in: query type: integer description: Maximum number of devices to return (max 200). - name: pageToken in: query type: string description: Cursor token for pagination. - name: devices-deviceId path: /devices/{deviceId} operations: - name: getdevice method: GET description: Get Device outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deletedevice method: DELETE description: Delete Device outputRawFormat: json outputParameters: - name: result type: object value: $. - name: devices-deviceId-commands path: /devices/{deviceId}/commands operations: - name: executedevicecommands method: POST description: Execute Device Commands outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: devices-deviceId-status path: /devices/{deviceId}/status operations: - name: getdevicestatus method: GET description: Get Device Status outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.SAMSUNG_API_KEY}}' exposes: - type: rest namespace: smartthings-devices-rest port: 8080 description: REST adapter for Samsung SmartThings API — Devices. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/devices name: devices description: REST surface for devices. operations: - method: GET name: listdevices description: List Devices call: smartthings-devices.listdevices with: locationId: rest.locationId capabilityId: rest.capabilityId deviceId: rest.deviceId max: rest.max pageToken: rest.pageToken outputParameters: - type: object mapping: $. - path: /v1/devices/{deviceid} name: devices-deviceid description: REST surface for devices-deviceId. operations: - method: GET name: getdevice description: Get Device call: smartthings-devices.getdevice outputParameters: - type: object mapping: $. - method: DELETE name: deletedevice description: Delete Device call: smartthings-devices.deletedevice outputParameters: - type: object mapping: $. - path: /v1/devices/{deviceid}/commands name: devices-deviceid-commands description: REST surface for devices-deviceId-commands. operations: - method: POST name: executedevicecommands description: Execute Device Commands call: smartthings-devices.executedevicecommands with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/devices/{deviceid}/status name: devices-deviceid-status description: REST surface for devices-deviceId-status. operations: - method: GET name: getdevicestatus description: Get Device Status call: smartthings-devices.getdevicestatus outputParameters: - type: object mapping: $. - type: mcp namespace: smartthings-devices-mcp port: 9090 transport: http description: MCP adapter for Samsung SmartThings API — Devices. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-devices description: List Devices hints: readOnly: true destructive: false idempotent: true call: smartthings-devices.listdevices with: locationId: tools.locationId capabilityId: tools.capabilityId deviceId: tools.deviceId max: tools.max pageToken: tools.pageToken outputParameters: - type: object mapping: $. - name: get-device description: Get Device hints: readOnly: true destructive: false idempotent: true call: smartthings-devices.getdevice outputParameters: - type: object mapping: $. - name: delete-device description: Delete Device hints: readOnly: false destructive: true idempotent: true call: smartthings-devices.deletedevice outputParameters: - type: object mapping: $. - name: execute-device-commands description: Execute Device Commands hints: readOnly: false destructive: false idempotent: false call: smartthings-devices.executedevicecommands with: body: tools.body outputParameters: - type: object mapping: $. - name: get-device-status description: Get Device Status hints: readOnly: true destructive: false idempotent: true call: smartthings-devices.getdevicestatus outputParameters: - type: object mapping: $.