Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate Miro tasks via Rube MCP (Composio): boards, items, sticky notes, frames, sharing, connectors. Always search tools first for current schemas.
.claude/skills/miro-automation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | — | — |
| case-14 | ✗→✓ | ▲ Improved | — | — |
| case-16 | ✓→✓ | = Same ✓ | — | — |
| case-21 | ✗→✗ | = Same ✗ | — | — |
| case-09 | ✗→✗ | = Same ✗ | — | — |
Automate Miro whiteboard operations through Composio's Miro toolkit via Rube MCP.
RUBE_MANAGE_CONNECTIONS with toolkit miroRUBE_SEARCH_TOOLS first to get current tool schemasGet 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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit miroWhen to use: User wants to find boards or get board details
Tool sequence:
MIRO_GET_BOARDS2 - List all accessible boards Required]MIRO_GET_BOARD - Get detailed info for a specific board Optional]Key parameters:
query: Search term to filter boards by namesort: Sort by 'default', 'last_modified', 'last_opened', 'last_created', 'alphabetically'limit: Number of results per page (max 50)offset: Pagination offsetboard_id: Specific board ID for detailed retrievalPitfalls:
When to use: User wants to create a new board or add items to an existing board
Tool sequence:
MIRO_CREATE_BOARD - Create a new empty board Optional]MIRO_CREATE_STICKY_NOTE_ITEM - Add sticky notes to a board Optional]MIRO_CREATE_FRAME_ITEM2 - Add frames to organize content Optional]MIRO_CREATE_ITEMS_IN_BULK - Add multiple items at once Optional]Key parameters:
name / description: Board name and description (for CREATE_BOARD)board_id: Target board ID (required for all item creation)data: Content object with content field for sticky note textstyle: Styling object with fillColor for sticky note colorposition: Object with x and y coordinatesgeometry: Object with width and heightPitfalls:
board_id is required for ALL item operations; resolve via GET_BOARDS2 firstfillColor fieldgeometry with both width and heightWhen to use: User wants to view, find, or organize items on a board
Tool sequence:
MIRO_GET_BOARD_ITEMS - List all items on a board Required]MIRO_GET_CONNECTORS2 - List connections between items Optional]Key parameters:
board_id: Target board ID (required)type: Filter by item type ('sticky_note', 'shape', 'text', 'frame', 'image', 'card')limit: Number of items per pagecursor: Pagination cursor from previous responsePitfalls:
cursor until absent for complete item listWhen to use: User wants to share a board with team members or manage access
Tool sequence:
MIRO_GET_BOARDS2 - Find the board to share Prerequisite]MIRO_SHARE_BOARD - Share the board with users Required]MIRO_GET_BOARD_MEMBERS - Verify current board members Optional]Key parameters:
board_id: Board to share (required)emails: Array of email addresses to inviterole: Access level ('viewer', 'commenter', 'editor')message: Optional invitation messagePitfalls:
When to use: User wants to connect items on a board with lines or arrows
Tool sequence:
MIRO_GET_BOARD_ITEMS - Find items to connect Prerequisite]MIRO_GET_CONNECTORS2 - View existing connections Optional]Key parameters:
board_id: Target board IDstartItem: Object with id of the source itemendItem: Object with id of the target itemstyle: Connector style (line type, color, arrows)Pitfalls:
Board name -> Board ID:
1. Call MIRO_GET_BOARDS2 with query=board_name
2. Find board by name in results
3. Extract id fieldItem lookup on board:
1. Call MIRO_GET_BOARD_ITEMS with board_id and optional type filter
2. Find item by content or position
3. Extract item id for further operationsoffset and limit (offset-based)cursor and limit (cursor-based)position: {x: 0, y: 0} for center of boardBoard IDs:
Item Creation:
data.content for textgeometry.width and geometry.heightRate Limits:
Response Parsing:
data key| Task | Tool Slug | Key Params | |------|-----------|------------| | List boards | MIRO_GET_BOARDS2 | query, sort, limit, offset | | Get board details | MIRO_GET_BOARD | board_id | | Create board | MIRO_CREATE_BOARD | name, description | | Add sticky note | MIRO_CREATE_STICKY_NOTE_ITEM | board_id, data, style, position | | Add frame | MIRO_CREATE_FRAME_ITEM2 | board_id, data, geometry, position | | Bulk add items | MIRO_CREATE_ITEMS_IN_BULK | board_id, items | | Get board items | MIRO_GET_BOARD_ITEMS | board_id, type, cursor | | Share board | MIRO_SHARE_BOARD | board_id, emails, role | | Get members | MIRO_GET_BOARD_MEMBERS | board_id | | Get connectors | MIRO_GET_CONNECTORS2 | board_id |
This skill is applicable to execute the workflow or actions described in the overview.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 14 counted toward the lift figure. The other 8 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +9 percentage points is the difference between those two pass rates over the 14 comparable cases. 5 cases got worse with the skill loaded, and they are included in that figure.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.