Server Details
Official Miro MCP server (Beta) - Supports context to code and creating diagrams & visualizations.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- miroapp/miro-ai
- GitHub Stars
- 7
Available Tools
14 toolsboard_get_image_dataTry in Inspector
Get image data for an image item from a Miro board.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | No | The image item ID, or a full Miro image URL. Auto-extracted from moveToWidget/focusWidget URL query params if board_id is a URL and not explicitly provided in the tool call. | |
| board_id | Yes | The Miro board ID or a full Miro board URL (e.g., 'https://miro.com/app/board/iAjCCakxOk1='). URLs with moveToWidget or focusWidget query parameters will have item_id auto-extracted if not explicitly provided in the tool call. |
board_get_image_download_urlTry in Inspector
Get image download URL for an image item from a Miro board.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | No | The image item ID, or a full Miro image URL. Auto-extracted from moveToWidget/focusWidget URL query params if board_id is a URL and not explicitly provided in the tool call. | |
| board_id | Yes | The Miro board ID or a full Miro board URL (e.g., 'https://miro.com/app/board/iAjCCakxOk1='). URLs with moveToWidget or focusWidget query parameters will have item_id auto-extracted if not explicitly provided in the tool call. |
board_get_itemsTry in Inspector
List items on a board with cursor-based pagination
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | Max items per page (10-1000). Capped at 50 when item_id is specified. | |
| cursor | No | Opaque cursor for next page | |
| item_id | No | ID of parent container to filter items. Auto-extracted from moveToWidget/focusWidget URL query params if board_id is a URL and not explicitly provided in the tool call. | |
| board_id | Yes | The Miro board ID or a full Miro board URL (e.g., 'https://miro.com/app/board/iAjCCakxOk1='). URLs with moveToWidget or focusWidget query parameters will have item_id auto-extracted if not explicitly provided in the tool call. | |
| item_type | No | Filter items by type. Use to get items of a specific type like images, cards, etc. |
context_exploreTry in Inspector
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.
| Name | Required | Description | Default |
|---|---|---|---|
| board_url | Yes | The full Miro board URL (e.g., 'https://miro.com/app/board/iAjCCakxOk1='). Accepts URLs with moveToWidget or focusWidget query parameters to scope items to a specific container. |
context_getTry in Inspector
Get text context from a specific item on a Miro board. The URL must include the moveToWidget parameter to identify the item. For documents: returns HTML markup of the document content. 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 AI-generated description and analysis of the diagram structure.
| Name | Required | Description | Default |
|---|---|---|---|
| item_url | Yes | Miro board URL with moveToWidget or focusWidget parameter identifying the item. Example: https://miro.com/app/board/uXjVGeTCXKY=/?moveToWidget=3458764654510025479 |
diagram_create_newTry in Inspector
Create a diagram on a Miro board from DSL (Domain-Specific Language) text. PREREQUISITE: Call diagram_get_dsl_spec first to obtain the DSL format specification for the diagram type you want to create. Then generate DSL text following that specification and pass it to this tool. Supported diagram types: flowchart, uml_class, uml_sequence, entity_relationship. Use x and y coordinates to position the diagram on the board.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X-axis coordinate for diagram placement on the board. The center of the board is at x=0. Use different x values to prevent diagrams from overlapping when creating multiple diagrams. | |
| y | No | Y-axis coordinate for diagram placement on the board. The center of the board is at y=0. Use different y values to prevent diagrams from overlapping when creating multiple diagrams. | |
| board_id | Yes | The Miro board ID or a full Miro board URL (e.g., 'https://miro.com/app/board/iAjCCakxOk1='). URLs with moveToWidget or focusWidget query parameters will have item_id auto-extracted if not explicitly provided in the tool call. | |
| parent_id | No | ID of a parent frame to attach the diagram to. When specified, the diagram will be placed inside the frame. Leave empty to place the diagram directly on the canvas. | |
| diagram_dsl | Yes | DSL text defining the diagram. Must follow the format specification obtained from diagram_get_dsl_spec. The DSL describes diagram elements, their relationships, colors, and layout hints. | |
| diagram_type | Yes | Type of diagram to create. Options: 'flowchart' for process flows and workflows, 'uml_class' for UML class diagrams, 'uml_sequence' for UML sequence diagrams, 'entity_relationship' for ERD diagrams. Must match the diagram_type used in diagram_get_dsl_spec. |
diagram_get_dsl_specTry in Inspector
Get the DSL (Domain-Specific Language) format specification for a diagram type. Returns the rules, syntax, color guidelines, and examples needed to write valid DSL for creating diagrams. Supported diagram types: flowchart, uml_class, uml_sequence, entity_relationship. REQUIRED: Call this before calling diagram_create_new to understand the expected DSL format. When creating multiple diagrams of the same type in a conversation, you only need to call diagram_get_dsl_spec once and reuse the format specification for subsequent diagrams.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | The unique identifier (ID) of the Miro board. | |
| diagram_type | Yes | Type of diagram to get the DSL format for. Options: 'flowchart' for process flows and workflows, 'uml_class' for UML class diagrams showing class structures and inheritance, 'uml_sequence' for UML sequence diagrams showing interactions over time, 'entity_relationship' for ERD database schema diagrams. |
doc_editTry in Inspector
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.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | No | The doc item ID. Auto-extracted from moveToWidget/focusWidget URL query params if board_id is a URL and not explicitly provided in the tool call. | |
| board_id | Yes | The Miro board ID or a full Miro board URL (e.g., 'https://miro.com/app/board/iAjCCakxOk1='). URLs with moveToWidget or focusWidget query parameters will have item_id auto-extracted if not explicitly provided in the tool call. | |
| new_content | No | The text to replace old_content with. Can be empty to delete the found text. | |
| old_content | No | The exact text to find in the document. Must match exactly - read the document first to get the precise text. | |
| replace_all | No | If true, replaces all occurrences of old_content. If false (default), replaces only the first occurrence. |
doc_newTry in Inspector
Create a doc format item (structured document similar to Google Docs) on a Miro board. Content uses markdown syntax: # headings, bold, italic, - lists, links. NOT supported: code blocks, tables. Supports positioning via x/y coordinates and can be placed inside frames.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X-axis coordinate for document placement on the board. The center of the board is at x=0. Use different x values to prevent documents from overlapping when creating multiple items. | |
| y | No | Y-axis coordinate for document placement on the board. The center of the board is at y=0. Use different y values to prevent documents from overlapping when creating multiple items. | |
| content | No | The content of the document in markdown format. Supported: # headings (h1-h6), **bold**, *italic*, - unordered lists, 1. ordered lists, [links](url). NOT supported: code blocks, tables. | |
| board_id | Yes | The Miro board ID or a full Miro board URL (e.g., 'https://miro.com/app/board/iAjCCakxOk1='). URLs with moveToWidget or focusWidget query parameters will have item_id auto-extracted if not explicitly provided in the tool call. | |
| parent_id | No | ID of a parent frame to attach the document to. When specified, the document will be placed inside the frame. Leave empty to place the document directly on the canvas. |
doc_readTry in Inspector
Read the content of a doc format item from a Miro board. Returns the markdown content and content version for use in subsequent edits.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | No | The doc item ID. Auto-extracted from moveToWidget/focusWidget URL query params if board_id is a URL and not explicitly provided in the tool call. | |
| board_id | Yes | The Miro board ID or a full Miro board URL (e.g., 'https://miro.com/app/board/iAjCCakxOk1='). URLs with moveToWidget or focusWidget query parameters will have item_id auto-extracted if not explicitly provided in the tool call. |
draft_doc_newTry in Inspector
Create a doc format item (structured document similar to Google Docs) on a Miro board. Content uses markdown syntax: # headings, bold, italic, - lists, links. NOT supported: code blocks, tables. Supports positioning via x/y coordinates and can be placed inside frames.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X-axis coordinate for document placement on the board. The center of the board is at x=0. Use different x values to prevent documents from overlapping when creating multiple items. | |
| y | No | Y-axis coordinate for document placement on the board. The center of the board is at y=0. Use different y values to prevent documents from overlapping when creating multiple items. | |
| content | No | The content of the document in markdown format. Supported: # headings (h1-h6), **bold**, *italic*, - unordered lists, 1. ordered lists, [links](url). NOT supported: code blocks, tables. | |
| board_id | Yes | The Miro board ID or a full Miro board URL (e.g., 'https://miro.com/app/board/iAjCCakxOk1='). URLs with moveToWidget or focusWidget query parameters will have item_id auto-extracted if not explicitly provided in the tool call. | |
| parent_id | No | ID of a parent frame to attach the document to. When specified, the document will be placed inside the frame. Leave empty to place the document directly on the canvas. |
table_create_newTry in Inspector
Create a table on a Miro board with specified columns. Supports text and select column types.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | The title/name of the table | |
| columns | Yes | 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 - Each option needs a displayValue and color (hex code) Examples: [ {"type": "text", "title": "Title"}, {"type": "text", "title": "Description"}, { "type": "select", "title": "Status", "options": [ {"displayValue": "To Do", "color": "#FF0000"}, {"displayValue": "In Progress", "color": "#FFA500"}, {"displayValue": "Done", "color": "#00FF00"} ] } ] | |
| board_id | Yes | The Miro board ID or a full Miro board URL (e.g., 'https://miro.com/app/board/iAjCCakxOk1='). URLs with moveToWidget or focusWidget query parameters will have item_id auto-extracted if not explicitly provided in the tool call. |
table_list_rowsTry in Inspector
Get rows from a Miro table with columns metadata. Supports filtering by column value. Returns text and select columns only.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (minimum 1) | |
| item_id | No | Table ID. Auto-extracted from moveToWidget/focusWidget URL query params if board_id is a URL and not explicitly provided in the tool call. | |
| board_id | Yes | The Miro board ID or a full Miro board URL (e.g., 'https://miro.com/app/board/iAjCCakxOk1='). URLs with moveToWidget or focusWidget query parameters will have item_id auto-extracted if not explicitly provided in the tool call. | |
| filter_by | No | Filter rows by column value (case-insensitive). Include the column name and the display value of the option. Only select columns are supported. Example: "Status=In progress" | |
| next_cursor | No | Pagination cursor for the next set of results |
table_sync_rowsTry in Inspector
Add or update existing table rows.To update existing rows, include the value of the column that identifies the row (usually Title or Task). If a row cannot be found, a new row will be created.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | Array of rows to add or update. [{ "cells": [ {"columnTitle": "Task", "value": "Write tests"}, {"columnTitle": "Status", "value": "To Do"} ] }] | |
| item_id | No | Table ID. Auto-extracted from moveToWidget/focusWidget URL query params if board_id is a URL and not explicitly provided in the tool call. | |
| board_id | Yes | The Miro board ID or a full Miro board URL (e.g., 'https://miro.com/app/board/iAjCCakxOk1='). URLs with moveToWidget or focusWidget query parameters will have item_id auto-extracted if not explicitly provided in the tool call. | |
| key_column | No | Column name to use as key for matching rows. If provided, rows with matching key column values will be updated. If omitted, all rows will be inserted as new. Example: "Task" or "Title" |
FAQ
How do I claim this server?
To claim this server, publish a /.well-known/glama.json file on your server's domain with the following structure:
The email address must match the email associated with your Glama account. Once verified, the server will appear as claimed by you.
What are the benefits of claiming a server?
- Control your server's listing on Glama, including description and metadata
- Receive usage reports showing how your server is being used
- Get monitoring and health status updates for your server
Your Connectors
Sign in to create a connector for this server.