miro-mcp
npx skills add https://github.com/miroapp/miro-ai --skill miro-mcp
Agent 安装分布
Skill 文档
Using Miro with Claude Code
What is Miro MCP?
Miro MCP (Model Context Protocol) enables Claude to interact directly with Miro boards. Create diagrams, documents, and tables; read board content; and extract structured documentation from visual designs.
Available Tools
The Miro MCP provides these tool categories:
Content Creation
miro__diagram_create– Generate diagrams from text descriptionsmiro__doc_create– Create markdown documents on boardsmiro__table_create– Create tables with text and select columnsmiro__table_sync_rows– Add or update table rows
Content Reading
miro__board_list_items– List items on a board with filteringmiro__context_get– Extract text context from specific board itemsmiro__table_list_rows– Read table data with filteringmiro__image_get_data– Get image content from boards
Board URLs and IDs
Miro tools accept board URLs directly. Extract board_id and item_id automatically from URLs like:
https://miro.com/app/board/uXjVK123abc=/– Board URLhttps://miro.com/app/board/uXjVK123abc=/?moveToWidget=3458764612345– URL with item focus
When a URL includes moveToWidget or focusWidget parameters, the item_id is extracted automatically.
Creating Diagrams
Use miro__diagram_create to create visual diagrams from text descriptions.
Supported Diagram Types
- flowchart – Process flows, workflows, decision trees
- mindmap – Hierarchical ideas, brainstorming
- uml_class – Class structures, inheritance relationships
- uml_sequence – Interactions between components over time
- entity_relationship – Database schemas, data models
Description Formats
Natural language works well:
User registration flow: start -> enter email -> validate email ->
send verification -> user confirms -> create account -> redirect to dashboard
Mermaid notation for precise control:
flowchart TD
A[Start] --> B{Valid Email?}
B -->|Yes| C[Send Verification]
B -->|No| D[Show Error]
C --> E[Wait for Confirm]
E --> F[Create Account]
Positioning Diagrams
Use x and y coordinates to position diagrams on the board. The board center is (0, 0). When creating multiple diagrams, offset positions to prevent overlap:
- First diagram: x=0, y=0
- Second diagram: x=2000, y=0
- Third diagram: x=0, y=1500
Placing in Frames
Set parent_id to a frame ID to place the diagram inside that frame.
Creating Documents
Use miro__doc_create to create Google Docs-style documents on boards.
Supported Markdown
- Headings:
# H1,## H2, through###### H6 - Bold:
**text** - Italic:
*text* - Unordered lists:
- item - Ordered lists:
1. item - Links:
[text](url)
Not Supported
- Code blocks
- Tables (use
miro__table_createinstead) - Images
Example Document
# Sprint Planning - Week 12
## Goals
- Complete user authentication module
- Fix critical bugs from QA
## Team Assignments
1. **Alice** - Auth backend
2. **Bob** - Frontend integration
3. **Carol** - Bug fixes
## Resources
- [Design specs](https://example.com/specs)
- [API documentation](https://example.com/api)
Working with Tables
Creating Tables
Use miro__table_create to create tables with typed columns.
Column Types:
- text – Free-form text entry
- select – Dropdown with predefined options (requires color for each option)
Example column configuration:
[
{"type": "text", "title": "Task"},
{"type": "text", "title": "Assignee"},
{
"type": "select",
"title": "Status",
"options": [
{"displayValue": "To Do", "color": "#E0E0E0"},
{"displayValue": "In Progress", "color": "#FFD700"},
{"displayValue": "Done", "color": "#00FF00"}
]
},
{
"type": "select",
"title": "Priority",
"options": [
{"displayValue": "Low", "color": "#90EE90"},
{"displayValue": "Medium", "color": "#FFA500"},
{"displayValue": "High", "color": "#FF6347"}
]
}
]
Adding/Updating Rows
Use miro__table_sync_rows to add or update table data.
Set key_column to match existing rows for updates. Without it, all rows are inserted as new.
{
"key_column": "Task",
"rows": [
{
"cells": [
{"columnTitle": "Task", "value": "Implement login"},
{"columnTitle": "Status", "value": "In Progress"},
{"columnTitle": "Assignee", "value": "Alice"}
]
}
]
}
Reading Table Data
Use miro__table_list_rows to read table contents. Filter by column value:
filter_by: "Status=In Progress"
Extracting Board Content
Discovering Board Contents
Use miro__context_explore to get a high-level view of what’s on a board:
- Returns frames, documents, prototypes, tables, and diagrams
- Each item includes its URL and title
- Use this to understand board structure before getting details
Getting Item Details
Use miro__context_get to extract detailed content from specific items:
| Item Type | Returns |
|---|---|
| Documents | HTML markup of the document content |
| Prototype screens | HTML markup representing the UI/layout |
| Prototype containers | AI-generated map of all screens with navigation flow |
| Frames | AI-generated summary of frame contents |
| Tables | Formatted table data |
| Diagrams | AI-generated description and analysis |
Workflow
- Call
context_exploreto discover board contents - Identify items of interest from the results
- Call
context_getwith specific item URLs (with moveToWidget parameter)
Browsing Board Items
Use miro__board_list_items to explore board contents.
Filtering by Type
frame– Frames/containerssticky_note– Sticky notescard– Card widgetsshape– Shapestext– Text elementsimage– Imagesdocument– Documents
Filtering by Container
Set item_id to a frame ID to list only items within that frame.
Pagination
Use cursor from previous response to fetch next page. Default limit is capped at 50 when filtering by item_id.
Best Practices
For Diagrams
- Be specific about elements and relationships
- Specify flow direction (top-down, left-right)
- Include decision points and conditions
- Let AI auto-detect diagram type or specify explicitly
For Documents
- Structure with clear headings
- Keep content focused and scannable
- Use lists for multiple items
- Include links to related resources
For Tables
- Choose meaningful column names
- Use select columns for status/priority fields
- Define clear, distinct option colors
- Use key_column for idempotent updates
For Context Extraction
- Start with context_explore to discover board contents
- Focus on specific frames when boards are large
- Use context_get with item URLs for detailed content
Quick Reference
| Task | Tool | Key Parameters |
|---|---|---|
| Create flowchart | diagram_create |
board_id, text_description, diagram_type=”flowchart” |
| Create document | doc_create |
board_id, content (markdown) |
| Create table | table_create |
board_id, title, columns |
| Add table rows | table_sync_rows |
board_id, item_id, rows, key_column |
| Get item context | context_get |
item_url (with moveToWidget parameter) |
| List frames | board_list_items |
board_id, item_type=”frame” |
See tools-reference.md for complete parameter documentation.