{"id":"1b0f2447-adac-4787-9a38-76ea30e37bc4","shortId":"HqN8pK","kind":"skill","title":"miro-automation","tagline":"Automate Miro tasks via Rube MCP (Composio): boards, items, sticky notes, frames, sharing, connectors. Always search tools first for current schemas.","description":"# Miro Automation via Rube MCP\n\nAutomate Miro whiteboard operations through Composio's Miro toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Miro connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `miro`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `miro`\n3. If connection is not ACTIVE, follow the returned auth link to complete Miro OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. List and Browse Boards\n\n**When to use**: User wants to find boards or get board details\n\n**Tool sequence**:\n1. `MIRO_GET_BOARDS2` - List all accessible boards [Required]\n2. `MIRO_GET_BOARD` - Get detailed info for a specific board [Optional]\n\n**Key parameters**:\n- `query`: Search term to filter boards by name\n- `sort`: Sort by 'default', 'last_modified', 'last_opened', 'last_created', 'alphabetically'\n- `limit`: Number of results per page (max 50)\n- `offset`: Pagination offset\n- `board_id`: Specific board ID for detailed retrieval\n\n**Pitfalls**:\n- Pagination uses offset-based approach, not cursor-based\n- Maximum 50 boards per page; iterate with offset for full list\n- Board IDs are long alphanumeric strings; always resolve by search first\n\n### 2. Create Boards and Items\n\n**When to use**: User wants to create a new board or add items to an existing board\n\n**Tool sequence**:\n1. `MIRO_CREATE_BOARD` - Create a new empty board [Optional]\n2. `MIRO_CREATE_STICKY_NOTE_ITEM` - Add sticky notes to a board [Optional]\n3. `MIRO_CREATE_FRAME_ITEM2` - Add frames to organize content [Optional]\n4. `MIRO_CREATE_ITEMS_IN_BULK` - Add multiple items at once [Optional]\n\n**Key parameters**:\n- `name` / `description`: Board name and description (for CREATE_BOARD)\n- `board_id`: Target board ID (required for all item creation)\n- `data`: Content object with `content` field for sticky note text\n- `style`: Styling object with `fillColor` for sticky note color\n- `position`: Object with `x` and `y` coordinates\n- `geometry`: Object with `width` and `height`\n\n**Pitfalls**:\n- `board_id` is required for ALL item operations; resolve via GET_BOARDS2 first\n- Sticky note colors use hex codes (e.g., '#FF0000') in the `fillColor` field\n- Position coordinates use the board's coordinate system (origin at center)\n- BULK create has a maximum items-per-request limit; check current schema\n- Frame items require `geometry` with both width and height\n\n### 3. Browse and Manage Board Items\n\n**When to use**: User wants to view, find, or organize items on a board\n\n**Tool sequence**:\n1. `MIRO_GET_BOARD_ITEMS` - List all items on a board [Required]\n2. `MIRO_GET_CONNECTORS2` - List connections between items [Optional]\n\n**Key parameters**:\n- `board_id`: Target board ID (required)\n- `type`: Filter by item type ('sticky_note', 'shape', 'text', 'frame', 'image', 'card')\n- `limit`: Number of items per page\n- `cursor`: Pagination cursor from previous response\n\n**Pitfalls**:\n- Results are paginated; follow `cursor` until absent for complete item list\n- Item types must match Miro's predefined types exactly\n- Large boards may have thousands of items; use type filtering to narrow results\n- Connectors are separate from items; use GET_CONNECTORS2 for relationship data\n\n### 4. Share and Collaborate on Boards\n\n**When to use**: User wants to share a board with team members or manage access\n\n**Tool sequence**:\n1. `MIRO_GET_BOARDS2` - Find the board to share [Prerequisite]\n2. `MIRO_SHARE_BOARD` - Share the board with users [Required]\n3. `MIRO_GET_BOARD_MEMBERS` - Verify current board members [Optional]\n\n**Key parameters**:\n- `board_id`: Board to share (required)\n- `emails`: Array of email addresses to invite\n- `role`: Access level ('viewer', 'commenter', 'editor')\n- `message`: Optional invitation message\n\n**Pitfalls**:\n- Email addresses must be valid; invalid emails cause the entire request to fail\n- Role must be one of the predefined values; case-sensitive\n- Sharing with users outside the organization may require admin approval\n- GET_BOARD_MEMBERS returns all members including the owner\n\n### 5. Create Visual Connections\n\n**When to use**: User wants to connect items on a board with lines or arrows\n\n**Tool sequence**:\n1. `MIRO_GET_BOARD_ITEMS` - Find items to connect [Prerequisite]\n2. `MIRO_GET_CONNECTORS2` - View existing connections [Optional]\n\n**Key parameters**:\n- `board_id`: Target board ID\n- `startItem`: Object with `id` of the source item\n- `endItem`: Object with `id` of the target item\n- `style`: Connector style (line type, color, arrows)\n\n**Pitfalls**:\n- Both start and end items must exist on the same board\n- Item IDs are required for connections; resolve via GET_BOARD_ITEMS first\n- Connector styles vary; check available options in schema\n- Self-referencing connections (same start and end) are not allowed\n\n## Common Patterns\n\n### ID Resolution\n\n**Board name -> Board ID**:\n```\n1. Call MIRO_GET_BOARDS2 with query=board_name\n2. Find board by name in results\n3. Extract id field\n```\n\n**Item lookup on board**:\n```\n1. Call MIRO_GET_BOARD_ITEMS with board_id and optional type filter\n2. Find item by content or position\n3. Extract item id for further operations\n```\n\n### Pagination\n\n- Boards: Use `offset` and `limit` (offset-based)\n- Board items: Use `cursor` and `limit` (cursor-based)\n- Continue until no more results or cursor is absent\n- Default page sizes vary by endpoint\n\n### Coordinate System\n\n- Board origin (0,0) is at the center\n- Positive X is right, positive Y is down\n- Items positioned by their center point\n- Use `position: {x: 0, y: 0}` for center of board\n- Frames define bounded areas; items inside inherit frame position\n\n## Known Pitfalls\n\n**Board IDs**:\n- Board IDs are required for virtually all operations\n- Always resolve board names to IDs via GET_BOARDS2 first\n- Do not hardcode board IDs; they vary by account\n\n**Item Creation**:\n- Each item type has different required fields\n- Sticky notes need `data.content` for text\n- Frames need `geometry.width` and `geometry.height`\n- Position defaults to (0,0) if not specified; items may overlap\n\n**Rate Limits**:\n- Miro API has rate limits per token\n- Bulk operations preferred over individual item creation\n- Use MIRO_CREATE_ITEMS_IN_BULK for multiple items\n\n**Response Parsing**:\n- Response data may be nested under `data` key\n- Item types determine which fields are present in response\n- Parse defensively; optional fields may be absent\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| List boards | MIRO_GET_BOARDS2 | query, sort, limit, offset |\n| Get board details | MIRO_GET_BOARD | board_id |\n| Create board | MIRO_CREATE_BOARD | name, description |\n| Add sticky note | MIRO_CREATE_STICKY_NOTE_ITEM | board_id, data, style, position |\n| Add frame | MIRO_CREATE_FRAME_ITEM2 | board_id, data, geometry, position |\n| Bulk add items | MIRO_CREATE_ITEMS_IN_BULK | board_id, items |\n| Get board items | MIRO_GET_BOARD_ITEMS | board_id, type, cursor |\n| Share board | MIRO_SHARE_BOARD | board_id, emails, role |\n| Get members | MIRO_GET_BOARD_MEMBERS | board_id |\n| Get connectors | MIRO_GET_CONNECTORS2 | board_id |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["miro","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-miro-automation","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/miro-automation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34666 github stars · SKILL.md body (7,873 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T06:51:33.957Z","embedding":null,"createdAt":"2026-04-18T21:40:48.735Z","updatedAt":"2026-04-23T06:51:33.957Z","lastSeenAt":"2026-04-23T06:51:33.957Z","tsv":"'/mcp':80 '0':892,893,915,917,985,986 '1':100,147,166,284,464,585,705,804,828 '2':112,175,260,294,476,595,715,813,841 '3':120,307,442,605,820,848 '4':135,318,562 '5':684 '50':215,239 'absent':524,881,1043 'access':172,582,631 'account':961 'action':1157 'activ':52,125,140 'add':77,94,276,300,312,324,1075,1088,1100 'address':627,642 'admin':673 'allow':795 'alphabet':207 'alphanumer':253 'alway':18,62,255,943 'api':90,996 'applic':1151 'approach':233 'approv':674 'area':925 'array':624 'arrow':702,752 'ask':1195 'auth':129 'autom':3,4,26,30 'avail':51,105,781 'base':232,237,863,872 'board':11,151,159,162,173,178,185,194,219,222,240,249,262,274,281,287,292,305,334,340,341,344,384,413,446,461,467,474,487,490,539,567,576,591,598,601,608,612,617,619,676,698,708,725,728,764,774,800,802,811,815,827,832,835,856,864,890,921,933,935,945,956,1052,1061,1065,1066,1069,1072,1083,1094,1107,1111,1115,1117,1122,1125,1126,1134,1136,1143 'boards2':169,395,588,808,951,1055 'bound':924 'boundari':1203 'brows':150,443 'bulk':323,420,1002,1014,1099,1106 'call':63,113,805,829 'card':504 'case':663 'case-sensit':662 'caus':648 'center':419,897,910,919 'check':430,780 'clarif':1197 'clear':1170 'client':87 'code':402 'collabor':565 'color':369,399,751 'comment':634 'common':796 'complet':132,526 'composio':10,35 'configur':88 'confirm':107,136 'connect':47,54,58,116,122,137,481,687,694,713,721,770,788 'connector':17,551,747,777,1139 'connectors2':479,558,718,1142 'content':316,352,355,845 'continu':873 'coordin':376,410,415,888 'core':145 'creat':206,261,271,286,288,296,309,320,339,421,685,1011,1068,1071,1079,1091,1103 'creation':350,963,1008 'criteria':1206 'current':23,70,431,611 'cursor':236,511,513,522,867,871,879,1120 'cursor-bas':235,870 'data':351,561,1021,1026,1085,1096 'data.content':974 'default':200,882,983 'defens':1038 'defin':923 'describ':1158,1174 'descript':333,337,1074 'detail':163,180,225,1062 'determin':1030 'differ':968 'e.g':403 'editor':635 'email':623,626,641,647,1128 'empti':291 'end':757,792 'enditem':738 'endpoint':96,887 'entir':650 'environ':1186 'environment-specif':1185 'exact':537 'execut':1153 'exist':280,720,760 'expert':1191 'extract':821,849 'fail':653 'ff0000':404 'field':356,408,823,970,1032,1040 'fillcolor':365,407 'filter':193,494,547,840 'find':158,455,589,710,814,842 'first':21,67,259,396,776,952 'follow':126,521 'frame':15,310,313,433,502,922,929,977,1089,1092 'full':247 'geometri':377,436,1097 'geometry.height':981 'geometry.width':979 'get':69,74,161,168,177,179,394,466,478,557,587,607,675,707,717,773,807,831,950,1054,1060,1064,1110,1114,1130,1133,1138,1141 'hardcod':955 'height':382,441 'hex':401 'id':220,223,250,342,345,385,488,491,618,726,729,733,741,766,798,803,822,836,851,934,936,948,957,1067,1084,1095,1108,1118,1127,1137,1144 'imag':503 'includ':681 'individu':1006 'info':181 'inherit':928 'input':1200 'insid':927 'invalid':646 'invit':629,638 'item':12,264,277,299,321,326,349,390,426,434,447,458,468,471,483,496,508,527,529,544,555,695,709,711,737,745,758,765,775,824,833,843,850,865,906,926,962,965,990,1007,1012,1017,1028,1082,1101,1104,1109,1112,1116 'item2':311,1093 'items-per-request':425 'iter':243 'key':91,187,330,485,615,723,1027,1049 'known':931 'larg':538 'last':201,203,205 'level':632 'limit':208,429,505,860,869,994,999,1058,1162 'line':700,749 'link':130 'list':148,170,248,469,480,528,1051 'long':252 'lookup':825 'manag':57,115,445,581 'match':532,1171 'max':214 'maximum':238,424 'may':540,671,991,1022,1041 'mcp':9,29,41,44,76,83,103 'member':579,609,613,677,680,1131,1135 'messag':636,639 'miro':2,5,25,31,37,53,61,119,133,167,176,285,295,308,319,465,477,533,586,596,606,706,716,806,830,995,1010,1053,1063,1070,1078,1090,1102,1113,1123,1132,1140 'miro-autom':1 'miss':1208 'modifi':202 'multipl':325,1016 'must':45,531,643,655,759 'name':196,332,335,801,812,817,946,1073 'narrow':549 'need':92,973,978 'nest':1024 'new':273,290 'note':14,298,302,359,368,398,499,972,1077,1081 'number':209,506 'oauth':134 'object':353,363,371,378,731,739 'offset':216,218,231,245,858,862,1059 'offset-bas':230,861 'one':657 'open':204 'oper':33,391,854,942,1003 'option':186,293,306,317,329,484,614,637,722,782,838,1039 'organ':315,457,670 'origin':417,891 'output':1180 'outsid':668 'overlap':992 'overview':1161 'owner':683 'page':213,242,510,883 'pagin':217,228,512,520,855 'param':1050 'paramet':188,331,486,616,724 'pars':1019,1037 'pattern':797 'per':212,241,427,509,1000 'permiss':1201 'pitfal':227,383,517,640,753,932 'point':911 'posit':370,409,847,898,902,907,913,930,982,1087,1098 'predefin':535,660 'prefer':1004 'prerequisit':42,594,714 'present':1034 'previous':515 'queri':189,810,1056 'quick':1044 'rate':993,998 'refer':1045 'referenc':787 'relationship':560 'request':428,651 'requir':174,346,387,435,475,492,604,622,672,768,938,969,1199 'resolut':799 'resolv':256,392,771,944 'respond':111 'respons':516,1018,1020,1036 'result':211,518,550,819,877 'retriev':226 'return':128,678 'review':1192 'right':901 'role':630,654,1129 'rube':8,28,40,43,48,56,64,75,102,108,114 'rube.app':79 'rube.app/mcp':78 'run':142 'safeti':1202 'schema':24,72,432,784 'scope':1173 'search':19,49,65,109,190,258 'self':786 'self-referenc':785 'sensit':664 'separ':553 'sequenc':165,283,463,584,704 'server':84 'setup':73 'shape':500 'share':16,563,574,593,597,599,621,665,1121,1124 'show':139 'size':884 'skill':1149,1165 'skill-miro-automation' 'slug':1048 'sort':197,198,1057 'sourc':736 'source-sickn33' 'specif':184,221,1187 'specifi':989 'start':755,790 'startitem':730 'status':138 'sticki':13,297,301,358,367,397,498,971,1076,1080 'stop':1193 'string':254 'style':361,362,746,748,778,1086 'substitut':1183 'success':1205 'system':416,889 'target':343,489,727,744 'task':6,1046,1169 'team':578 'term':191 'test':1189 'text':360,501,976 'thousand':542 'token':1001 'tool':20,50,66,71,110,164,282,462,583,703,1047 'toolkit':38,60,118 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':1178 'type':493,497,530,536,546,750,839,966,1029,1119 'use':154,229,267,400,411,450,545,556,570,690,857,866,912,1009,1147,1163 'user':155,268,451,571,603,667,691 'valid':645,1188 'valu':661 'vari':779,885,959 'verifi':101,610 'via':7,27,39,55,393,772,949 'view':454,719 'viewer':633 'virtual':940 'visual':686 'want':156,269,452,572,692 'whiteboard':32 'width':380,439 'work':99 'workflow':144,146,1155 'x':373,899,914 'y':375,903,916","prices":[{"id":"7b53ba05-e2fd-4eef-b1fb-3a7a8b8af2a9","listingId":"1b0f2447-adac-4787-9a38-76ea30e37bc4","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:40:48.735Z"}],"sources":[{"listingId":"1b0f2447-adac-4787-9a38-76ea30e37bc4","source":"github","sourceId":"sickn33/antigravity-awesome-skills/miro-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/miro-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:40:48.735Z","lastSeenAt":"2026-04-23T06:51:33.957Z"}],"details":{"listingId":"1b0f2447-adac-4787-9a38-76ea30e37bc4","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"miro-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34666,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"5743f5087e3713bc30356578a8cdfefadfe96b4c","skill_md_path":"skills/miro-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/miro-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"miro-automation","description":"Automate Miro tasks via Rube MCP (Composio): boards, items, sticky notes, frames, sharing, connectors. Always search tools first for current schemas."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/miro-automation"},"updatedAt":"2026-04-23T06:51:33.957Z"}}