Miro MCP

Miro MCP

Официальный MCP-сервер Miro: даёт AI-ассистенту доступ к вашим доскам — читать их содержимое и создавать на них диаграммы, стикеры и документы.

Miro MCP

Официальный удалённый MCP-сервер от Miro. Он подключает AI-ассистентов (Claude, Claude Code, Cursor и другие) к вашим доскам Miro: ассистент может читать содержимое доски как контекст — схемы, стикеры, документы — и сам создавать на ней диаграммы, заметки и структуры.

Сервер работает на всех тарифах Miro, включая бесплатный, а доступ к доскам выдаётся через авторизацию в вашем аккаунте Miro.

Инструменты были проиндексированы:
board_create

Create a new Miro board. To place the board inside a space, pass parent_space_url - either the space URL or the space content item id. Creating it in the space directly saves the extra board_move call that creating it at the team root would need. IMPORTANT: Always confirm with the user before creating a board. This action creates a new board and cannot be undone.

Create New Board

Параметры
  • descriptionstring

    Optional description for the board

  • icon_emojistring

    Optional single emoji to use as the board icon, e.g. "🚀". Set it when the user asks for an icon; otherwise leave it unset.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • namestringобязательный

    Name of the new board

  • parent_space_urlstring

    Space to create the content inside, given either as a full Miro space URL (e.g., 'https://miro.com/app/dashboard/space/0VM5RHCprOu2MnOHXLqp3f') or as the space content item id on its own (e.g., '0VM5RHCprOu2MnOHXLqp3f'). Omit to create at the team root instead.

board_create_format

Create a typed board format, such as a table, timeline, kanban, document, diagram, prototyping container, slide container, activities board, or embed. Use this tool when the user asks for the document/table/diagram itself as a standalone piece of content (e.g. 'create a doc in Miro about X', 'make me a table of Y'). Prefer it over adding a doc, table or diagram widget to an existing board: those tools are for adding content onto a board the user is already working on. To place the format inside a space, pass parent_space_url - either the space URL or the space content item id. Creating it in the space directly saves the extra board_move call that creating it at the team root would need. IMPORTANT: Always confirm with the user before creating content. This action cannot be undone.

Create Board Format

Параметры
  • embed_urlstring

    Source URL to embed (only used when format_type is 'embed')

  • format_typeenumобязательный

    The kind of format to create

  • icon_emojistring

    Optional single emoji to use as the icon, e.g. "🚀". Set it when the user asks for an icon; otherwise leave it unset.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • namestringобязательный

    Name of the new format

  • parent_space_urlstring

    Space to create the content inside, given either as a full Miro space URL (e.g., 'https://miro.com/app/dashboard/space/0VM5RHCprOu2MnOHXLqp3f') or as the space content item id on its own (e.g., '0VM5RHCprOu2MnOHXLqp3f'). Omit to create at the team root instead.

board_get_spaceтолько чтение

Find which space a board belongs to.

Get Board Space

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

board_moveидемпотентный

Move an existing Miro board under a space or folder. Use this tool when a user asks to move a board into a space or under a folder. Provide the board and the content item id of the destination space or folder.

Move Board

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • target_parent_content_item_idstringобязательный

    Content item id of the destination space or folder.

board_move_to_teamидемпотентный

Move a board to a different team.

Move Board To Team

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • target_team_idintegerобязательный

    Numeric identifier of the destination team

board_restore

Restore one or more boards from trash.

Restore Boards

Параметры
  • board_urlsstring[]обязательный

    Full Miro board URLs to restore from trash

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

board_role_updateидемпотентный

Change the role of a user or user group that already has access to a board. If they do not yet have access, use board_share instead. IMPORTANT: Always confirm with the user before changing who can access a board.

Update Board Role

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • roleenumобязательный

    Role to assign: owner, coowner, editor, commenter, or viewer (from most to least access).

  • subject_idstringобязательный

    Identifier of the user or user group. For a user this can be the user's email or user id; for a user group this is the group id.

  • subject_typeenumобязательный

    Whether the subject is an individual user or a user group

board_search_boardsтолько чтение

Search and list boards accessible to the current user, scoped to their team. Returns board metadata — name and URL — suitable for navigating to a specific board or discovering relevant boards before operating on them. Use this tool when the user wants to find a board by name or description, or discover which boards are available before using other board tools. Supports offset-based pagination.

Search Boards

Параметры
  • include_contentboolean

    Controls whether to search inside board content or only board name and description. Set to true ONLY when the user explicitly says they are looking for something written inside a board (e.g. 'find the board that has X in it', 'search inside boards for Y'). Default is false. Do not set to true just because the user provided a search query.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • limitinteger

    Maximum number of boards to return per page. Range: 1-50. Default: 20.

  • offsetinteger

    Zero-based index of the first board to return. Use with limit for pagination. Example: offset=20 with limit=20 returns the second page.

  • owned_by_meboolean

    When true, restricts results to boards owned by the current user. Useful when the user asks to see 'my boards' or 'boards I own'.

  • querystring

    Text to search for in board names and descriptions. Examples: 'product roadmap', 'Q4 planning', 'design review'. Leave empty to list all accessible boards.

board_share

