LabscoMCP early access ↗
thescriptedsoulsMCP SERVER

Comprehensive Miro MCP Server

Build and edit Miro boards from an agent — sticky notes, shapes, cards, frames, connectors and tags — and read back what is already on the canvas.

by thescriptedsouls ↗Diagrams & ChartsCommunity

LABSCO SUMMARY

The tool descriptions carry the API's sharp edges rather than hiding them.

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.

What it is

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.

What you get

  • 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.

Requirements

A Miro OAuth token with access to the boards you intend to touch, supplied as MIRO_OAUTH_TOKEN.

Setup effort

One command plus a key — npm install @aditya.mishra/miro-mcp, then supply credentials