miro-mcp-server
The Miro MCP Server provides 91 tools for AI assistants (Claude, Cursor, etc.) to interact with Miro boards programmatically.
Board Management
Create, copy, update, delete, list, and find boards
Get board metadata, item counts, summaries, and full content for AI analysis
Manage members: list, invite via email, update roles, remove
Get thumbnails; export to PDF/SVG/HTML (Enterprise only)
Creating Content
Sticky notes – single or grid layouts with color options
Shapes – rectangles, circles, diamonds, flowchart shapes
Text, Cards, App cards (with custom fields and status indicators)
Frames – visual containers with titles
Connectors – styled arrows/lines linking items
Images & Documents – from URL or local file upload
Embeds – YouTube, Figma, Google Docs, Loom, etc.
Markdown documents, Mindmap nodes (hierarchical)
Bulk creation – up to 20 mixed items at once
Reading & Searching
List items (paginated or auto-paginated), get details for any item type
Search board content by text (case-insensitive)
Get items within frames, groups, or mindmap hierarchies
Updating & Deleting
Update content, position, size, color, or style for any item type
Replace local image/document files on existing items
Bulk update or delete up to 20 items at once
All destructive operations support
dry_run=truefor safe previewing
Tags & Groups
Create, list, update, delete tags with color options; attach/detach from items
Group items logically; manage group membership
Diagram Generation
Generate flowcharts and sequence diagrams from Mermaid syntax
Output as discrete items, grouped, or framed; optional professional stencils
Tables & Mindmaps
Discover and inspect tables; create, list, get, and delete mindmap nodes
Observability & Debugging
Query a local audit log of all tool executions, filterable by time, tool, board, or status
Prometheus metrics endpoint and health checks in HTTP mode
Interactive testing via MCP Inspector
Technical Highlights
Single ~14MB binary, ~50ms startup; works on macOS, Linux, Windows, Docker
Supports Free, Team, Business, and Enterprise Miro accounts
Built-in caching, adaptive rate limiting, and circuit breaker for performance
Supports embedding Figma designs and content directly onto Miro boards.
Supports creating, reading, and managing Markdown-based documents as native items on Miro boards.
Enables the generation of flowcharts and sequence diagrams on Miro boards from Mermaid syntax.
Provides comprehensive tools for managing Miro boards, including creating and organizing items such as stickies, shapes, frames, and cards, as well as managing board members and permissions.
Provides functionality to export Miro board content into SVG vector format.
Allows for embedding YouTube videos as interactive elements on Miro boards.
Miro MCP Server
Run your Miro workshops, retros, and planning sessions from the command line. Read boards, create stickies, organize frames, and generate diagrams through Claude, Cursor, or any MCP client.
Community project — Not officially affiliated with Miro. See official options below.
92 tools | Single binary | All platforms | All major AI tools
Documentation
Document | Description |
Get running in 2 minutes | |
Full setup for all AI tools | |
Configuration reference | |
Optimization guide | |
Version history | |
Error handling & troubleshooting |
Quick Start
1. Install
Homebrew (macOS/Linux):
brew tap olgasafonova/tap && brew install miro-mcp-serverOne-liner (macOS/Linux):
curl -fsSL https://raw.githubusercontent.com/olgasafonova/miro-mcp-server/main/install.sh | shDocker:
docker pull ghcr.io/olgasafonova/miro-mcp-server:latestManual download: See SETUP.md for all platforms
2. Get a Miro Token
Create an app with
boards:readandboards:writepermissionsInstall to your team and copy the token
3. Configure Your AI Tool
Claude Code:
claude mcp add miro -e MIRO_ACCESS_TOKEN=your-token -- miro-mcp-serverClaude Desktop / Cursor / VS Code: See SETUP.md
Cursor Marketplace:
/add-plugin miroNot working? Tell us what made it hard — even one sentence helps.
What You Can Do
Category | Examples |
Boards | Create, copy, delete, update, share, list members |
Items | Sticky notes, shapes, text, cards, app cards, images, documents, frames, docs |
Diagrams | Generate flowcharts and sequence diagrams from Mermaid |
Docs | Create and manage Markdown documents on boards |
Upload | Upload and replace local image and document files on boards |
Tables | Discover and inspect tables on boards |
Mindmaps | Create mindmap nodes with parent-child relationships |
Bulk Ops | Create multiple items at once, sticky grids |
Tags | Create, attach, update, and organize with tags |
Groups | Group, list, and manage item groups |
Connectors | Connect items with styled arrows |
Export | Board thumbnails, PDF/SVG export (Enterprise) |
Voice Examples
"Add a yellow sticky saying 'Review PRs'"
"Create a flowchart: Start → Decision → End"
"What boards do I have?"
"Share the Design board with jane@example.com"
"Create a mindmap with 'Project Ideas' as root"
Companion Skill: miro-workflow
For Claude clients that support skills (Claude Code, Claude Desktop), this repo includes a miro-workflow skill that describes how to assemble a few common board layouts from the atomic create-item tools.
Five layouts are covered:
Workflow | Trigger phrase examples |
Sprint Board | "set up a sprint board for sprint 42" |
Retrospective | "create a retro board for our team" |
Brainstorm | "brainstorm board for [topic]" |
Story Map | "map the user journey for [product]" |
Kanban | "kanban for our backlog" |
Each one specifies frame sizes, gap math, sticky placement, color conventions (the Miro API takes hex for frame fills and named values for stickies; two different vocabularies), and the tool-call order to follow. For single-tool calls ("add one sticky") or read-only inspection, the atomic tools are usually enough on their own.
The skill is new and likely needs adjustment as more layouts get exercised against real boards. Files live under skills/miro-workflow/. Claude Code auto-discovers skills from ~/Projects/claude-code-config/skills/; for other hosts, follow your client's skill installation docs.
The badge above is awarded by SkillCheck Pro; this skill currently scores 92/100 with zero Critical issues and zero Warnings. Skills in this repo earn the badge at ≥90/100 with zero Critical and zero Warnings; below that bar, the badge is dropped until the skill passes again.
Token Efficiency
The full tool surface (92 tools) costs roughly 15.5K tokens of preload — about 7.8% of a 200K Claude context. For sessions where that footprint matters, set MIRO_TOOLS_PROFILE=essentials in your client config; the server then registers a curated 15-tool subset (boards, list/find/search, sticky/text/frame/connector creation, list/get/update/delete items) plus one discovery meta-tool. Agents reach the rest via miro_tool_search on demand.
Profile | Tools | Preload tokens (est.) | % of 200K context |
| 92 | ~15,500 | 7.8% |
| 15 | ~2,400 | 1.2% |
Savings: ~13,100 tokens (84.5% reduction) when you opt into essentials. Description tokens are exact (JSON-marshaled); schema cost is estimated at 200 bytes per tool. Reproduce locally with go run ./cmd/token-count/.
miro_tool_search(query?, category?, limit?) is registered in both profiles. It searches tool names, titles, descriptions, and categories with weighted keyword scoring (name 3×, title 2×, category 2.5×, description 1×), returns up to 50 matches, and never recommends itself. Use it when you don't know which tool to reach for, or to scope to a category before browsing. Empty query plus a category returns the category's tools alphabetically.
See CONFIG.md for the full env-var reference.
All 92 Tools
Tool | Description |
| List accessible boards |
| Find board by name |
| Get board details |
| Get board stats and item counts |
| Get all board content for AI analysis |
| Create a new board |
| Copy an existing board |
| Update board name/description |
| Delete a board |
Tool | Description |
| List users with access |
| Get member details |
| Share board via email |
| Update member role (Destructive: prompts before role escalation) |
| Remove member from board |
Sharing and role-change tools are guarded for prompt-injection safety. See
SECURITY.mdandCONFIG.md.
Tool | Description |
| Create a sticky note |
| Create stickies in a grid layout |
| Create a shape (rectangle, circle, etc.) |
| Create flowchart shape (experimental API) |
| Create text element |
| Create a frame container |
| Create a card with due date |
| Create app card with custom fields |
| Add image from URL |
| Upload local image file |
| Upload local document file (PDF, DOCX, etc.) |
| Create Markdown document |
| Add document from URL |
| Embed YouTube, Figma, etc. |
| Connect two items with arrow |
| Group items together |
| Create mindmap node |
| Create multiple items at once |
Tool | Description |
| Get frame details |
| Update frame title/color/size |
| Delete a frame |
| List items inside a frame |
Tool | Description |
| Get node details |
| List all mindmap nodes |
| Delete a mindmap node |
Tool | Description |
| List items on a board |
| Get ALL items with auto-pagination |
| Get item details |
| Get image details and Miro-hosted URL |
| Get document details and Miro-hosted URL |
| Get app card details |
| Get Markdown document content |
| Search items by content |
Tool | Description |
| Update item content/position/color |
| Update sticky note (shape, color) |
| Update shape (fill, text color, type) |
| Update text element |
| Update card fields |
| Update image properties |
| Replace image file on existing item |
| Update document properties |
| Replace document file on existing item |
| Update embed properties |
| Update group properties |
| Update app card fields |
| Update multiple items at once |
| Delete an item |
| Delete an app card |
| Update document content (full or find-and-replace) |
| Delete a Markdown document |
| Delete multiple items at once |
Tool | Description |
| Create a tag |
| List all tags on board |
| Get tag details by ID |
| Attach tag to item |
| Remove tag from item |
| Get tags on an item |
| Get all items with a specific tag |
| Update tag name/color |
| Delete a tag |
Tool | Description |
| List all connectors |
| Get connector details |
| Update connector style/caption |
| Delete a connector |
Tool | Description |
| List all groups on board |
| Get group details |
| List items in a group |
| Delete or ungroup a group |
Tool | Description |
| Get board thumbnail |
| Export to PDF/SVG (Enterprise) |
| Check export progress |
| Get download links |
Tool | Description |
| List tables (data_table_format) on a board |
| Get table metadata by ID |
Tool | Description |
| Create diagram from Mermaid syntax |
| Query local execution log |
Diagram Generation
Create flowcharts and sequence diagrams from Mermaid syntax:
Flowchart:
flowchart TB
A[Start] --> B{Decision}
B -->|Yes| C[Success]
B -->|No| D[Retry]
D --> BSequence Diagram:
sequenceDiagram
Alice->>Bob: Hello Bob!
Bob-->>Alice: Hi Alice!Supported: flowchart/graph, sequenceDiagram, directions (TB/LR/BT/RL), shapes ([] rectangle, {} diamond, (()) circle), labeled edges.
Why This Server?
Feature | This Server | TypeScript alternatives |
Runtime | Single binary | Requires Node.js |
Size | ~14MB | 100MB+ with node_modules |
Startup | ~50ms | 500ms-2s |
Memory | ~10MB idle | ~50MB idle |
Diagram generation | Built-in Mermaid parser | AI-based |
Rate limiting | Automatic with backoff | Manual |
Caching | 2-minute TTL | None |
Circuit breaker | Yes | No |
Official vs Community
Miro released their official MCP server in December 2025. Here's how they compare:
Feature | This Server | Official Miro MCP |
Last changelog entry | April 2026 | January 2026 |
Tools | 92 (or 15 in | 13 |
Transport | stdio + HTTP | HTTPS only (hosted) |
Self-hosting | Yes | No |
Offline mode | Yes | No |
Auth | Token + OAuth2 | OAuth 2.1 (admin approval) |
Diagram generation | Mermaid syntax | Custom DSL (flowchart, UML, ER) |
AI context | No | Yes (exploration, summaries, code workflows) |
Bulk operations | Yes | No |
Mindmaps | Yes | No |
Tags & Groups | Yes | No |
Connectors CRUD | Yes | No |
Export | Yes (PDF/SVG) | No |
MCP Resources | 3 | No |
MCP Prompts | 5 workflows | 2 (code-focused) |
Runtime | Single Go binary | Hosted (closed-source) |
Rate limiting | Adaptive | N/A (hosted) |
Caching | Built-in (2min TTL) | N/A |
Metrics | Prometheus | No |
OpenTelemetry | Built-in (mcp-otel-go, OTel Registry) | No |
When to use the official server: You want zero-setup via plugin marketplace, OAuth 2.1 enterprise security, AI-powered board context extraction, or code-to-board workflows.
When to use this server: You need full API coverage (92 vs 13 tools, or a tunable 15-tool essentials mode), offline/self-hosted operation, bulk ops, mindmaps, tags, connectors, export, or a lightweight binary.
Both can coexist — use different MCP server names in your config.
Performance
Caching: 2-minute TTL reduces API calls
Rate limiting: Adapts to Miro's rate limit headers
Circuit breaker: Isolates failing endpoints
Parallel bulk ops: Creates items concurrently
Token validation: Fails fast on startup with clear error
Transient error retry: Auto-retries 502/503/504 with backoff
OpenTelemetry: Built-in tracing and metrics via mcp-otel-go (OTel Registry)
See PERFORMANCE.md for optimization tips and benchmarks.
HTTP Mode Endpoints
When running with -http :8080:
Endpoint | Description |
| MCP protocol (Streamable HTTP) |
| Health check (JSON) |
| Deep health check (tests Miro API) |
| Prometheus metrics |
| SEP-2127 Server Card (JSON) via mcp-servercard-go |
Health check response:
{
"status": "healthy",
"server": "miro-mcp-server",
"version": "1.15.2",
"uptime": "2h30m",
"components": {
"config": {"status": "healthy"},
"miro_api": {"status": "healthy", "latency": "145ms"}
}
}Development
# Build
make build
# Run tests
make test
# Run with coverage
make test-cover
# Lint
make lint
# Build for all platforms
make build-all
# See all targets
make helpDocker Deployment
Quick start:
# Using Docker Compose
export MIRO_ACCESS_TOKEN=your-token
docker compose up -d
# Or build and run manually
docker build -t miro-mcp-server .
docker run -e MIRO_ACCESS_TOKEN=xxx -p 8080:8080 miro-mcp-serverdocker-compose.yml features:
Health checks configured
Resource limits template
Environment variable passthrough
Debugging with MCP Inspector
Test and debug the server interactively with MCP Inspector:
# Install and run (no setup required)
npx @modelcontextprotocol/inspector miro-mcp-server
# With environment variables
MIRO_ACCESS_TOKEN=your-token npx @modelcontextprotocol/inspector miro-mcp-serverOpen http://localhost:6274 to:
Browse all 92 tools with their schemas
Test tool calls interactively
View raw JSON-RPC messages
Debug parameter validation
See SETUP.md for more debugging options.
Supported Platforms
Platform | Binary |
macOS (Apple Silicon) |
|
macOS (Intel) |
|
Linux (x64) |
|
Linux (ARM64) |
|
Windows (x64) |
|
Docker |
|
Supported AI Tools
Tool | Status |
Claude Code | Tested |
Claude Desktop | Tested |
Cursor | Tested |
VS Code + GitHub Copilot | Supported |
Windsurf | Supported |
Replit | Supported |
Any MCP-compatible client | Supported |
See SETUP.md for configuration guides.
Account Compatibility
Account Type | Support |
Free | Full access to all 92 tools |
Team | Full access to all 92 tools |
Business | Full access to all 92 tools |
Enterprise | Full access + export to PDF/SVG |
Like This Project?
If this server saved you time, consider giving it a ⭐ on GitHub. It helps others discover the project.
More MCP Servers
Check out my other MCP servers:
Server | Description | Stars |
Access GLEIF LEI database. Look up company identities, verify legal entities. | ||
Connect AI to any MediaWiki wiki. Search, read, edit wiki content. | ||
Access Nordic business registries. Look up companies across Norway, Denmark, Finland, Sweden. | ||
Talk to your ProductPlan roadmaps. Query OKRs, ideas, launches. | ||
Nordic grocery deal hunting. Find offers, plan meals, track spending. | ||
Go library for SEP-2127 Server Cards. Pre-connect discovery for MCP servers. |
License
MIT
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/olgasafonova/miro-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server