naftiko: 1.0.0-alpha2 info: label: Miro Developer Platform — groups description: 'Miro Developer Platform — groups. 7 operations. Lead operation: Create group. Self-contained Naftiko capability covering one Miro business surface.' tags: - Miro - groups created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MIRO_API_KEY: MIRO_API_KEY capability: consumes: - type: http namespace: miro-groups baseUri: https://api.miro.com description: Miro Developer Platform — groups business capability. Self-contained, no shared references. resources: - name: v2-boards-board_id-groups path: /v2/boards/{board_id}/groups operations: - name: creategroup method: POST description: Create group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: board_id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: getallgroups method: GET description: Get all groups on a board outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: board_id in: path type: string description: Unique identifier (ID) of the board. required: true - name: limit in: query type: integer description: The maximum number of items to return at one time, default is 10, maximum is 50. - name: cursor in: query type: string - name: v2-boards-board_id-groups-items path: /v2/boards/{board_id}/groups/items operations: - name: getitemsbygroupid method: GET description: Get items of a group by ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: board_id in: path type: string description: Unique identifier (ID) of the board. required: true - name: limit in: query type: integer description: The maximum number of items to return at one time, default is 10, maximum is 50. - name: cursor in: query type: string - name: group_item_id in: query type: string description: The ID of the group item to retrieve. required: true - name: v2-boards-board_id-groups-group_id path: /v2/boards/{board_id}/groups/{group_id} operations: - name: getgroupbyid method: GET description: Get a group by its ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: board_id in: path type: string description: Unique identifier (ID) of the board. required: true - name: group_id in: path type: string description: Unique identifier (ID) of the group. required: true - name: ungroup method: DELETE description: Ungroup items outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: board_id in: path type: string description: Unique identifier (ID) of the board. required: true - name: group_id in: path type: string description: Unique identifier (ID) of the group. required: true - name: delete_items in: query type: boolean description: Indicates whether the items should be removed. By default, false. - name: updategroup method: PUT description: Updates a group with new items outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: board_id in: path type: string description: Unique identifier (ID) of the board. required: true - name: group_id in: path type: string description: Unique identifier (ID) of the group. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v2-boards-board_id-groups-group_id}? path: /v2/boards/{board_id}/groups/{group_id}? operations: - name: deletegroup method: DELETE description: Deletes the group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: board_id in: path type: string description: Unique identifier (ID) of the board. required: true - name: group_id in: path type: string description: Unique identifier (ID) of the group. required: true - name: delete_items in: query type: boolean description: Indicates whether the items should be removed. Set to `true` to delete items in the group. required: true authentication: type: bearer token: '{{env.MIRO_API_KEY}}' exposes: - type: rest namespace: miro-groups-rest port: 8080 description: REST adapter for Miro Developer Platform — groups. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v2/boards/{board-id}/groups name: v2-boards-board-id-groups description: REST surface for v2-boards-board_id-groups. operations: - method: POST name: creategroup description: Create group call: miro-groups.creategroup with: board_id: rest.board_id body: rest.body outputParameters: - type: object mapping: $. - method: GET name: getallgroups description: Get all groups on a board call: miro-groups.getallgroups with: board_id: rest.board_id limit: rest.limit cursor: rest.cursor outputParameters: - type: object mapping: $. - path: /v1/v2/boards/{board-id}/groups/items name: v2-boards-board-id-groups-items description: REST surface for v2-boards-board_id-groups-items. operations: - method: GET name: getitemsbygroupid description: Get items of a group by ID call: miro-groups.getitemsbygroupid with: board_id: rest.board_id limit: rest.limit cursor: rest.cursor group_item_id: rest.group_item_id outputParameters: - type: object mapping: $. - path: /v1/v2/boards/{board-id}/groups/{group-id} name: v2-boards-board-id-groups-group-id description: REST surface for v2-boards-board_id-groups-group_id. operations: - method: GET name: getgroupbyid description: Get a group by its ID call: miro-groups.getgroupbyid with: board_id: rest.board_id group_id: rest.group_id outputParameters: - type: object mapping: $. - method: DELETE name: ungroup description: Ungroup items call: miro-groups.ungroup with: board_id: rest.board_id group_id: rest.group_id delete_items: rest.delete_items outputParameters: - type: object mapping: $. - method: PUT name: updategroup description: Updates a group with new items call: miro-groups.updategroup with: board_id: rest.board_id group_id: rest.group_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v2/boards/{board-id}/groups/group-id name: v2-boards-board-id-groups-group-id description: REST surface for v2-boards-board_id-groups-group_id}?. operations: - method: DELETE name: deletegroup description: Deletes the group call: miro-groups.deletegroup with: board_id: rest.board_id group_id: rest.group_id delete_items: rest.delete_items outputParameters: - type: object mapping: $. - type: mcp namespace: miro-groups-mcp port: 9090 transport: http description: MCP adapter for Miro Developer Platform — groups. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-group description: Create group hints: readOnly: false destructive: false idempotent: false call: miro-groups.creategroup with: board_id: tools.board_id body: tools.body outputParameters: - type: object mapping: $. - name: get-all-groups-board description: Get all groups on a board hints: readOnly: true destructive: false idempotent: true call: miro-groups.getallgroups with: board_id: tools.board_id limit: tools.limit cursor: tools.cursor outputParameters: - type: object mapping: $. - name: get-items-group-id description: Get items of a group by ID hints: readOnly: true destructive: false idempotent: true call: miro-groups.getitemsbygroupid with: board_id: tools.board_id limit: tools.limit cursor: tools.cursor group_item_id: tools.group_item_id outputParameters: - type: object mapping: $. - name: get-group-its-id description: Get a group by its ID hints: readOnly: true destructive: false idempotent: true call: miro-groups.getgroupbyid with: board_id: tools.board_id group_id: tools.group_id outputParameters: - type: object mapping: $. - name: ungroup-items description: Ungroup items hints: readOnly: false destructive: true idempotent: true call: miro-groups.ungroup with: board_id: tools.board_id group_id: tools.group_id delete_items: tools.delete_items outputParameters: - type: object mapping: $. - name: updates-group-new-items description: Updates a group with new items hints: readOnly: false destructive: false idempotent: true call: miro-groups.updategroup with: board_id: tools.board_id group_id: tools.group_id body: tools.body outputParameters: - type: object mapping: $. - name: deletes-group description: Deletes the group hints: readOnly: false destructive: true idempotent: true call: miro-groups.deletegroup with: board_id: tools.board_id group_id: tools.group_id delete_items: tools.delete_items outputParameters: - type: object mapping: $.