Miro
Create and update Miro boards — sticky notes, diagrams, frames, and documents. Sign in with Miro to connect.
What Miro exposes.
Every tool below is one this server advertised the last time Omniio refreshed it, under the miro__ namespace. Your agent never loads them all — it searches, and gets the few that match.
miro__board_create6 arguments · 1 required
Create New Board
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.
Required
namemiro__board_create_format7 arguments · 2 required
Create Board 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.
Required
nameformat_typemiro__board_get_space3 arguments · 1 required
Get Board Space
Find which space a board belongs to.
Required
miro_urlmiro__board_list_items7 arguments · 1 required
Read Board Items
DEPRECATED: superseded by canvas_search and canvas_read_as_svg, removed on September 14, 2026. Prefer canvas_search and canvas_read_as_svg when available; this tool keeps working until then. Update saved prompts, skills, and automations before removal; reconnect if tools appear missing. List items on a board with cursor-based pagination. For slide content, prefer slides_read_html over this tool.
Required
miro_urlmiro__board_move4 arguments · 2 required
Move Board
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.
Required
miro_urltarget_parent_content_item_idmiro__board_move_to_team4 arguments · 2 required
Move Board To Team
Move a board to a different team.
Required
miro_urltarget_team_idmiro__board_restore3 arguments · 1 required
Restore Boards
Restore one or more boards from trash.
Required
board_urlsmiro__board_role_update6 arguments · 4 required
Update Board Role
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.
Required
miro_urlsubject_idsubject_typerolemiro__board_search_boards7 arguments
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.
miro__board_share6 arguments · 4 required
Share Board
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.
Required
miro_urlsubject_idsubject_typerolemiro__board_update_metadata6 arguments · 1 required
Update Board 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.
Required
miro_urlmiro__canvas_create_from_svg4 arguments · 2 required
Create Board 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.
Required
miro_urlsvgmiro__canvas_get_canvas_composer_skill3 arguments
Canvas Composer
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.
miro__canvas_load_format_skill4 arguments · 1 required
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.
Required
format_namemiro__canvas_read_as_svg8 arguments · 1 required
Read Board as SVG
Read one board area or specific items as a canvas-composer SVG document. Use canvas_search to find a scope, then provide all four scope fields. Area reads fail above 500 widgets; narrow the scope and retry. Use widget_ids only for specific items; selecting a container (a frame, slide deck, or prototype) includes everything nested inside it. Name an html_content item in widget_ids to read its HTML source while the document stays within the 200,000-character update limit; area reads and nested items omit it.
Required
miro_urlmiro__canvas_search7 arguments · 2 required
Search Canvas
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.
Required
miro_urlresult_modemiro__canvas_update_from_svg4 arguments · 2 required
Update Board 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.
Required
miro_urlsvgmiro__comment_create6 arguments · 4 required
Create Canvas Comment
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.
Required
miro_urlcontentxymiro__comment_list_comments8 arguments · 1 required
Read 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.
Required
miro_urlmiro__comment_reply5 arguments · 3 required
Reply to Comment
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.
Required
miro_urlcomment_idcontentmiro__comment_resolve5 arguments · 3 required
Resolve Comment
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.
Required
miro_urlcomment_idresolvedmiro__content_item_list_roles5 arguments · 1 required
List Content Item 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.
Required
content_item_urlmiro__context_explore3 arguments · 1 required
Find Formats
DEPRECATED: superseded by canvas_search with result_mode='overview', removed on September 14, 2026. Prefer canvas_search with result_mode='overview' when available; this tool keeps working until then. Update saved prompts, skills, and automations before removal; reconnect if tools appear missing. Explore high-level items on a Miro board. Returns a list of frames, documents, prototypes (interactive design mockups with multiple UI screens), individual prototype screens, tables, and diagrams with their URLs and titles. Use this to discover what's on a board before retrieving detailed content with context_get. Returns 'total' (item count) and, for large boards, a 'message' recommending that you retrieve context per item rather than requesting a whole-board context_get overview.
Required
miro_urlmiro__context_get3 arguments · 1 required
Summarize Format
DEPRECATED: superseded by canvas_search and canvas_read_as_svg, removed on September 14, 2026. Prefer canvas_search and canvas_read_as_svg when available; this tool keeps working until then. Update saved prompts, skills, and automations before removal; reconnect if tools appear missing. Get text context from a Miro board or a specific item on a board. When a plain board URL is provided (no moveToWidget parameter): returns an AI-generated overview summarizing the entire board contents. This whole-board overview can be slow or time out on very large boards; for a large or unfamiliar board, call context_explore first, and if it reports many items (see its 'total' and 'message'), retrieve context per item (context_get with each item's moveToWidget URL) instead of the whole-board overview. When a URL with moveToWidget/focusWidget parameter is provided: returns detailed content for that specific item. For documents: returns Markdown content of the document. For prototype screens: returns HTML markup representing the UI/layout of that specific screen within an interactive design prototype. For prototype containers: returns AI-generated map of all screens with navigation flow. For frames: generates AI summary of frame contents. For tables: returns formatted table data. For diagrams: returns Mermaid code when available, otherwise an AI-generated description and analysis of the diagram structure.
Required
miro_urlmiro__diagram_create_mermaid8 arguments · 3 required
Create Mermaid Diagram
DEPRECATED: superseded by canvas_create_from_svg, removed on September 14, 2026. Prefer canvas_create_from_svg when available; this tool keeps working until then. Update saved prompts, skills, and automations before removal; reconnect if tools appear missing. For legacy behavior, author a <foreignObject data-type="diagram"> with a Mermaid body; see canvas_get_canvas_composer_skill + canvas_load_format_skill(format_name='diagramming'). Do NOT choose this tool for diagram or Mermaid requests -- 'create a diagram', 'draw a flowchart', 'diagram X using mermaid' all go to canvas_create_from_svg. Use this legacy tool ONLY when the user explicitly asks for the old diagram tools by name; never choose it on your own based on the task. (Legacy behavior: creates a structured diagram from Mermaid syntax up to v10; if no board URL is provided a new board is created, so confirm with the user first.)
Required
mermaid_codediagram_typetitlemiro__diagram_get_mermaid_instructions4 arguments · 2 required
Mermaid Instructions
DEPRECATED: superseded by canvas_get_canvas_composer_skill and canvas_load_format_skill, removed on September 14, 2026. Prefer canvas_get_canvas_composer_skill and canvas_load_format_skill when available; this tool keeps working until then. Update saved prompts, skills, and automations before removal; reconnect if tools appear missing. Do NOT choose this tool for Mermaid or diagram requests -- 'create a diagram', 'draw a flowchart', 'diagram X using mermaid' are all handled by the canvas path. Use this legacy tool ONLY when the user explicitly asks for the old diagram tools by name; never choose it on your own based on the task. (Legacy behavior: returns guidance for writing Mermaid syntax, used before diagram_create_mermaid.)
Required
miro_urldiagram_typemiro__diagram_update_mermaid6 arguments · 3 required
Update Mermaid Diagram
DEPRECATED: superseded by canvas_update_from_svg, removed on September 14, 2026. Prefer canvas_update_from_svg when available; this tool keeps working until then. Update saved prompts, skills, and automations before removal; reconnect if tools appear missing. Send the diagram's <foreignObject data-type="diagram"> back with its data-miro-id and a new Mermaid body; see canvas_get_canvas_composer_skill + canvas_load_format_skill(format_name='diagramming')). Do NOT choose this tool for diagram or Mermaid requests. Use it ONLY when the user explicitly asks for the old diagram tools by name; never select it on your own based on the task. (Legacy behavior: fully replaces the Mermaid code of a diagram previously created with diagram_create_mermaid; does not work on diagrams made with the legacy diagram_create tool.)
Required
miro_urldiagram_typemermaid_codemiro__doc_create6 arguments
Create Document
DEPRECATED: superseded by canvas_create_from_svg, removed on September 14, 2026. Prefer canvas_create_from_svg when available; this tool keeps working until then. Update saved prompts, skills, and automations before removal; reconnect if tools appear missing. Create a doc format item (structured document similar to Google Docs) on a Miro board. Use this tool to add a document onto a board the user is already working on. If the user asks for a standalone document in Miro (e.g. 'create a doc about X') without pointing at an existing board, use board_create_format with format_type='document' instead - that creates the document as its own content item rather than a widget. Content accepts GitHub Flavored Markdown format, including headings, formatting, lists, links, tables, and blockquotes. Blocks inside callouts and blockquotes are not supported. 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 document 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, x/y mark the document's top-left corner, and the document must fit within the frame's width and height. The default doc width is 800px. If no board URL is provided, a new board will be created. IMPORTANT: Always confirm with the user before creating a new board.
miro__doc_get3 arguments · 1 required
Read Documents
DEPRECATED: superseded by canvas_read_as_svg, removed on September 14, 2026. Prefer canvas_read_as_svg when available; this tool keeps working until then. Update saved prompts, skills, and automations before removal; reconnect if tools appear missing. Read the content of a doc format item from a Miro board. Returns the markdown content and content version for use in subsequent edits.
Required
miro_urlmiro__doc_update6 arguments · 1 required
Update Document
DEPRECATED: superseded by canvas_update_from_svg, removed on September 14, 2026. Prefer canvas_update_from_svg when available; this tool keeps working until then. Update saved prompts, skills, and automations before removal; reconnect if tools appear missing. Edit content in an existing doc format item using find-and-replace. Provide the exact text to find (old_content) and the text to replace it with (new_content). By default, only the first occurrence is replaced. Use replace_all=true to replace all occurrences.
Required
miro_urlmiro__image_create9 arguments · 1 required
Create Image
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.
Required
miro_urlmiro__image_get_data3 arguments · 1 required
Image 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.
Required
miro_urlmiro__image_get_upload_url9 arguments · 1 required
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.
Required
miro_urlmiro__image_get_url3 arguments · 1 required
Download Image
Get image download URL for an image item from a Miro board.
Required
miro_urlmiro__layout_create4 arguments · 2 required
Create Widgets
DEPRECATED: superseded by canvas_create_from_svg, removed on September 14, 2026. Prefer canvas_create_from_svg when available; this tool keeps working until then. Update saved prompts, skills, and automations before removal; reconnect if tools appear missing. For generic board items — anything other than presentation slide decks. Use slides_create_html for those instead. Create multiple board items (and connectors between them) on a Miro board from DSL (Domain-Specific Language) text. PREREQUISITE: Call layout_get_dsl first to obtain the DSL format specification. Items are created using board-absolute coordinates. Frames are always created first, then all other items, then connectors last (so they can reference items by alias). Returns a list of any items that failed to be created.
Required
miro_urldslmiro__layout_get_dsl2 arguments
Board Layout
DEPRECATED: superseded by canvas_get_canvas_composer_skill, removed on September 14, 2026. Prefer canvas_get_canvas_composer_skill when available; this tool keeps working until then. Update saved prompts, skills, and automations before removal; reconnect if tools appear missing. Get the DSL (Domain-Specific Language) format specification for creating board items and connectors. Returns syntax rules, item types, connector syntax, valid colors, valid shape types, and a complete example. REQUIRED: Call this before layout_create to understand the DSL format. In a conversation, call this only once and reuse the specification.
miro__layout_read4 arguments · 1 required
Item Positioning
DEPRECATED: superseded by canvas_read_as_svg, removed on September 14, 2026. Prefer canvas_read_as_svg when available; this tool keeps working until then. Update saved prompts, skills, and automations before removal; reconnect if tools appear missing. Read existing board items and return them as DSL text. When given a board URL, returns all supported top-level items (no frame children). When the URL targets a specific frame (via moveToWidget), returns the frame and its children. When the URL targets a non-frame item, returns just that item as DSL with full content. By default (mode=structured), DOCs and TABLEs are returned as shallow headers with read-only metadata (preview/length, schema/row count) so large boards stay token-light; open the DOC or TABLE by URL to read its full body. Pass mode=full to force inline DOC bodies and TABLE rows at any scope. Connectors between items in scope are returned as CONNECTOR lines (board and frame scope only). The returned DSL uses full Miro item URLs as ids and parent references; those URLs can be passed directly as miro_url to other tools (doc_get, table_list_rows, context_get, etc.) without modification, and fed back into layout_update for editing.
Required
miro_urlmiro__layout_update6 arguments · 3 required
Update Widgets
DEPRECATED: superseded by canvas_update_from_svg, removed on September 14, 2026. Prefer canvas_update_from_svg when available; this tool keeps working until then. Update saved prompts, skills, and automations before removal; reconnect if tools appear missing. Edit board items and connectors using find-and-replace on their DSL representation. Provide old_string (text to find in the current DSL) and new_string (replacement). Modified lines are updated, new lines create items/connectors, removed lines delete them. Use layout_read first to see the current DSL, then apply targeted edits. Unchanged items are not touched (no unnecessary API calls).
Required
miro_urlold_stringnew_stringmiro__preview_resource_poll3 arguments · 1 required
Poll Preview Resource
Check whether a Miro create-result preview resource is ready. Returns pending until the preview is available. Tags: preview, resource.
Required
preview_resourcemiro__prototype_create10 arguments · 1 required
Create Prototype
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.
Required
miro_urlmiro__prototype_get_upload_url4 arguments · 1 required
Get HTML 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.
Required
miro_urlmiro__prototype_read5 arguments · 1 required
Read Prototype Screens
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.
Required
miro_urlmiro__section_create5 arguments · 1 required
Create Section
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.
Required
space_urlmiro__section_delete3 arguments · 1 required
Delete Section
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.
Required
section_content_item_idmiro__section_update_metadata5 arguments · 1 required
Update Section Metadata
Rename a section or change its position among sibling sections. Provide at least one of a new title or a new order.
Required
section_content_item_idmiro__space_create5 arguments · 1 required
Create New Space
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.
Required
namemiro__space_list4 arguments
List Team Spaces
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.
miro__space_list_boards3 arguments · 1 required
List Space 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.
Required
space_urlmiro__space_list_children5 arguments · 1 required
List Space Or Section 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.
Required
content_item_idmiro__space_role_update6 arguments · 4 required
Update Space Role
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.
Required
space_urlsubject_idsubject_typerolemiro__space_share6 arguments · 4 required
Share Space
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.
Required
space_urlsubject_idsubject_typerolemiro__space_update_metadata6 arguments · 1 required
Update Space 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.
Required
space_urlmiro__table_create7 arguments · 2 required
Create Table
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.
Required
table_titlecolumnsmiro__table_get_latest_update_history4 arguments · 2 required
Read 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.
Required
miro_urlrow_idmiro__table_list_rows6 arguments · 1 required
Read Table
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).
Required
miro_urlmiro__table_sync_rows4 arguments · 2 required
Update Table
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"}]}]}
Required
miro_urlrowsmiro__table_update_view13 arguments · 2 required
Update Table 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"}.
Required
miro_urllayoutmiro__user_who_am_i2 arguments
Who Am I
Returns the identity of the current authenticated user.
Three steps, and the last one is not yours.
Point a client at Omniio
One URL, authorized once by your client. If you already use Omniio, this step is done.
Switch Miro on
Authorize it from your library; the grant is yours and stays yours.
Ask for what you need
The agent searches, reads the one schema it picked, and runs it. You do not name the tool.
claude mcp add --transport http omniio https://mcp.omniio.devOthers in the same category.
They share the endpoint, so having more than one on costs you nothing in context — the search decides which is relevant.