Adafruit IO · Capability

Adafruit IO REST API — Groups

Adafruit IO Groups — bundle feeds for batch reads/writes and shared ACL. Self-contained Naftiko capability covering the groups business surface.

Adafruit IO REST API — Groups is a Naftiko capability published by Adafruit IO, one of 9 capabilities the APIs.io network indexes for this provider. It bundles 8 operations.

The capability includes 2 read-only operations and 6 state-changing operations. Lead operation: List All Groups. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Adafruit IO, Groups, and IoT.

Run with Naftiko Adafruit IOGroupsIoT

MCP Tools

adafruit-io-list-groups

List All Groups

read-only idempotent
adafruit-io-create-group

Create a New Group

adafruit-io-get-group

Get a Group by Key or ID

read-only idempotent
adafruit-io-update-group

Replace a Group

idempotent
adafruit-io-delete-group

Delete a Group

idempotent
adafruit-io-add-feed-to-group

Add a Feed to a Group

idempotent
adafruit-io-remove-feed-from-group

Remove a Feed from a Group

idempotent
adafruit-io-create-group-data

Create Data on Multiple Feeds in a Group

Capability Spec

groups.yaml Raw ↑
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: $.