Miro · Capability

Miro Developer Platform — tags

Miro Developer Platform — tags. 9 operations. Lead operation: Get items by tag. Self-contained Naftiko capability covering one Miro business surface.

Run with Naftiko Mirotags

What You Can Do

GET
Getitemsbytag — Get items by tag
/v1/v2/boards/{board-id-platformtags}/items
POST
Attachtagtoitem — Attach tag to item
/v1/v2/boards/{board-id-platformtags}/items/{item-id}
DELETE
Removetagfromitem — Remove tag from item
/v1/v2/boards/{board-id-platformtags}/items/{item-id}
GET
Gettagsfromitem — Get tags from item
/v1/v2/boards/{board-id}/items/{item-id}/tags
POST
Createtag — Create tag
/v1/v2/boards/{board-id}/tags
GET
Gettagsfromboard — Get tags from board
/v1/v2/boards/{board-id}/tags
GET
Gettag — Get tag
/v1/v2/boards/{board-id}/tags/{tag-id}
PATCH
Updatetag — Update tag
/v1/v2/boards/{board-id}/tags/{tag-id}
DELETE
Deletetag — Delete tag
/v1/v2/boards/{board-id}/tags/{tag-id}

MCP Tools

get-items-tag

Get items by tag

read-only idempotent
attach-tag-item

Attach tag to item

remove-tag-item

Remove tag from item

idempotent
get-tags-item

Get tags from item

read-only idempotent
create-tag

Create tag

get-tags-board

Get tags from board

read-only idempotent
get-tag

Get tag

read-only idempotent
update-tag

Update tag

idempotent
delete-tag

Delete tag

idempotent

Capability Spec

