Colour names instead of hex codes, a floor of 10 on `get_board_items`, no height on text items, and a cap of 20 per bulk request. Those constraints are the vendor's own words and they decide how the calls get written: `create_sticky_note` and `create_tag` want predefined colour names and reject hex, `create_text` supports width but not height because the Miro API does not, and `get_board_items` will not accept a limit below 10. The bulk calls are described as sequential API calls behind a single tool, so batching saves round trips to this server rather than requests to Miro. `create_connector` needs its start and end items on the board already, which forces item creation to complete before any arrow is drawn. `create_webhook` is marked experimental, which is the one place here worth treating as provisional.
A Miro board server: it lists, creates, copies and deletes boards, creates and updates the items on them, groups and tags those items, searches a board by text, and subscribes to board events.
- Board lifecycle: `list_boards` with an optional `query` filter and `teamId`, plus `get_board`, `create_board`, `update_board`, `copy_board` and `delete_board`.
- Item creation across the Miro types: `create_sticky_note`, `create_text`, `create_shape`, `create_card`, `create_frame`, `create_image` and `create_document` from a URL, `create_embed` for embedded content, and `create_connector` between items already on the board, with an optional `caption`.
- Reading the canvas: `get_board_items` filtered by `type` and `parentItemId`, `get_item` for one item's detail, `get_frames`, `get_items_in_frame`, and `search_items` by content or text.
- Batched writes capped at 20 per request: `bulk_create_items`, `bulk_update_items`, `bulk_delete_items` and `bulk_create_connectors`.
- Organisation on the board: `create_group` for existing items, `get_tags`, `create_tag`, `attach_tag_to_item` and `remove_tag_from_item`.
- Collaboration: `get_board_members` returns everyone with access, and `share_board_with_user` invites by `email` with a `role` and an optional `message`.
- Event subscriptions: `create_webhook` for board events against a `callbackUrl`, and `get_webhooks` to list what is subscribed.
A Miro OAuth token with access to the boards you intend to touch, supplied as MIRO_OAUTH_TOKEN.
One command plus a key — npm install @aditya.mishra/miro-mcp, then supply credentials
