naftiko: 1.0.0-alpha2 info: label: Adafruit IO REST API — Groups description: 'Adafruit IO Groups — bundle feeds for batch reads/writes and shared ACL. Self-contained Naftiko capability covering the groups business surface.' tags: - Adafruit IO - Groups - IoT created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: ADAFRUIT_IO_USERNAME: ADAFRUIT_IO_USERNAME ADAFRUIT_IO_KEY: ADAFRUIT_IO_KEY capability: consumes: - type: http namespace: adafruit-io-groups baseUri: https://io.adafruit.com/api/v2 description: Adafruit IO Groups REST surface. resources: - name: groups path: /{username}/groups operations: - name: listgroups method: GET description: List All Groups for the Authenticated User outputRawFormat: json outputParameters: - name: result type: array value: $. - name: creategroup method: POST description: Create a New Group outputRawFormat: json inputParameters: - name: body in: body type: object required: true outputParameters: - name: result type: object value: $. - name: groups-group_key path: /{username}/groups/{group_key} operations: - name: getgroup method: GET description: Get a Group by Key or ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updategroup method: PUT description: Replace a Group (PUT) outputRawFormat: json inputParameters: - name: body in: body type: object required: true outputParameters: - name: result type: object value: $. - name: patchgroup method: PATCH description: Partially Update a Group outputRawFormat: json inputParameters: - name: body in: body type: object required: true outputParameters: - name: result type: object value: $. - name: deletegroup method: DELETE description: Delete a Group outputRawFormat: json outputParameters: - name: result type: object value: $. - name: groups-group_key-add path: /{username}/groups/{group_key}/add operations: - name: addfeedtogroup method: POST description: Add a Feed to a Group outputRawFormat: json inputParameters: - name: body in: body type: object required: true description: '{ "feed_key": "..." }' outputParameters: - name: result type: object value: $. - name: groups-group_key-remove path: /{username}/groups/{group_key}/remove operations: - name: removefeedfromgroup method: POST description: Remove a Feed from a Group outputRawFormat: json inputParameters: - name: body in: body type: object required: true outputParameters: - name: result type: object value: $. - name: groups-group_key-data path: /{username}/groups/{group_key}/data operations: - name: creategroupdata method: POST description: Create Data on Multiple Feeds in a Group in One Request outputRawFormat: json inputParameters: - name: body in: body type: object required: true description: '{ "feeds": [{ "key": "...", "value": ... }, ...] }' outputParameters: - name: result type: array value: $. authentication: type: apikey key: X-AIO-Key value: '{{env.ADAFRUIT_IO_KEY}}' placement: header exposes: - type: mcp namespace: adafruit-io-groups-mcp port: 9090 transport: http description: MCP adapter exposing one tool per Adafruit IO Groups operation. tools: - name: adafruit-io-list-groups description: List All Groups hints: readOnly: true destructive: false idempotent: true call: adafruit-io-groups.listgroups outputParameters: - type: array mapping: $. - name: adafruit-io-create-group description: Create a New Group hints: readOnly: false destructive: false idempotent: false call: adafruit-io-groups.creategroup with: body: tools.body outputParameters: - type: object mapping: $. - name: adafruit-io-get-group description: Get a Group by Key or ID hints: readOnly: true destructive: false idempotent: true call: adafruit-io-groups.getgroup outputParameters: - type: object mapping: $. - name: adafruit-io-update-group description: Replace a Group hints: readOnly: false destructive: false idempotent: true call: adafruit-io-groups.updategroup with: body: tools.body outputParameters: - type: object mapping: $. - name: adafruit-io-delete-group description: Delete a Group hints: readOnly: false destructive: true idempotent: true call: adafruit-io-groups.deletegroup outputParameters: - type: object mapping: $. - name: adafruit-io-add-feed-to-group description: Add a Feed to a Group hints: readOnly: false destructive: false idempotent: true call: adafruit-io-groups.addfeedtogroup with: body: tools.body outputParameters: - type: object mapping: $. - name: adafruit-io-remove-feed-from-group description: Remove a Feed from a Group hints: readOnly: false destructive: false idempotent: true call: adafruit-io-groups.removefeedfromgroup with: body: tools.body outputParameters: - type: object mapping: $. - name: adafruit-io-create-group-data description: Create Data on Multiple Feeds in a Group hints: readOnly: false destructive: false idempotent: false call: adafruit-io-groups.creategroupdata with: body: tools.body outputParameters: - type: array mapping: $.