miro-tags.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Miro Developer Platform — tags
  description: 'Miro Developer Platform — tags. 9 operations. Lead operation: Get items by tag. Self-contained Naftiko capability
    covering one Miro business surface.'
  tags:
  - Miro
  - tags
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    MIRO_API_KEY: MIRO_API_KEY
capability:
  consumes:
  - type: http
    namespace: miro-tags
    baseUri: https://api.miro.com
    description: Miro Developer Platform — tags business capability. Self-contained, no shared references.
    resources:
    - name: v2-boards-board_id_PlatformTags-items
      path: /v2/boards/{board_id_PlatformTags}/items
      operations:
      - name: getitemsbytag
        method: GET
        description: Get items by tag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: string
        - name: offset
          in: query
          type: string
        - name: board_id_PlatformTags
          in: path
          type: string
          description: Unique identifier (ID) of the board where you want to retrieve a specific tag.
          required: true
        - name: tag_id
          in: query
          type: string
          description: Unique identifier (ID) of the tag that you want to retrieve.
          required: true
    - name: v2-boards-board_id_PlatformTags-items-item_id
      path: /v2/boards/{board_id_PlatformTags}/items/{item_id}
      operations:
      - name: attachtagtoitem
        method: POST
        description: Attach tag to item
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: board_id_PlatformTags
          in: path
          type: string
          description: Unique identifier (ID) of the board with the item that you want to add a tag to.
          required: true
        - name: item_id
          in: path
          type: string
          description: Unique identifier (ID) of the item to which you want to add a tag.
          required: true
        - name: tag_id
          in: query
          type: string
          description: Unique identifier (ID) of the tag you want to add to the item.
          required: true
      - name: removetagfromitem
        method: DELETE
        description: Remove tag from item
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: board_id_PlatformTags
          in: path
          type: string
          description: Unique identifier (ID) of the board with the item that you want to remove a tag from.
          required: true
        - name: item_id
          in: path
          type: string
          description: Unique identifier (ID) of the item that you want to remove the tag from.
          required: true
        - name: tag_id
          in: query
          type: string
          description: Unique identifier (ID) of the tag that you want to remove from the item.
          required: true
    - name: v2-boards-board_id-items-item_id-tags
      path: /v2/boards/{board_id}/items/{item_id}/tags
      operations:
      - name: gettagsfromitem
        method: GET
        description: Get tags from item
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: board_id
          in: path
          type: string
          description: Unique identifier (ID) of the board with the item whose tags you want to retrieve.
          required: true
        - name: item_id
          in: path
          type: string
          description: Unique identifier (ID) of the item whose tags you want to retrieve.
          required: true
    - name: v2-boards-board_id-tags
      path: /v2/boards/{board_id}/tags
      operations:
      - name: createtag
        method: POST
        description: Create tag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: board_id
          in: path
          type: string
          description: Unique identifier (ID) of the board where you want to create the tag.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: gettagsfromboard
        method: GET
        description: Get tags from board
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: string
        - name: offset
          in: query
          type: string
        - name: board_id
          in: path
          type: string
          description: Unique identifier (ID) of the board whose tags you want to retrieve.
          required: true
    - name: v2-boards-board_id-tags-tag_id
      path: /v2/boards/{board_id}/tags/{tag_id}
      operations:
      - name: gettag
        method: GET
        description: Get tag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: board_id
          in: path
          type: string
          description: Unique identifier (ID) of the board where you want to retrieve a specific tag.
          required: true
        - name: tag_id
          in: path
          type: string
          description: Unique identifier (ID) of the tag that you want to retrieve.
          required: true
      - name: updatetag
        method: PATCH
        description: Update tag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: board_id
          in: path
          type: string
          description: Unique identifier (ID) of the board where you want to update a specific tag.
          required: true
        - name: tag_id
          in: path
          type: string
          description: Unique identifier (ID) of the tag that you want to update.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletetag
        method: DELETE
        description: Delete tag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: board_id
          in: path
          type: string
          description: Unique identifier (ID) of the board where you want to delete a specific tag.
          required: true
        - name: tag_id
          in: path
          type: string
          description: Unique identifier (ID) of the tag that you want to delete.
          required: true
    authentication:
      type: bearer
      token: '{{env.MIRO_API_KEY}}'
  exposes:
  - type: rest
    namespace: miro-tags-rest
    port: 8080
    description: REST adapter for Miro Developer Platform — tags. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/v2/boards/{board-id-platformtags}/items
      name: v2-boards-board-id-platformtags-items
      description: REST surface for v2-boards-board_id_PlatformTags-items.
      operations:
      - method: GET
        name: getitemsbytag
        description: Get items by tag
        call: miro-tags.getitemsbytag
        with:
          limit: rest.limit
          offset: rest.offset
          board_id_PlatformTags: rest.board_id_PlatformTags
          tag_id: rest.tag_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v2/boards/{board-id-platformtags}/items/{item-id}
      name: v2-boards-board-id-platformtags-items-item-id
      description: REST surface for v2-boards-board_id_PlatformTags-items-item_id.
      operations:
      - method: POST
        name: attachtagtoitem
        description: Attach tag to item
        call: miro-tags.attachtagtoitem
        with:
          board_id_PlatformTags: rest.board_id_PlatformTags
          item_id: rest.item_id
          tag_id: rest.tag_id
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removetagfromitem
        description: Remove tag from item
        call: miro-tags.removetagfromitem
        with:
          board_id_PlatformTags: rest.board_id_PlatformTags
          item_id: rest.item_id
          tag_id: rest.tag_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v2/boards/{board-id}/items/{item-id}/tags
      name: v2-boards-board-id-items-item-id-tags
      description: REST surface for v2-boards-board_id-items-item_id-tags.
      operations:
      - method: GET
        name: gettagsfromitem
        description: Get tags from item
        call: miro-tags.gettagsfromitem
        with:
          board_id: rest.board_id
          item_id: rest.item_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v2/boards/{board-id}/tags
      name: v2-boards-board-id-tags
      description: REST surface for v2-boards-board_id-tags.
      operations:
      - method: POST
        name: createtag
        description: Create tag
        call: miro-tags.createtag
        with:
          board_id: rest.board_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: gettagsfromboard
        description: Get tags from board
        call: miro-tags.gettagsfromboard
        with:
          limit: rest.limit
          offset: rest.offset
          board_id: rest.board_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v2/boards/{board-id}/tags/{tag-id}
      name: v2-boards-board-id-tags-tag-id
      description: REST surface for v2-boards-board_id-tags-tag_id.
      operations:
      - method: GET
        name: gettag
        description: Get tag
        call: miro-tags.gettag
        with:
          board_id: rest.board_id
          tag_id: rest.tag_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatetag
        description: Update tag
        call: miro-tags.updatetag
        with:
          board_id: rest.board_id
          tag_id: rest.tag_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletetag
        description: Delete tag
        call: miro-tags.deletetag
        with:
          board_id: rest.board_id
          tag_id: rest.tag_id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: miro-tags-mcp
    port: 9090
    transport: http
    description: MCP adapter for Miro Developer Platform — tags. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: get-items-tag
      description: Get items by tag
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: miro-tags.getitemsbytag
      with:
        limit: tools.limit
        offset: tools.offset
        board_id_PlatformTags: tools.board_id_PlatformTags
        tag_id: tools.tag_id
      outputParameters:
      - type: object
        mapping: $.
    - name: attach-tag-item
      description: Attach tag to item
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: miro-tags.attachtagtoitem
      with:
        board_id_PlatformTags: tools.board_id_PlatformTags
        item_id: tools.item_id
        tag_id: tools.tag_id
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-tag-item
      description: Remove tag from item
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: miro-tags.removetagfromitem
      with:
        board_id_PlatformTags: tools.board_id_PlatformTags
        item_id: tools.item_id
        tag_id: tools.tag_id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-tags-item
      description: Get tags from item
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: miro-tags.gettagsfromitem
      with:
        board_id: tools.board_id
        item_id: tools.item_id
      outputParameters:
      - type: object
        mapping: $.
    - name: create-tag
      description: Create tag
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: miro-tags.createtag
      with:
        board_id: tools.board_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-tags-board
      description: Get tags from board
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: miro-tags.gettagsfromboard
      with:
        limit: tools.limit
        offset: tools.offset
        board_id: tools.board_id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-tag
      description: Get tag
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: miro-tags.gettag
      with:
        board_id: tools.board_id
        tag_id: tools.tag_id
      outputParameters:
      - type: object
        mapping: $.
    - name: update-tag
      description: Update tag
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: miro-tags.updatetag
      with:
        board_id: tools.board_id
        tag_id: tools.tag_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-tag
      description: Delete tag
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: miro-tags.deletetag
      with:
        board_id: tools.board_id
        tag_id: tools.tag_id
      outputParameters:
      - type: object
        mapping: $.