Grant a user or user group access to a board with a specific role. Use to share a board with someone who does not yet have access. If they already have a role, use board_role_update instead. IMPORTANT: Always confirm with the user before changing who can access a board.

Share Board

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • roleenumобязательный

    Role to assign: owner, coowner, editor, commenter, or viewer (from most to least access).

  • subject_idstringобязательный

    Identifier of the user or user group. For a user this can be the user's email or user id; for a user group this is the group id.

  • subject_typeenumобязательный

    Whether the subject is an individual user or a user group

board_update_metadataидемпотентный

Update a board's title, description and/or icon emoji. Omitted fields are left unchanged. To remove the board's icon, pass an empty string as icon_emoji.

Update Board Metadata

Параметры
  • descriptionstring

    New board description

  • icon_emojistring

    New single-emoji icon for the board, e.g. "🚀". Omit to leave the icon unchanged; pass an empty string to remove it.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • titlestring

    New board title

canvas_create_from_svg

Create board items from a canvas-composer SVG document. Parses the SVG into Miro widgets -- shapes, stickies, text, connectors, frames, tables, docs, images, slide decks, AND structured Mermaid diagrams (flowchart, ERD, UML class/sequence, authored as a <foreignObject data-type="diagram"> with a Mermaid body). This is the primary tool for creating ANY board content, diagrams and presentations included: 'create a diagram' / 'draw a flowchart' are handled here, NOT by the legacy diagram_* tools, and 'build a slide deck' / 'make a presentation' are handled here too. Returns a result_svg with data-miro-id stamped on every svg element for the next iteration.

Create Board from SVG

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • svgstringобязательный

    A board written in the Canvas Composer SVG format.

canvas_get_canvas_composer_skillтолько чтение

Get the board-authoring workflow instructions and the DSL (Domain-Specific Language) format specification for creating board items. REQUIRED and FIRST: call this before canvas_create_from_svg, and before canvas_load_format_skill. The first call (no arguments) routes you to the right workflow step; follow the returned instructions and call again with the step value they name. This is the foundational skill -- every use-case skill from canvas_load_format_skill (e.g. diagramming) layers on top of it and assumes you already have it, so never load a format skill before this one. In a conversation, reuse each step's returned instructions instead of re-fetching them.

Canvas Composer

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstring
  • stepstring

    Workflow step selector. Omit on the first call; each response names the valid value for the next call.

canvas_load_format_skillтолько чтение

Load supplementary authoring guidance (a skill) for a specific composition format, layered ON TOP OF the general canvas format. PREREQUISITE: call canvas_get_canvas_composer_skill FIRST -- this tool assumes you already know the SVG board format and only adds format-specific styling and examples. Do not call it as your first step, and never in place of the composer skill. Content is still created with canvas_create_from_svg / canvas_update_from_svg. Available formats: 'diagramming' (styling and worked examples for Mermaid diagram widgets), 'presentation' (design guidance for slide decks; available where the composer skill lists the SLIDE_CONTAINER widget) and 'prototyping' (HTML authoring contract and design guidance for prototype screens; available where it lists the PROTOTYPING_CONTAINER widget). For 'diagramming', pass the notation you are drawing to get that notation's color defaults and worked example. Call once per format/notation in a conversation and reuse the guidance.

Load Format Skill

Параметры
  • format_nameenumобязательный

    The composition format to load guidance for. 'diagramming' for styling and worked examples of Mermaid diagram widgets; 'presentation' for slide decks; 'prototyping' for HTML prototype screens.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • notationenum

    For format_name='diagramming', the diagram notation you are drawing: 'flowchart', 'entity_relationship', 'uml_class', or 'uml_sequence' for a Mermaid diagram widget, or 'free_form' for a hand-assembled diagram from shapes and connectors (use only when no Mermaid notation and no native widget fits, e.g. a mind map). Returns that notation's guidance. Omit to get the shared color contract plus the list of supported notations.

canvas_read_as_svgтолько чтение

Read one board area or specific items as a canvas-composer SVG document. Provide either widget_ids or all four scope fields but not both simultaneously. Use canvas_search to find a scope. Use widget_ids only for specific items; selecting a container (a frame, slide deck, or prototype) includes everything nested inside it. Has no target_id parameter (that belongs to canvas_search): name items with widget_ids and restrict to an area with the scope fields.

Read Board as SVG

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • scope_heightinteger

    Working area height.

  • scope_widthinteger

    Working area width.

  • scope_xinteger

    Working area left edge.

  • scope_yinteger

    Working area top edge.

  • widget_idsstring[]

    Required unless all four scope fields are set. Return only the items with these data-miro-id values. Ancestor frames are added automatically so positions stay correct, and selecting a container (a frame, slide deck, or prototype) pulls in everything nested inside it. Unknown ids are skipped.

canvas_searchтолько чтение

Search and navigate board content on top of the canvas-composer SVG representation to find relevant items and areas. Use canvas search beforehand to narrow down scope of a read.

Search Canvas

Параметры
  • cursorinteger

    Continue areas or matches from next_cursor only when the earlier result was truncated. Omit for overview.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • patternsstring[]

    Required for areas and matches. Omit for overview. Send related patterns together. Values are case-insensitive literal text by default. Prefix structural SVG regex with re:. Prefix literal text with text:. The prefix is consumed, so use text:text:budget to find the literal text:budget.

  • result_modeenumобязательный

    Use overview without patterns for container titles and a small sample of board regions. Use areas to rank sections from related signals. Use matches for exact items, occurrences, IDs, attributes, or captures.

  • target_idstring

    Limit areas or matches to one result from an earlier search. Omit for overview.

