Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Miro

OCI · GHCR.IO/OLGASAFONOVA/MIRO-MCP-SERVER:1.24.0 · 6 COMPONENTS · SCANNED AUG 22

Control Miro whiteboards with AI. 110 tools for boards, diagrams, mindmaps, comments, SVG.

41 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security0
  • Malware scan not yet available for this package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 3 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability80
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 21848 tokens (~198/item across 110 items; 110 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass

Unverified: 2 categories

Categories scored 0 because we could not verify them: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

oci · ghcr.io/olgasafonova/miro-mcp-server:1.24.0

# add to Claude Code
claude mcp add olgasafonova-miro-mcp-server -- docker run --rm -i ghcr.io/olgasafonova/miro-mcp-server:1.24.0
# add to Codex CLI
codex mcp add olgasafonova-miro-mcp-server -- docker run --rm -i ghcr.io/olgasafonova/miro-mcp-server:1.24.0
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "olgasafonova-miro-mcp-server": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/olgasafonova/miro-mcp-server:1.24.0"
      ],
      "enabled": true
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  olgasafonova-miro-mcp-server:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/olgasafonova/miro-mcp-server:1.24.0"]
// mcp.json
{
  "mcpServers": {
    "olgasafonova-miro-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/olgasafonova/miro-mcp-server:1.24.0"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 18 Aug 26 41

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 22 Aug 2026 · Analysed oci/ghcr.io/olgasafonova/miro-mcp-server:1.24.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published
MCP tools · 110 exposed · ~21,171 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
miro_get_board ~162

Get board metadata: name, description, owner, creation date, and sharing policy. USE WHEN: "who owns this board?", "when was this board created?", "board settings", "tell me about this board" NOT FOR: Board content overview with item counts (use `miro_get_board_summary`). Full content export for AI analysis (use `miro_get_board_content`). PARAMETERS: - board_id: Required. Get from miro_list_boards or miro_find_board. RETURNS: Board name, description, owner info, creation/modification timestamps, sharing policy, and view link. VOICE-FRIENDLY: "Board 'Sprint Planning' owned by Jane, created Jan 15"

NameTypeReqDescription
board_idstringyesBoard ID to retrieve
NameTypeReqDescription
createdAtstring
descriptionstring
idstringyes
item_countinteger
modifiedAtstring
namestringyes
ownernull|object
picturenull|object
teamnull|object
viewLinkstring

No examples provided.

miro_get_board_content ~162

Get all board content for AI analysis and documentation generation. Returns items by type, frame hierarchy, connectors, and tags. For a quick summary, use miro_get_board_summary instead. USE WHEN: "analyze this board", "generate documentation from board", "describe everything on this board" VOICE-FRIENDLY: "Retrieved full content for 'Design Sprint': 26 items across 3 frames, 5 connectors, 2 tags"

NameTypeReqDescription
board_idstringyesBoard ID to analyze
include_connectorsbooleanInclude connector relationships (default true)
include_tagsbooleanInclude tag data and usage (default true)
max_itemsintegerMaximum items to fetch (default 500, max 2000)
NameTypeReqDescription
connectorsnull|array
content_summaryobjectyes
created_atstring
descriptionstring
framesnull|array
idstringyes
item_countsobjectyes
items_by_typeobjectyes
messagestringyes
modified_atstring
namestringyes
tagsnull|array
total_itemsintegeryes
truncatedbooleanyes
view_linkstringyes

No examples provided.

miro_get_board_member ~82

Get details of a specific board member. USE WHEN: "what role does X have", "member details", "check someone's access" RETURNS: Member ID, name, and role. VOICE-FRIENDLY: "John Smith has editor access"

NameTypeReqDescription
board_idstringyesBoard ID
member_idstringyesMember ID to retrieve
NameTypeReqDescription
emailstring
idstringyes
messagestringyes
namestring
rolestringyes

No examples provided.

miro_get_board_picture ~76

Get the preview image URL for a board. Works for all Miro plans. For full PDF/SVG exports, use the Enterprise export tools. RETURNS: Preview image URL for the board. VOICE-FRIENDLY: "Got preview image for the board"

NameTypeReqDescription
board_idstringyesBoard ID to get picture for
NameTypeReqDescription
board_idstringyes
image_urlstringyes
messagestringyes

No examples provided.

miro_get_board_summary ~155

Get board overview with item counts and statistics. For full content export, use miro_get_board_content instead. USE WHEN: "summarize this board", "board stats", "what's the overview" CAVEAT: counts come from Miro's REST index, which lags items created moments ago by Miro AI or the official Miro MCP composer, and excludes interactive widgets (polls, kanban, timelines) entirely. A count lower than what the board shows visually is index lag, not data loss. VOICE-FRIENDLY: "Design Sprint has 15 stickies, 8 shapes, and 3 frames - 26 items total"

NameTypeReqDescription
board_idstringyesBoard ID to summarize
NameTypeReqDescription
descriptionstring
idstringyes
item_countsobjectyes
messagestringyes
namestringyes
recent_itemsnull|array
total_itemsintegeryes
view_linkstringyes

No examples provided.

miro_get_code_widget ~106

Get code widget details including full source code, language, and position. Uses v2-experimental API. May change or become unavailable before GA. USE WHEN: "show the code in this widget", "read that code snippet" RETURNS: Widget ID, full code, language, title, line-number setting, position, size, and parent frame ID.

NameTypeReqDescription
board_idstringyesBoard ID
item_idstringyesCode widget item ID to retrieve
NameTypeReqDescription
codestringyes
created_atstring
heightnumber
idstringyes
languagestring
line_numbers_visiblebooleanyes
messagestringyes
modified_atstring
parent_idstring
titlestring
widthnumber
xnumberyes
ynumberyes

No examples provided.

miro_get_comment ~117

Get one comment thread with all its messages. Uses a v2-experimental API that Miro ships undocumented; it may change or become unavailable without notice. USE WHEN: "show that comment thread", "what did they reply" PARAMETERS: - board_id, comment_id: Required. Get comment_id from miro_list_comments. RETURNS: Thread with messages, author info, resolved state, attached item ID.

NameTypeReqDescription
board_idstringyesBoard ID the comment belongs to
comment_idstringyesComment thread ID
NameTypeReqDescription
created_atstring
created_bynull|object
idstringyes
item_idstring
messagestringyes
messagesnull|arrayyes
resolvedbooleanyes

No examples provided.

miro_get_connector ~101

Get full details of a specific connector by ID. USE WHEN: "connector details", "what does this connector link", "show this arrow" RETURNS: Connector ID, start/end item IDs, style, caps, caption, color, and timestamps. VOICE-FRIENDLY: "This connector links Item A to Item B with a curved arrow"

NameTypeReqDescription
board_idstringyesBoard ID
connector_idstringyesConnector ID to retrieve
NameTypeReqDescription
captionstring
colorstring
created_atstring
created_bystring
end_capstring
end_item_idstringyes
idstringyes
messagestringyes
modified_atstring
modified_bystring
start_capstring
start_item_idstringyes
stylestring

No examples provided.

miro_get_desire_paths ~144

Query desire path normalizations. Shows what agents tried to send and how it was auto-corrected (URLs in ID fields, camelCase keys, string numbers, etc.). USE WHEN reviewing tool usage patterns to improve descriptions or schemas. Filter by tool name or normalizer rule. Returns top patterns and recent events.

NameTypeReqDescription
limitintegerMaximum recent events to return (default 20, max 100)
rulestringFilter by normalizer rule: url_to_id, camel_to_snake, string_to_numeric, whitespace, boolean_coercion
toolstringFilter by tool name (e.g., miro_get_board)
NameTypeReqDescription
by_paramobjectyes
by_ruleobjectyes
by_toolobjectyes
messagestringyes
recent_eventsnull|arrayyes
top_patternsnull|arrayyes
total_normalizationsintegeryes

No examples provided.

miro_get_diagram ~193

Get metadata for a specific native diagram item by ID. Returns title, position, size, parent frame, and timestamps. USE WHEN: "get diagram details", "where is that diagram", "diagram info" NOT FOR: Reading a diagram's internal nodes and edges — the REST API exposes item metadata only. For full diagram content, open the board in Miro. PARAMETERS: - board_id: Required - item_id: Diagram item ID (required). Get from miro_list_diagrams. RETURNS: Diagram ID, title, position, size, parent frame ID, timestamps, and view link. RELATED: Use miro_list_diagrams to discover diagrams on a board. VOICE-FRIENDLY: "Diagram 'Architecture' is at position (100, 200), size 1200x700"

NameTypeReqDescription
board_idstringyesBoard ID
item_idstringyesDiagram item ID
NameTypeReqDescription
created_atstring
created_bystring
heightnumber
idstringyes
item_urlstring
messagestringyes
modified_atstring
modified_bystring
parent_idstring
titlestring
typestringyes
widthnumber
xnumberyes
ynumberyes

No examples provided.

miro_get_doc ~114

Get details of a doc format item by ID. USE WHEN: User asks "show me that document", "what's in this doc", "read the document" PARAMETERS: - board_id: Required - item_id: Doc format item ID (required) RETURNS: Document content (Markdown), position, timestamps. RELATED: Use miro_create_doc to create new documents. Use miro_delete_doc to remove.

NameTypeReqDescription
board_idstringyesBoard ID
item_idstringyesDoc format item ID
NameTypeReqDescription
contentstring
created_atstring
created_bystring
idstringyes
messagestringyes
modified_atstring
modified_bystring
xnumberyes
ynumberyes

No examples provided.

miro_get_document ~99

Get details of a document on a Miro board, including its Miro-hosted URL and title. For image items, use `miro_get_image` instead. USE WHEN: "get document details", "what document is this", "document URL" VOICE-FRIENDLY: "Document 'Q4 Report' hosted at Miro"

NameTypeReqDescription
board_idstringyesBoard ID
item_idstringyesDocument item ID
NameTypeReqDescription
document_urlstring
heightnumber
idstringyes
messagestringyes
parent_idstring
titlestring
widthnumber
xnumber
ynumber

No examples provided.

miro_get_export_job_results ~55

Get download links for completed export. ENTERPRISE ONLY. Links expire in 15 min; call again to regenerate.

NameTypeReqDescription
job_idstringyesExport job ID
org_idstringyesOrganization ID
NameTypeReqDescription
boardsnull|arrayyes
expires_instring
job_idstringyes
messagestringyes
statusstringyes

No examples provided.

miro_get_export_job_status ~219

Check the progress of a board export job. Call after miro_create_export_job. ENTERPRISE ONLY. USE WHEN: Polling an export job started with miro_create_export_job. Call repeatedly until status is "completed" or "failed". PARAMETERS: - org_id: Required. Same organization ID used in miro_create_export_job. - job_id: Required. Job ID returned by miro_create_export_job. RETURNS: Job ID, status (in_progress, completed, failed), progress percentage, and boards exported/total count. NEXT STEPS BY STATUS: - in_progress: Wait a few seconds, then poll again - completed: Call miro_get_export_job_results to get download links - failed: Export failed; check board IDs and permissions FAILS WHEN: Not on Enterprise plan. Invalid org_id or job_id. VOICE-FRIENDLY: "Export 50% complete: 5 of 10 boards exported"

NameTypeReqDescription
job_idstringyesExport job ID
org_idstringyesOrganization ID
NameTypeReqDescription
boards_exportedinteger
boards_totalinteger
created_atstring
finished_atstring
job_idstringyes
messagestringyes
progressinteger
statusstringyes

No examples provided.

miro_get_frame ~78

Get full details of a specific frame by ID. To get items inside the frame, use `miro_get_frame_items`. VOICE-FRIENDLY: "Frame 'Sprint Planning' is 800x600 with 12 items inside"

NameTypeReqDescription
board_idstringyesBoard ID
frame_idstringyesFrame ID to retrieve
NameTypeReqDescription
child_countintegeryes
colorstring
created_atstring
created_bystring
heightnumberyes
idstringyes
messagestringyes
modified_atstring
modified_bystring
titlestring
widthnumberyes
xnumberyes
ynumberyes

No examples provided.

miro_get_frame_items ~171

Get all items contained within a specific frame. Filterable by type. For items in a logical group, use miro_get_group_items. VOICE-FRIENDLY: "Frame has 8 items: 5 stickies, 2 shapes, 1 text"

NameTypeReqDescription
board_idstringyesBoard ID
cursorstringPagination cursor
detail_levelstringResponse detail level: 'minimal' (default) returns basic fields, 'full' includes style, geometry, timestamps, and creator info
frame_idstringyesFrame ID to get items from
limitintegerMax items to return (default 50, max 100)
typestringFilter by item type: sticky_note, shape, text, card, image
NameTypeReqDescription
countintegeryes
cursorstring
has_morebooleanyes
itemsnull|arrayyes
messagestringyes

No examples provided.

miro_get_group ~82

Get details of a specific group by ID. USE WHEN: "group details", "what's in this group", "show group info" RETURNS: Group ID and member item IDs. VOICE-FRIENDLY: "This group contains 4 items"

NameTypeReqDescription
board_idstringyesBoard ID
group_idstringyesGroup ID to retrieve
NameTypeReqDescription
idstringyes
itemsnull|arrayyes
messagestringyes

No examples provided.

miro_get_group_items ~137

Get items in a group with their details. For items inside a visual frame, use miro_get_frame_items. USE WHEN: "list items in this group", "what items are grouped together", "show group members" RETURNS: Array of items with IDs, types, and content. VOICE-FRIENDLY: "Group has 4 items: 2 stickies, 1 shape, 1 text"

NameTypeReqDescription
board_idstringyesBoard ID
cursorstringPagination cursor
group_idstringyesGroup ID
limitintegerMax items to return (default 50)
NameTypeReqDescription
countintegeryes
has_morebooleanyes
itemsnull|arrayyes
messagestringyes

No examples provided.

miro_get_image ~119

Get details of an image on a Miro board, including its Miro-hosted URL, title, and dimensions. Use the image_url to download or reference the image. For document items, use `miro_get_document` instead. USE WHEN: "get image URL", "what image is this", "image details" VOICE-FRIENDLY: "Image 'Logo' is 800x600 at position (100, 200)"

NameTypeReqDescription
board_idstringyesBoard ID
item_idstringyesImage item ID
NameTypeReqDescription
heightnumber
idstringyes
image_urlstringyes
messagestringyes
parent_idstring
titlestring
widthnumber
xnumber
ynumber

No examples provided.

miro_get_item ~91

Get full details of a specific item by ID. If you don't have the item ID, use `miro_search_board` to find it or `miro_list_items` to browse. VOICE-FRIENDLY: "That sticky says 'Review Q4 goals' and was created by John yesterday"

NameTypeReqDescription
board_idstringyesBoard ID
item_idstringyesItem ID to retrieve
NameTypeReqDescription
colorstring
contentstring
created_atstring
created_bystring
heightnumber
idstringyes
modified_atstring
modified_bystring
parent_idstring
shapestring
titlestring
typestringyes
widthnumber
xnumberyes
ynumberyes

No examples provided.

miro_get_item_tags ~110

List tags attached to a specific item. USE WHEN: User asks "what tags are on this sticky", "show labels for this item" PARAMETERS: - board_id: Required - item_id: Item ID (required) RETURNS: List of tags attached to the item. RELATED: For the reverse lookup (all items with a specific tag), use miro_get_items_by_tag.

NameTypeReqDescription
board_idstringyesBoard ID
item_idstringyesID of the item
NameTypeReqDescription
countintegeryes
item_idstringyes
messagestringyes
tagsnull|arrayyes

No examples provided.

miro_get_items_by_tag ~225

Get all items on a board that have a specific tag attached. USE WHEN: User asks "show items tagged Urgent", "what's labeled Done", "find all items with this tag" PARAMETERS: - board_id: Required - tag_id: Tag ID to filter by (required). Get tag IDs from list_tags. - limit: Max items (default 50, max 50) - offset: Pagination offset RETURNS: List of items with IDs, types, and content that have the specified tag. RELATED: Use miro_list_tags to get tag IDs. Use miro_get_item_tags for the reverse lookup (tags on a specific item). Use miro_attach_tag / miro_detach_tag to manage tag assignments. VOICE-FRIENDLY: "Found 7 items tagged 'Urgent'"

NameTypeReqDescription
board_idstringyesBoard ID
limitintegerMax items to return (default 50, max 50)
offsetintegerOffset for pagination
tag_idstringyesTag ID to filter by
NameTypeReqDescription
countintegeryes
has_morebooleanyes
itemsnull|arrayyes
messagestringyes
tag_idstringyes

No examples provided.

miro_get_mindmap_node ~96

Get mindmap node details including content, hierarchy, and position. Uses v2-experimental API. USE WHEN: "mindmap node details", "what's in this node", "show node content" RETURNS: Node ID, content, parent/child IDs, position, and root flag.

NameTypeReqDescription
board_idstringyesBoard ID
node_idstringyesMindmap node ID to retrieve
NameTypeReqDescription
child_idsnull|array
contentstringyes
created_atstring
idstringyes
is_rootbooleanyes
messagestringyes
modified_atstring
node_viewstring
parent_idstring
xnumberyes
ynumberyes

No examples provided.

miro_get_org_audit_logs ~280

Query MIRO's organization-wide audit log — who did what across the Miro workspace, including actions taken outside this server. ENTERPRISE ONLY; needs the auditlogs:read scope. USE WHEN investigating workspace activity, access changes, or board history across users. For what this server itself executed, use miro_get_audit_log instead. created_after and created_before are BOTH REQUIRED — the API has no default window. Miro retains 90 days; older events are only available via the CSV export in the Miro admin UI. RETURNS: Cursor-paginated events with actor (name/email), target object, event type, category, team, and source IP.

NameTypeReqDescription
created_afterstringyesREQUIRED. Start of the time window (ISO 8601, e.g. 2026-08-01T00:00:00Z). Miro retains 90 days.
created_beforestringyesREQUIRED. End of the time window (ISO 8601, e.g. 2026-08-14T00:00:00Z).
cursorstringPagination cursor from a previous response
limitintegerMax events per page (default 50, max 100)
sortingstringSort order by creation time: ASC or DESC (default DESC)
NameTypeReqDescription
countintegeryes
cursorstring
eventsnull|arrayyes
has_morebooleanyes
messagestring

No examples provided.

miro_get_table ~194

Get metadata for a specific table (data_table_format item) by ID. Returns position, size, parent frame, and timestamps. USE WHEN: "get table details", "where is that table", "table info" NOT FOR: Reading table row data or column definitions. The Miro REST API provides table metadata only. PARAMETERS: - board_id: Required - item_id: Table item ID (required). Get from miro_list_tables or miro_list_items with type filter. RETURNS: Table ID, position, size, parent frame ID, timestamps, and view link. RELATED: Use miro_list_tables to discover tables. Use miro_list_items with type "data_table_format" as an alternative. VOICE-FRIENDLY: "Table is at position (100, 200), size 400x300"

NameTypeReqDescription
board_idstringyesBoard ID
item_idstringyesTable item ID
NameTypeReqDescription
created_atstring
created_bystring
heightnumber
idstringyes
item_urlstring
messagestringyes
modified_atstring
modified_bystring
parent_idstring
typestringyes
widthnumber
xnumberyes
ynumberyes

No examples provided.

miro_get_tag ~86

Get details of a specific tag by ID. USE WHEN: "tag details", "what color is this tag", "show tag info" RETURNS: Tag ID, title, and color. VOICE-FRIENDLY: "Tag 'Urgent' is red"

NameTypeReqDescription
board_idstringyesBoard ID
tag_idstringyesID of the tag to retrieve
NameTypeReqDescription
colorstringyes
idstringyes
messagestringyes
titlestringyes

No examples provided.

miro_list_all_items ~175

Retrieve ALL items from a board with automatic pagination (up to 10000). For quick lookups (max 50), use miro_list_items instead. USE WHEN: "get everything on board", "list all items", "export board contents" VOICE-FRIENDLY: "Retrieved 847 items in 9 pages"

NameTypeReqDescription
board_idstringyesBoard ID
detail_levelstringResponse detail level: 'minimal' (default) returns basic fields, 'full' includes style, geometry, timestamps, and creator info
max_itemsintegerMaximum total items to fetch across all pages (default 500, max 10000)
typestringFilter by item type: sticky_note, shape, text, connector, frame, card, image, document, embed
NameTypeReqDescription
countintegeryes
itemsnull|arrayyes
messagestringyes
total_pagesintegeryes
truncatedbooleanyes

No examples provided.

miro_list_board_members ~107

List all users who have access to a board. USE WHEN: "who has access", "list board collaborators", "show board members" RETURNS: Array of members with IDs, names, and roles. VOICE-FRIENDLY: "This board has 5 members: 2 editors, 3 viewers"

NameTypeReqDescription
board_idstringyesBoard ID
limitintegerMax members to return (default 50)
offsetstringPagination cursor
NameTypeReqDescription
countintegeryes
has_morebooleanyes
membersnull|arrayyes
messagestringyes

No examples provided.

miro_list_boards ~193

List Miro boards accessible to the user. Use board ID for subsequent operations. For a specific board by name, use `miro_find_board` instead. RETURNS per board: id, name, description, view_link, team_id, team_name, owner (id + name), created_at, modified_at. Team and owner come back on the listing itself, so segmenting boards by team or owner, or sorting by recency, needs no follow-up call. Feed team_id straight back into the team_id filter to narrow the next page. VOICE-FRIENDLY: "Found 5 boards: Design Sprint, Product Roadmap, Team Retro..."

NameTypeReqDescription
limitintegerMax boards to return (default 20, max 50)
offsetstringPagination cursor
querystringSearch boards by name
team_idstringFilter by team ID
NameTypeReqDescription
boardsnull|arrayyes
countintegeryes
has_morebooleanyes
offsetstring

No examples provided.

miro_list_code_widgets ~126

List code widgets on a board with truncated code previews. Uses v2-experimental API. May change or become unavailable before GA. USE WHEN: "what code snippets are on this board", "find the code widgets" RETURNS: Array of widgets with IDs, titles, languages, and 80-char code previews. Use miro_get_code_widget for full source. Paginated via cursor.

NameTypeReqDescription
board_idstringyesBoard ID
cursorstringPagination cursor
limitintegerMax widgets to return (default 50, max 100)
NameTypeReqDescription
countintegeryes
cursorstring
has_morebooleanyes
messagestringyes
widgetsnull|arrayyes

No examples provided.

miro_list_comments ~200

List comment threads on a board, each with its full message history, author, resolved state, and attached item ID. Uses a v2-experimental API that Miro ships undocumented; it may change or become unavailable without notice. USE WHEN: "what feedback is on this board", "show unresolved comments", "read the comments" PARAMETERS: - board_id: Required. - limit: Max threads per page (default 20, max 50). offset: zero-based pagination. RETURNS: Threads with messages, count, total, has_more. Filter resolved client-side via each thread's resolved flag. VOICE-FRIENDLY: "3 comment threads, 1 unresolved: 'move the CTA up' from Olga"

NameTypeReqDescription
board_idstringyesBoard ID to list comments from
limitintegerMax threads to return (default 20, max 50)
offsetintegerZero-based offset for pagination
NameTypeReqDescription
commentsnull|arrayyes
countintegeryes
has_morebooleanyes
messagestring
totalintegeryes

No examples provided.

miro_list_connectors ~119

List all connectors (lines/arrows) on a Miro board. USE WHEN: "show all connectors", "list arrows on board", "what's connected" RETURNS: Array of connectors with IDs, start/end item IDs, style, and captions. Paginated via cursor. VOICE-FRIENDLY: "Found 12 connectors on the board"

NameTypeReqDescription
board_idstringyesBoard ID
cursorstringPagination cursor
limitintegerMax connectors to return (default 50, max 100)
NameTypeReqDescription
connectorsnull|arrayyes
countintegeryes
cursorstring
has_morebooleanyes
messagestringyes

No examples provided.

miro_list_diagrams ~270

List native diagram items on a Miro board (diagrams made with Miro's own diagramming tools). Returns diagram metadata: ID, title, position, size, and timestamps. USE WHEN: "find diagrams on this board", "list all diagrams", "does this board have diagrams" NOT FOR: Diagrams built from shapes and connectors by miro_generate_diagram — those are regular items, not native diagram items; use miro_list_items. Creating diagrams: the REST API is read-only here (POST returns 405); creation happens in Miro's UI or hosted tooling. PARAMETERS: - board_id: Required - limit: Max diagrams to return (default 10, max 50) - cursor: Pagination cursor from previous response RETURNS: Diagram items with IDs, titles, positions, sizes, and timestamps. RELATED: Use miro_get_diagram for a single diagram's details. Use miro_generate_diagram to draw a new diagram from Mermaid code (as shapes, not a native diagram item). VOICE-FRIENDLY: "Found 2 diagrams on the board"

NameTypeReqDescription
board_idstringyesBoard ID
cursorstringPagination cursor from previous response
limitintegerMax diagrams to return (default 10, max 50)
NameTypeReqDescription
countintegeryes
cursorstring
diagramsnull|arrayyes
messagestringyes
totalintegeryes

No examples provided.

miro_list_groups ~98

List all groups on a Miro board. USE WHEN: "show all groups", "list groups on board", "what groups exist" RETURNS: Array of group IDs. Paginated via cursor. VOICE-FRIENDLY: "Found 3 groups on the board"

NameTypeReqDescription
board_idstringyesBoard ID
cursorstringPagination cursor
limitintegerMax groups to return (default 50)
NameTypeReqDescription
countintegeryes
cursorstring
groupsnull|arrayyes
has_morebooleanyes
messagestringyes

No examples provided.

miro_list_items ~215

List items on a Miro board (max 50). For ALL items with auto-pagination, use miro_list_all_items. For text search, use miro_search_board. USE WHEN: "what's on the board", "show all stickies", "list shapes" CAVEAT: Miro's REST index lags items created moments ago by Miro AI or the official Miro MCP composer, and interactive widgets (polls, kanban, timelines) never appear in it. Missing items on a fresh board are index lag, not deletion.

NameTypeReqDescription
board_idstringyesBoard ID
cursorstringPagination cursor
detail_levelstringResponse detail level: 'minimal' (default) returns basic fields, 'full' includes style, geometry, timestamps, and creator info
limitintegerMax items to return (default 50, max 100)
typestringFilter by item type: sticky_note, shape, text, connector, frame
NameTypeReqDescription
countintegeryes
cursorstring
has_morebooleanyes
itemsnull|arrayyes

No examples provided.

miro_list_mindmap_nodes ~99

List all mindmap nodes on a board. Returns flat list; use parent_id to reconstruct hierarchy. Uses v2-experimental API. RETURNS: Array of nodes with IDs, content, and parent IDs. Use parent_id to reconstruct hierarchy.

NameTypeReqDescription
board_idstringyesBoard ID
cursorstringPagination cursor
limitintegerMax nodes to return (default 50, max 100)
NameTypeReqDescription
countintegeryes
cursorstring
has_morebooleanyes
messagestringyes
nodesnull|arrayyes

No examples provided.

miro_list_tables ~212

List tables (data_table_format items) on a Miro board. Returns table metadata: ID, position, size, and timestamps. Use the table ID with miro_get_table for details. USE WHEN: "find tables on this board", "list all tables", "does this board have tables", "show me the tables" NOT FOR: Reading table row data or column definitions. The Miro REST API provides table metadata only. For full table content, open the board in Miro. PARAMETERS: - board_id: Required - limit: Max tables to return (default 10, max 50) - cursor: Pagination cursor from previous response RETURNS: Table items with IDs, positions, sizes, and timestamps. VOICE-FRIENDLY: "Found 3 tables on the board"

NameTypeReqDescription
board_idstringyesBoard ID
cursorstringPagination cursor from previous response
limitintegerMax tables to return (default 10, max 50)
NameTypeReqDescription
countintegeryes
cursorstring
messagestringyes
tablesnull|arrayyes
totalintegeryes

No examples provided.

miro_list_tags ~125

List all tag definitions on a board with IDs, titles, and colors. Use tag IDs from this response with miro_attach_tag, miro_detach_tag, and miro_get_items_by_tag. USE WHEN: "show all tags", "what tags exist", "list labels", or before attaching a tag to get its ID VOICE-FRIENDLY: "Board has 8 tags: Urgent (red), Done (green), Review (blue)..."

NameTypeReqDescription
board_idstringyesBoard ID
limitintegerMax tags to return (default 50)
NameTypeReqDescription
countintegeryes
messagestringyes
tagsnull|arrayyes

No examples provided.

miro_move_code_widget ~142

Move a code widget to a new x/y position on the board. Uses v2-experimental API. May change or become unavailable before GA. USE WHEN: "move the code widget", "reposition that snippet" NOTE: Position only (center origin). To change content or size, use miro_update_code_widget instead. RETURNS: Confirmation with widget ID and new coordinates.

NameTypeReqDescription
board_idstringyesBoard ID
item_idstringyesCode widget item ID to move
xnumberyesNew X position on the board (center origin)
ynumberyesNew Y position on the board (center origin)
NameTypeReqDescription
idstringyes
messagestringyes
xnumberyes
ynumberyes

No examples provided.

miro_read_board_svg ~349

Render a board's items as an SVG document, computed locally from item geometry (no export job, no external service). Frames render as dashed outlines, shapes and stickies as filled rects/ellipses with labels, text as text, connectors as lines between item centers. Every element carries data-miro-id and data-miro-type attributes linking it back to the board item, and the document is directly re-submittable to miro_update_from_svg after editing. USE WHEN: "show me the board as SVG", "show me just this frame", "vector snapshot of the layout", "diff two boards visually", or feeding a board's spatial layout to a tool that reads SVG. NOT FOR: pixel-accurate rendering (use miro_get_board_picture) or full content analysis (use miro_get_board_content). This is a spatial approximation: images render as placeholder rects and rich styling is reduced to fill colors. PARAMETERS: - board_id: Required. max_items: cap on items fetched (default 500, max 2000). - frame_id: Optional. Scope the render to one frame and its children; child coordinates come back relative to the frame's top-left corner, with the frame outline at (0,0). RETURNS: svg (the document), item_count, skipped (items with no visual mapping), truncated.

NameTypeReqDescription
board_idstringyesBoard ID to render
frame_idstringRender only this frame and its children. Child coordinates are relative to the frame's top-left corner. Omit for the whole board.
max_itemsintegerMaximum items to include (default 500, max 2000)
NameTypeReqDescription
item_countintegeryes
messagestringyes
skippedintegeryes
svgstringyes
truncatedbooleanyes

No examples provided.

miro_remove_board_member ~72

Remove a member from a board. WARNING: This revokes the member's access to the board. RETURNS: Confirmation with removed member ID. VOICE-FRIENDLY: "Removed member from board"

NameTypeReqDescription
board_idstringyesBoard ID
member_idstringyesMember ID to remove
NameTypeReqDescription
member_idstringyes
messagestringyes
successbooleanyes

No examples provided.

miro_reply_comment ~150

Append a reply to an existing comment thread. Uses a v2-experimental API that Miro ships undocumented; it may change or become unavailable without notice. USE WHEN: "reply to that comment", "answer the feedback" PARAMETERS: - board_id, comment_id: Required. Get comment_id from miro_list_comments. - content: Required. Text of the reply. RETURNS: Thread ID and new message count. VOICE-FRIENDLY: "Replied to the thread - now 3 messages"

NameTypeReqDescription
board_idstringyesBoard ID the comment belongs to
comment_idstringyesComment thread ID to reply to
contentstringyesText of the reply
NameTypeReqDescription
idstringyes
messagestringyes
message_countintegeryes

No examples provided.

miro_resolve_comment ~159

Resolve a comment thread, or reopen it with resolved=false. Uses a v2-experimental API that Miro ships undocumented; it may change or become unavailable without notice. USE WHEN: "mark that feedback as done", "resolve the comment", "reopen that thread" PARAMETERS: - board_id, comment_id: Required. - resolved: Optional. Defaults to true; pass false to reopen. RETURNS: Thread ID and its new resolved state. VOICE-FRIENDLY: "Resolved - 2 threads still open"

NameTypeReqDescription
board_idstringyesBoard ID the comment belongs to
comment_idstringyesComment thread ID
resolvednull|booleantrue to resolve (default), false to reopen
NameTypeReqDescription
idstringyes
messagestringyes
resolvedbooleanyes

No examples provided.