canvas_update_from_svg

Apply a canvas-composer SVG document to the board by diffing it against the live board (matched on data-miro-id) and applying only the deltas: it creates new elements, updates existing ones, and deletes elements explicitly marked with data-deleted="true" (which must carry the element's data-miro-id). Removing an element from the SVG does NOT delete it, deletion is explicit per element, so a partial document is always safe. Deletion is destructive and not undoable here: confirm the specific items with the user before sending any data-deleted="true". Feed the result_svg from a previous canvas_create_from_svg or canvas_update_from_svg call back in to iterate. Returns a result_svg with data-miro-id stamped on every element for the next iteration.

Update Board from SVG

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • svgstringобязательный

    A board written in the Canvas Composer SVG format.

comment_create

Create a new comment on the Miro board canvas. The comment appears at the specified canvas coordinates and is attributed to the current user. To attach the comment to an existing board item, pass a URL that targets that item. Use list_comments to read existing comments and their positions.

Create Canvas Comment

Параметры
  • contentstringобязательный

    Text content of the comment.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Miro board URL. Can be a plain board URL (e.g., 'https://miro.com/app/board/uXjVGeTCXKY=/') to get a board overview, or include moveToWidget/focusWidget parameter (e.g., 'https://miro.com/app/board/uXjVGeTCXKY=/?moveToWidget=3458764654510025479') to get detailed content for a specific item.

  • xnumberобязательный

    X-axis coordinate of the comment on the canvas.

  • ynumberобязательный

    Y-axis coordinate of the comment on the canvas.

comment_list_commentsтолько чтение

List comments from a Miro board or a specific item on the board. Comments include author information, messages (original comment and replies), reactions, resolved status, and position. Use limit and offset for pagination. Use from_date and to_date to filter by creation time. Use resolved to filter by resolved status.

Read Comments

Параметры
  • from_datestring

    Return only comments created at or after this date. Format: ISO 8601 with optional time component, e.g. 2024-01-01T00:00:00Z or 2024-01-01.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • limitinteger

    Maximum number of comments to return per page. Range: 1-50. Default: 20.

  • miro_urlstringобязательный

    Miro board URL. Can be a plain board URL (e.g., 'https://miro.com/app/board/uXjVGeTCXKY=/') to get a board overview, or include moveToWidget/focusWidget parameter (e.g., 'https://miro.com/app/board/uXjVGeTCXKY=/?moveToWidget=3458764654510025479') to get detailed content for a specific item.

  • offsetinteger

    Zero-based offset for pagination. Default: 0.

  • resolvedboolean

    Filter by resolved status. true returns only resolved comments, false returns only unresolved. Omit to return all comments.

  • to_datestring

    Return only comments created at or before this date. Format: ISO 8601 with optional time component, e.g. 2024-12-31T23:59:59Z or 2024-12-31.

comment_reply

Add a reply message to an existing comment thread on a Miro board. Use list_comments to find comment IDs. The reply appears as the last message in the thread and is attributed to the current user.

Reply to Comment

Параметры
  • comment_idstringобязательный

    ID of the comment thread to reply to. Obtain from list_comments.

  • contentstringобязательный

    Text content of the reply message.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Miro board URL. Can be a plain board URL (e.g., 'https://miro.com/app/board/uXjVGeTCXKY=/') to get a board overview, or include moveToWidget/focusWidget parameter (e.g., 'https://miro.com/app/board/uXjVGeTCXKY=/?moveToWidget=3458764654510025479') to get detailed content for a specific item.

comment_resolve

Resolve or unresolve a comment thread on a Miro board. Resolving marks the thread as addressed; unresolving reopens it. Use list_comments with resolved=false to find open threads.

Resolve Comment

Параметры
  • comment_idstringобязательный

    ID of the comment thread to resolve or unresolve. Obtain from list_comments.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Miro board URL. Can be a plain board URL (e.g., 'https://miro.com/app/board/uXjVGeTCXKY=/') to get a board overview, or include moveToWidget/focusWidget parameter (e.g., 'https://miro.com/app/board/uXjVGeTCXKY=/?moveToWidget=3458764654510025479') to get detailed content for a specific item.

  • resolvedbooleanобязательный

    Set to true to resolve the thread, false to unresolve it.

content_item_list_rolesтолько чтениеидемпотентный

List who can access a board or space and the role each of them holds. Use this to answer who a board or space is shared with, or what access somebody has. Each entry names the subject, its kind, the role it holds and, for users, their email address. User groups have no email, so identify them by their subject id. Entries whose kind is 'user' or 'user_group' and whose role is one of owner, coowner, editor, commenter or viewer can be fed straight into board_role_update or space_role_update. Access granted by other means is still listed, under its own kind or role name such as 'team' or 'private', and cannot be changed with those tools. Results are paginated: pass the returned cursor back to fetch the next page.

List Content Item Roles

Параметры
  • content_item_urlstringобязательный

    The board or space to inspect. Give a full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='), a full Miro space URL (e.g., 'https://miro.com/app/dashboard/space/0VM5RHCprOu2MnOHXLqp3f'), or the content item id of either on its own (e.g., '0VM5RHCprOu2MnOHXLqp3f') - a content item id identifies a board just as well as a space. A board key on its own is not accepted; use the board URL for that.

  • cursorstring

    Opaque cursor token for fetching the next page

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • limitinteger

    Maximum entries per page (1-100)

image_create

Create an image item on a Miro board. Accepts either an upload token (from image_get_upload_url after the upload completes) or a publicly accessible image URL. Exactly one of image_token or image_url must be provided. When image_token is provided, title/x/y/width from the token (set at upload time) are used; any values supplied here for those fields are ignored. Coordinates: when the URL has no item target, x/y are board-absolute (board center is (0, 0)). When the URL targets a frame via moveToWidget, the image is created INSIDE that frame and x/y are relative to the frame's top-left corner; (0, 0) is the frame's top-left and the image must fit within the frame's width and height.

Create Image

Параметры
  • image_tokenstring

    Token returned by image_get_upload_url after the upload completes. Mutually exclusive with image_url.

  • image_urlstring

    Publicly accessible URL of the image to add to the board. Mutually exclusive with image_token.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • titlestring

    Optional title label for the image widget.

  • widthnumber

    Image width in pixels. Height scales proportionally.

  • xnumber

    X-axis coordinate. Without a frame target: board-absolute, board center is x=0. With a frame target via moveToWidget: relative to the frame's top-left corner (frame top-left is x=0).

  • ynumber

    Y-axis coordinate. Without a frame target: board-absolute, board center is y=0. With a frame target via moveToWidget: relative to the frame's top-left corner (frame top-left is y=0).

image_get_dataтолько чтение

Get the pixels of an image item on a Miro board. Use this when a layout shows an image (by its properties and source URL) and you need to see what the image actually depicts. Returns the image content directly.

Image Data

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro URL to a specific item (e.g., 'https://miro.com/app/board/uXjVOakxTk0=/?moveToWidget=3458764516062720430'). Must include moveToWidget or focusWidget query parameter.

image_get_upload_urlтолько чтение

Get a single-use upload URL for a local image. Returns upload_url and a token. PUT the raw image bytes as the request body; set Content-Type to the image MIME type; no auth header. curl: curl -X PUT -H 'Content-Type: image/png' --data-binary @image.png '<upload_url>'. If the image only exists as in-memory bytes, write it to a local file first, then PUT that file. After upload, pass the returned token to any tool that accepts an image_token / image_tokens parameter — see each consumer tool's description for what it does with the upload. Max size: 6,000,000 bytes. Accepted types: image/bmp, image/gif, image/jpeg, image/png, image/svg+xml, image/vnd.adobe.photoshop.

Get Upload URL

Параметры
  • content_typestring

    MIME type of the image to upload. Accepted: image/bmp, image/gif, image/jpeg, image/png, image/svg+xml, image/vnd.adobe.photoshop. When provided, the upload request Content-Type must match this value exactly. If omitted, content type is verified at image_create time.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • srcstring

    Only consumed by tools that rewrite HTML by src — currently prototype_create's and slides_create_html's image_tokens (i.e. a local file referenced from HTML). Set this to the EXACT string that appears as the src attribute in the HTML (e.g. './logo.png', 'assets/icon.svg') — matching is literal. The server rewrites every <img src=...> equal to this value with the uploaded board resource. Other consumers (image_create) ignore this field.

  • titlestring

    Optional title label for the image widget.

  • widthnumber

    Image width in pixels. Height scales proportionally.

  • xnumber

    X-axis coordinate. Without a frame target: board-absolute, board center is x=0. With a frame target via moveToWidget: relative to the frame's top-left corner (frame top-left is x=0).

  • ynumber

    Y-axis coordinate. Without a frame target: board-absolute, board center is y=0. With a frame target via moveToWidget: relative to the frame's top-left corner (frame top-left is y=0).

image_get_urlтолько чтение

Get image download URL for an image item from a Miro board.

Download Image

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro URL to a specific item (e.g., 'https://miro.com/app/board/uXjVOakxTk0=/?moveToWidget=3458764516062720430'). Must include moveToWidget or focusWidget query parameter.

prototype_create

Create a Miro prototype from one or more HTML screens. Images: leave external http/https URLs in the HTML untouched — the server fetches and uploads them for you. ONLY local file references (e.g. './logo.png', 'assets/x.svg') need pre-upload: call image_get_upload_url with src set to the EXACT in-HTML reference, PUT the bytes, then pass the returned tokens via image_tokens below. The server rewrites matching <img src=...> attributes and attaches data-board-resource — do NOT rewrite the HTML yourself. IMPORTANT: ONLY local file references (e.g. './logo.png', 'assets/x.svg') in any part of the HTML like inline, url(), srcset, etc... REQUIRES pre-upload: call image_get_upload_url with src set to the EXACT in-HTML reference, PUT the bytes, then pass the returned tokens via image_tokens below. Fonts: CDN URL only. Author static HTML + CSS only — <script> elements and inline event handlers (onclick etc.) are stripped, so any scripted behavior is silently lost; use CSS states (:hover, :focus) for visual interactivity. Max per screen: 1,048,576 bytes. Max screens per call: 20 — split larger prototypes across multiple prototype_create calls. Provide exactly one input — PREFER html_tokens (HTML stays out of context). html_contents is a last-resort fallback only when the runtime cannot issue an HTTP PUT at all; HTML size, image count, multi-screen, or not yet having the HTML saved to a file are NOT valid reasons — write it to a file yourself, then PUT it. Placement: no item target → x/y are board-absolute (center is (0, 0)); moveToWidget on a frame → prototype is created inside, x/y are relative to frame top-left and must fit within frame width/height. All screens in one call share device_type, orientation, and placement; order is preserved.

Create Prototype

Параметры
  • device_typeenum

    Target device type for the prototype. Applies to every screen. Accepted values: 'desktop' (default), 'mobile', or 'tablet'.

  • html_contentsstring[]

    Last-resort fallback. Use ONLY when the runtime cannot issue an HTTP PUT at all (sandboxed agent with no network/curl/fetch). HTML size, image count, multi-screen, or not yet having the HTML saved to a file are NOT valid reasons — write the HTML to a file yourself and PUT it; html_tokens handles size/complexity by keeping the HTML out of context. Ordered list of raw HTML strings, one per screen; each at most 1,048,576 bytes. Max 20 screens per call.

  • html_tokensstring[]

    Preferred input. Ordered list of tokens from prototype_get_upload_url, one per screen. Use whenever the runtime can issue an HTTP PUT. Max 20 tokens per call.

  • image_tokensstring[]

    REQUIRED whenever the HTML references images by a non-http(s) path (e.g. './logo.png', 'assets/x.svg', '/var/...'). Omitting tokens for such refs leaves broken images. External http/https URLs are fetched server-side and do NOT belong here. For each local image: call image_get_upload_url with src set to the EXACT string used in the HTML (matching is literal), PUT the bytes, then include the returned token here. The server rewrites every <img src=...> matching the stored src and attaches data-board-resource — do NOT rewrite the HTML yourself. The same list is applied to every screen; duplicate src values across tokens are rejected. May be omitted only when the HTML has zero local image refs.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • orientationenum

    Screen orientation for the prototype. Applies to every screen. Accepted values: 'landscape' (default) or 'portrait'.

  • xnumber

    X-axis coordinate. Without a frame target: board-absolute, board center is x=0. With a frame target via moveToWidget: relative to the frame's top-left corner (frame top-left is x=0).

  • ynumber

    Y-axis coordinate. Without a frame target: board-absolute, board center is y=0. With a frame target via moveToWidget: relative to the frame's top-left corner (frame top-left is y=0).

prototype_get_upload_urlтолько чтение

Reserve one or more single-use upload slots for HTML screens. Set count to the number of screens in the prototype to reserve all slots in a single call instead of calling this once per screen. Returns one entry per slot, each with its own upload_url and token; uploads can run in parallel. PUT the raw HTML as the request body with Content-Type: text/html; no auth header. curl: curl -X PUT -H 'Content-Type: text/html' --data-binary @page.html '<upload_url>'. If the HTML only exists as a string in your context, write it to a local file first (e.g. page.html), then PUT that file — not already having a file is not a reason to fall back to html_contents. Max size: 1,048,576 bytes per screen. External http/https image URLs are fine; the server fetches them. Only local file references need pre-upload (see prototype_create's image_tokens). After each upload, pass its token to prototype_create, in the same order.

Get HTML Upload URL

Параметры
  • countinteger

    Number of upload slots to reserve, one per screen. Request all slots needed for a prototype in a single call so uploads can run in parallel.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

prototype_readтолько чтение

Read prototype screens from a Miro board. Returns prototype screens with metadata (position, dimensions, device type) and HTML markup representing each screen's UI layout. Useful for AI tools to understand the design, structure, and navigation flow of interactive prototypes. Provide screen_id to read a specific screen, or omit to list all screens on the board. Recommended workflow: first list all screens with include_html=false (default) to get metadata, then read a specific screen with include_html=true to get its HTML markup.

Read Prototype Screens

Параметры
  • include_htmlboolean

    Whether to include HTML markup for each screen. Defaults to false. Set to true only when HTML is needed for a specific screen to avoid large context payloads.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • screen_idstring

    Widget ID of a specific prototype screen to read. When omitted, all prototype screens on the board are returned.

section_create

Create a new section inside a space to group related boards and content. A section must live inside a space, so provide the space URL. If no title is given, a short one is generated from the user's goal. IMPORTANT: Always confirm with the user before creating a section.

Create Section

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • orderinteger

    Optional position among sibling sections; higher values are ordered first. When omitted, the section is placed on top.

  • space_urlstringобязательный

    A space, given either as a full Miro space URL (e.g., 'https://miro.com/app/dashboard/space/0VM5RHCprOu2MnOHXLqp3f') or as the space content item id on its own (e.g., '0VM5RHCprOu2MnOHXLqp3f'). Both the URL returned when a space is created and the content_item_id from a space listing are accepted.

  • titlestring

    Title for the new section

section_delete

Delete a section. Boards inside the section are not deleted; they are moved up to the parent space. IMPORTANT: Always confirm with the user before deleting a section.

Delete Section

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • section_content_item_idstringобязательный

    Identifier of the section to delete

section_update_metadataидемпотентный

Rename a section or change its position among sibling sections. Provide at least one of a new title or a new order.

Update Section Metadata

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • orderinteger

    New position among sibling sections; lower values are ordered first.

  • section_content_item_idstringобязательный

    Identifier of the section to update

  • titlestring

    New section title

space_create

Create a new Miro space. A space organizes related content together (Boards; Documents; Tables; Diagrams; etc). Always give the space an icon: use the emoji the user asked for, and when they did not name one, pick a fitting emoji yourself from the space name. IMPORTANT: Always confirm with the user before creating a space. This action creates a new space and cannot be undone.

Create New Space

Параметры
  • descriptionstring

    Optional description for the space

  • icon_emojistring

    Single emoji to use as the space icon, e.g. "🚀". Pass the emoji the user asked for; if they did not name one, choose a fitting emoji yourself based on the space name rather than leaving this empty.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • namestringобязательный

    Name of the new space

space_listтолько чтение

List the spaces in the current user's team. Spaces are the top-level containers that organize a team's boards and other content, so this is the primary entry point for exploring what a team has. Prefer this tool for any team-level listing request, including phrasings like 'list boards in my team', 'what's in my Miro team', 'show my team's content', or 'get team spaces'. To then list the boards inside a particular space, use the space boards tool.

List Team Spaces

Параметры
  • cursorstring

    Opaque cursor token for fetching the next page

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • limitinteger

    Maximum number of spaces to return per page

space_list_boardsтолько чтение

List the boards inside one specific space. Requires the identifier or URL of that space, so use it only when the user names a particular space (e.g. 'boards in the Design space'). For team-level requests (e.g. 'list boards in my team'), list the team's spaces first with the list spaces tool.

List Space Boards

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • space_urlstringобязательный

    A space, given either as a full Miro space URL (e.g., 'https://miro.com/app/dashboard/space/0VM5RHCprOu2MnOHXLqp3f') or as the space content item id on its own (e.g., '0VM5RHCprOu2MnOHXLqp3f'). Both the URL returned when a space is created and the content_item_id from a space listing are accepted.

space_list_childrenтолько чтение

List the direct children of a space or section, one level deep. Provide the content item id of a space or a section, and it returns each immediate child's content item id, type (e.g. board, folder, doc, diagram) and title, plus a board URL when the child is a board. Use it to explore what sits directly inside a space or section (e.g. its boards and sub-sections). The id must belong to a space or a section; other content items are rejected. Results are paginated: pass the returned cursor to fetch the next page.

List Space Or Section Children

Параметры
  • content_item_idstringобязательный

    Content item id of the space or section whose direct children to list

  • cursorstring

    Opaque cursor token for fetching the next page

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • limitinteger

    Maximum number of children to return per page

space_role_updateидемпотентный

Change the role of a user or user group that already has access to a space. If they do not yet have access, use space_share instead. IMPORTANT: Always confirm with the user before changing who can access a space.

Update Space Role

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • roleenumобязательный

    Role to assign: owner, coowner, editor, commenter, or viewer (from most to least access).

  • space_urlstringобязательный

    A space, given either as a full Miro space URL (e.g., 'https://miro.com/app/dashboard/space/0VM5RHCprOu2MnOHXLqp3f') or as the space content item id on its own (e.g., '0VM5RHCprOu2MnOHXLqp3f'). Both the URL returned when a space is created and the content_item_id from a space listing are accepted.

  • subject_idstringобязательный

    Identifier of the user or user group. For a user this can be the user's email or user id; for a user group this is the group id.

  • subject_typeenumобязательный

    Whether the subject is an individual user or a user group

space_share

Grant a user or user group access to a space with a specific role. Use to share a space with someone who does not yet have access. If they already have a role, use space_role_update instead. IMPORTANT: Always confirm with the user before changing who can access a space.

Share Space

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • roleenumобязательный

    Role to assign: owner, coowner, editor, commenter, or viewer (from most to least access).

  • space_urlstringобязательный

    A space, given either as a full Miro space URL (e.g., 'https://miro.com/app/dashboard/space/0VM5RHCprOu2MnOHXLqp3f') or as the space content item id on its own (e.g., '0VM5RHCprOu2MnOHXLqp3f'). Both the URL returned when a space is created and the content_item_id from a space listing are accepted.

  • subject_idstringобязательный

    Identifier of the user or user group. For a user this can be the user's email or user id; for a user group this is the group id.

  • subject_typeenumобязательный

    Whether the subject is an individual user or a user group

space_update_metadataидемпотентный

Update a space's title, description and/or icon emoji. Omitted fields are left unchanged. A space icon can be replaced but not removed.

Update Space Metadata

Параметры
  • descriptionstring

    New space description

  • icon_emojistring

    New single-emoji icon for the space, e.g. "🚀". Omit to leave the icon unchanged. A space icon cannot be removed, only replaced.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • space_urlstringобязательный

    A space, given either as a full Miro space URL (e.g., 'https://miro.com/app/dashboard/space/0VM5RHCprOu2MnOHXLqp3f') or as the space content item id on its own (e.g., '0VM5RHCprOu2MnOHXLqp3f'). Both the URL returned when a space is created and the content_item_id from a space listing are accepted.

  • titlestring

    New space title

table_create

Create a table on a Miro board with specified columns. Supports text, select, multiselect, date, link, person, and number column types. This always creates a plain grid table. To produce a timeline, kanban, or tree, first create the table here, then call table_update_view to switch its layout. For a request like 'create a timeline/kanban/tree', do BOTH steps in sequence. Coordinates: when the URL has no item target, x/y are board-absolute (board center is (0, 0)). When the URL targets a frame via moveToWidget, the table is created INSIDE that frame and x/y are relative to the frame's top-left corner; (0, 0) is the frame's top-left and the table must fit within the frame's width and height. If no board URL is provided, a new board will be created. IMPORTANT: Always confirm with the user before creating a new board.

Create Table

Параметры
  • columnsobject[]обязательный

    List of columns to create. At least one column must be provided. Column types: 1. Text columns: Simple text fields 2. Select columns: Dropdown menus with predefined options, single value per row - Each option needs a displayValue and color (hex code) 3. Multiselect columns: Like select, but a row can hold multiple options - Each option needs a displayValue and color (hex code) 4. Date columns: Date/time values in ISO 8601 format 5. Link columns: URLs with optional display text 6. Person columns: Assign Miro users by their user ID 7. Number columns: Numeric values with configurable decimal places - Optional "decimals" (int, default 0) sets displayed decimal places Examples: [ {"column_type": "text", "column_title": "Name", "isTitle": true}, {"column_type": "text", "column_title": "Description"}, {"column_type": "date", "column_title": "Due Date"}, {"column_type": "link", "column_title": "Reference"}, {"column_type": "person", "column_title": "Assignee"}, {"column_type": "number", "column_title": "Estimate", "decimals": 1}, { "column_type": "select", "column_title": "Status", "options": [ {"displayValue": "To Do", "color": "#FF0000"}, {"displayValue": "In Progress", "color": "#FFA500"}, {"displayValue": "Done", "color": "#00FF00"} ] }, { "column_type": "multiselect", "column_title": "Tags", "options": [ {"displayValue": "Frontend", "color": "#FF0000"}, {"displayValue": "Backend", "color": "#FFA500"} ] } ]

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstring

    Full Miro board URL (e.g., 'https://miro.com/app/board/uXjVOakxTk0='). If not provided, a new board will be created (requires user confirmation). To target a specific parent frame, include ?moveToWidget=<frame_id>.

  • table_titlestringобязательный

    The title/name of the table

  • xnumber

    X-axis coordinate for table placement. Without a frame target: board-absolute, board center is x=0. With a frame target via moveToWidget: relative to the frame's top-left corner (frame top-left is x=0). Use different x values to prevent overlap when creating multiple items.

  • ynumber

    Y-axis coordinate for table placement. Without a frame target: board-absolute, board center is y=0. With a frame target via moveToWidget: relative to the frame's top-left corner (frame top-left is y=0). Use different y values to prevent overlap when creating multiple items.

table_get_latest_update_historyтолько чтение

Get the history of a row's Latest Update field. The Latest Update field accumulates the text updates submitted for that row over time; this returns those entries ordered chronologically. Provide the table via its Miro URL and the target row via rowId (get rowIds from table_list_rows). Response includes for each entry: text, author_id (Miro user ID of the author), created_at and modified_at (ISO 8601 timestamps), plus the total number of entries.

Read Latest Update History

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro URL to a specific item (e.g., 'https://miro.com/app/board/uXjVOakxTk0=/?moveToWidget=3458764516062720430'). Must include moveToWidget or focusWidget query parameter.

  • row_idstringобязательный

    Stable identifier of the row whose Latest Update field history to fetch. Get rowIds from table_list_rows.

table_list_rowsтолько чтение

Get rows from a Miro table with column metadata. Each row includes a stable rowId that uniquely identifies it within the table. rowIds persist across sorting, insertion, and deletion — use them to target specific rows in table_sync_rows. Supports filtering by column value. Returns text, select, multiselect, and latest_update columns. Best practice: always use filter_by and limit when possible.Examples: next item that is not done: {"filter_by": {"Status":["To do", "In progress"]}, "limit": 1}top 5 high priority tasks: {"filter_by": {"Priority":["High"]}, "limit": 5} Response includes for each row: rowId (stable row identifier), cells (array of columnTitle, valueType, content, options, latest_update_text, latest_update_author_id). Pagination: Use 'limit' to control page size (default 10) and 'next_cursor' to fetch subsequent pages. The cursor is opaque and encodes pagination state. IMPORTANT: Do not change 'filter_by' when using a cursor from a previous response, as this will result in an error. To apply a different filter, start a new pagination sequence (no cursor).

Read Table

Параметры
  • filter_bystring

    Filter rows by column value(s) in JSON format (case-insensitive). Only select and multiselect columns are supported. Format: JSON object mapping column names to arrays of display values. Example: {"Status": ["In Progress", "Done"]} matches rows where Status is either 'In Progress' OR 'Done'

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • limitinteger

    Maximum rows to return (minimum 1)

  • miro_urlstringобязательный

    Full Miro URL to a specific item (e.g., 'https://miro.com/app/board/uXjVOakxTk0=/?moveToWidget=3458764516062720430'). Must include moveToWidget or focusWidget query parameter.

  • next_cursorstring

    Pagination cursor for the next set of results

table_sync_rows

Add or update rows in a Miro table. To update existing rows, include rowId in the row object. rowId precisely targets a single row. Get rowIds from table_list_rows. Rows without rowId are inserted as new. Examples: Update a specific row by rowId: {"rows": [{"rowId": "3", "cells": [{"columnTitle": "Status", "value": "Complete"}]}]} Insert new rows: {"rows": [{"cells": [{"columnTitle": "Task", "value": "New task"}, {"columnTitle": "Status", "value": "Not Started"}]}]}

Update Table

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • miro_urlstringобязательный

    Full Miro URL to a specific item (e.g., 'https://miro.com/app/board/uXjVOakxTk0=/?moveToWidget=3458764516062720430'). Must include moveToWidget or focusWidget query parameter.

  • rowsobject[]обязательный

    Array of rows to add or update. Include rowId to update an existing row. Rows without rowId are inserted as new. [{"rowId": "3", "cells": [{"columnTitle": "Status", "value": "Complete"}]}] [{"cells": [{"columnTitle": "Task", "value": "Write tests"}, {"columnTitle": "Status", "value": "To Do"}]}]

table_update_view

Update a Miro table widget's view: switch it to a grid table, timeline, or kanban board. The table keeps its data; only how it is displayed changes. Choose layout: - table: plain grid (use to revert from another layout) - timeline: lays records out on a time axis; optionally set the visible window with timeline_start_date and timeline_end_date - kanban: groups records into columns; set group_by_column to the name of a select column to group by (omit for an ungrouped board) Only provide config that matches the chosen layout. Examples: switch to kanban grouped by Status: {"layout": "kanban", "group_by_column": "Status"}. Switch to a timeline for 2026: {"layout": "timeline", "timeline_start_date": "2026-01-01T00:00:00Z", "timeline_end_date": "2026-12-31T00:00:00Z"}.

Update Table View

Параметры
  • group_by_columnstring

    KANBAN only: name of the select column to group cards into columns. Omit for an ungrouped board.

  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

  • layoutenumобязательный

    The layout to apply: 'table', 'timeline', 'kanban', or 'tree'.

  • miro_urlstringобязательный

    Full Miro URL to a specific item (e.g., 'https://miro.com/app/board/uXjVOakxTk0=/?moveToWidget=3458764516062720430'). Must include moveToWidget or focusWidget query parameter.

  • table_nesting_enabledboolean

    TABLE only: enable nested (hierarchical parent/child) rows.

  • timeline_date_unitenum

    TIMELINE only: time-axis granularity.

  • timeline_dependencies_enabledboolean

    TIMELINE only: show dependency links between records.

  • timeline_end_datestring

    TIMELINE only: visible end of the timeline window in UTC format YYYY-MM-DDThh:mm:ssZ. This is the viewport, not a per-record date.

  • timeline_nesting_enabledboolean

    TIMELINE only: enable nested (hierarchical parent/child) rows.

  • timeline_start_datestring

    TIMELINE only: visible start of the timeline window in UTC format YYYY-MM-DDThh:mm:ssZ. This is the viewport, not a per-record date.

  • tree_directionenum

    TREE only: direction the tree grows.

  • view_namestring

    Optional new display name for the view. Applies to any layout.

user_who_am_iтолько чтение

Returns the identity of the current authenticated user.

Who Am I

Параметры
  • invocation_sourcestring

    Identifies what triggered this tool call. You must populate this field. Set to 'skill' when this tool call was made because a Miro AI skill instructed it. Set to 'ui' when invoked from the Miro MCP UI. Leave unset otherwise.

  • is_repositoryboolean

    Set to true when the folder you are operating in is a source-control repository (for example a Git working directory); set to false otherwise. You must populate this field. Defaults to false.

У этого сервера пока нет списка версий.

Выберите клиент, чтобы установить Miro MCP:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "miro-mcp": {
      "type": "http",
      "url": "https://mcp.miro.com/"
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "miro-mcp": {
      "type": "http",
      "url": "https://mcp.miro.com/"
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "miro-mcp": {
      "type": "http",
      "url": "https://mcp.miro.com/"
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"miro-mcp\",\"type\":\"http\",\"url\":\"https://mcp.miro.com/\"}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "miro-mcp": {
      "type": "http",
      "url": "https://mcp.miro.com/"
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add --transport http miro-mcp https://mcp.miro.com/

Либо через JSON-конфиг:

claude mcp add-json miro-mcp "{\"type\":\"http\",\"url\":\"https://mcp.miro.com/\"}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add miro-mcp --url https://mcp.miro.com/

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.miro-mcp]
url = "https://mcp.miro.com/"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите Miro MCP.

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "miro-mcp": {
      "type": "http",
      "url": "https://mcp.miro.com/"
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "miro-mcp": {
      "type": "http",
      "url": "https://mcp.miro.com/",
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например miro-mcp.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: miro-mcp
    type: http
    url: https://mcp.miro.com/
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "miro-mcp": {
      "type": "http",
      "url": "https://mcp.miro.com/"
    }
  }
}
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин