Skip to main content
ClaudeWave

MCP server for controlling Miro whiteboards with AI assistants

MCP ServersOfficial Registry26 stars9 forksGoMITUpdated today
ClaudeWave Trust Score
87/100
Trusted
Passed
  • Open-source license (MIT)
  • Actively maintained (<30d)
  • Clear description
  • Topics declared
Last scanned: 6/11/2026
Install in Claude Code / Claude Desktop
Method: Manual · miro-mcp-server
Claude Code CLI
git clone https://github.com/olgasafonova/miro-mcp-server
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "miro": {
      "command": "miro-mcp-server",
      "env": {
        "MIRO_ACCESS_TOKEN": "<miro_access_token>"
      }
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Install the binary first: go install github.com/olgasafonova/miro-mcp-server@latest (make sure it ends up on your PATH).
Detected environment variables
MIRO_ACCESS_TOKEN
Use cases

MCP Servers overview

# Miro MCP Server

Run your [Miro](https://miro.com) 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](#official-vs-community) below.

**98 tools** | **Single binary** | **All platforms** | **All major AI tools**

[![CI](https://github.com/olgasafonova/miro-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/olgasafonova/miro-mcp-server/actions/workflows/ci.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/olgasafonova/miro-mcp-server)](https://goreportcard.com/report/github.com/olgasafonova/miro-mcp-server)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![MCP Context — full](badges/mcp-tokens.svg)](#token-efficiency)
[![MCP Context — essentials](badges/mcp-tokens-essentials.svg)](#token-efficiency)

<video src="https://github.com/user-attachments/assets/a27c535e-f3b5-4a3a-ac3c-bea5fe7ebd0b" width="100%" autoplay loop muted playsinline></video>

---

## Documentation

| Document | Description |
|----------|-------------|
| [QUICKSTART.md](QUICKSTART.md) | Get running in 2 minutes |
| [SETUP.md](SETUP.md) | Full setup for all AI tools |
| [CONFIG.md](CONFIG.md) | Configuration reference |
| [PERFORMANCE.md](PERFORMANCE.md) | Optimization guide |
| [CHANGELOG.md](CHANGELOG.md) | Version history |
| [ERRORS.md](ERRORS.md) | Error handling & troubleshooting |

---

## Quick Start

### 1. Install

**Homebrew (macOS/Linux):**
```bash
brew tap olgasafonova/tap && brew install miro-mcp-server
```

**One-liner (macOS/Linux):**
```bash
curl -fsSL https://raw.githubusercontent.com/olgasafonova/miro-mcp-server/main/install.sh | sh
```

**Docker:**
```bash
docker pull ghcr.io/olgasafonova/miro-mcp-server:latest
```

**Manual download:** See [SETUP.md](SETUP.md) for all platforms

### 2. Get a Miro Token

1. Go to [miro.com/app/settings/user-profile/apps](https://miro.com/app/settings/user-profile/apps)
2. Create an app with `boards:read` and `boards:write` permissions
3. Install to your team and copy the token

### 3. Configure Your AI Tool

**Claude Code:**
```bash
claude mcp add miro -e MIRO_ACCESS_TOKEN=your-token -- miro-mcp-server
```

**Claude Desktop / Cursor / VS Code:** See [SETUP.md](SETUP.md)

**Cursor Marketplace:**
```bash
/add-plugin miro
```

> **Not working?** [Tell us what made it hard](https://github.com/olgasafonova/miro-mcp-server/issues/new?template=bug_report.yml) — 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 |
| **Code Widgets** | Syntax-highlighted code snippets on boards (v2-experimental) |
| **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`

[![Validated by SkillCheck Pro](https://img.shields.io/badge/Validated%20by-SkillCheck%20Pro-047857)](https://getskillcheck.com)

For Claude clients that support skills (Claude Code, Claude Desktop), this repo includes a [`miro-workflow`](skills/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/`](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](https://getskillcheck.com); 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.

---

## Companion CLI: `miro-cli`

For shell-first usage, this server has a sibling: [`miro-cli`](https://github.com/olgasafonova/miro-cli). Same author, same Miro API coverage, different runtime. One verb per endpoint, JSON in and out, plus a local SQLite mirror for offline search. Reach for it when you're scripting Miro in CI, bulk-migrating stickies between boards, or querying boards offline without burning API quota.

The MCP server and the CLI overlap deliberately. Use the MCP server when an agent runtime is in the loop (Claude Code, Claude Desktop, Cursor). Use the CLI when bash, Makefiles, or CI are. Use both if you want.

Install:

```bash
brew install olgasafonova/tap/miro-cli
# or
go install github.com/olgasafonova/miro-cli/cmd/miro-cli@latest
```

---

## Companion MCP Apps server: `miro-mcp-apps`

If you want Miro data to render as interactive **UI** in the chat (cards, tables, color clusters, SVG graphs) instead of streamed JSON, there's a TypeScript sibling: [`miro-mcp-apps`](https://github.com/olgasafonova/miro-mcp-apps). Six tools built on the [MCP Apps extension](https://github.com/modelcontextprotocol/ext-apps) (SEP-1865), reusing the same `MIRO_ACCESS_TOKEN`. The two servers run side-by-side: this one for the 98-tool CRUD surface, that one for visual at-a-glance views.

| You want… | Use |
|---|---|
| Programmatic control: create/update/move/connect items, generate diagrams | `miro-mcp-server` (this repo) |
| Visual board summaries, sticky color clusters, connector graphs rendered inline | [`miro-mcp-apps`](https://github.com/olgasafonova/miro-mcp-apps) |
| Same in bash, CI, or a Makefile | [`miro-cli`](https://github.com/olgasafonova/miro-cli) |

The MCP Apps pattern is TypeScript-only today (Go SDK has no `ext-apps` helpers), which is why this companion lives in a separate repo instead of bolting onto the Go server.

---

## Token Efficiency

The full tool surface (98 tools) costs roughly **16.5K tokens** of preload — about 8.3% 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 |
|---|---|---|---|
| `full` (default) | 98 | ~16,500 | 8.3% |
| `essentials` | 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](CONFIG.md) for the full env-var reference.

---

## All 98 Tools

<details>
<summary><b>Board Management (9)</b></summary>

| Tool | Description |
|------|-------------|
| `miro_list_boards` | List accessible boards |
| `miro_find_board` | Find board by name |
| `miro_get_board` | Get board details |
| `miro_get_board_summary` | Get board stats and item counts |
| `miro_get_board_content` | Get all board content for AI analysis |
| `miro_create_board` | Create a new board |
| `miro_copy_board` | Copy an existing board |
| `miro_update_board` | Update board name/description |
| `miro_delete_board` | Delete a board |

</details>

<details>
<summary><b>Board Members (5)</b></summary>

| Tool | Description |
|------|-------------|
| `miro_list_board_members` | List users with access |
| `miro_get_board_member` | Get member details |
| `miro_share_board` | Share board via email *(requires `MIRO_SHARE_ALLOWED_DOMAINS`; fail-closed by default)* |
| `miro_update_board_member` | Update member role *(Destructive: prompts before role escalation)* |
| `miro_remove_board_member` | Remove member from board |

> Sharing and role-change tools are guarded for prompt-injection safety. See [`SECURITY.md`](SECURITY.md#board-shari
anthropicclaudecollaborationgogolangmcpmcp-servermiromiro-apimodel-context-protocolwhiteboard

What people ask about miro-mcp-server

What is olgasafonova/miro-mcp-server?

+

olgasafonova/miro-mcp-server is mcp servers for the Claude AI ecosystem. MCP server for controlling Miro whiteboards with AI assistants It has 26 GitHub stars and was last updated today.

How do I install miro-mcp-server?

+

You can install miro-mcp-server by cloning the repository (https://github.com/olgasafonova/miro-mcp-server) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is olgasafonova/miro-mcp-server safe to use?

+

Our security agent has analyzed olgasafonova/miro-mcp-server and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.

Who maintains olgasafonova/miro-mcp-server?

+

olgasafonova/miro-mcp-server is maintained by olgasafonova. The last recorded GitHub activity is from today, with 0 open issues.

Are there alternatives to miro-mcp-server?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy miro-mcp-server to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: olgasafonova/miro-mcp-server
[![Featured on ClaudeWave](https://claudewave.com/api/badge/olgasafonova-miro-mcp-server)](https://claudewave.com/repo/olgasafonova-miro-mcp-server)
<a href="https://claudewave.com/repo/olgasafonova-miro-mcp-server"><img src="https://claudewave.com/api/badge/olgasafonova-miro-mcp-server" alt="Featured on ClaudeWave: olgasafonova/miro-mcp-server" width="320" height="64" /></a>

More MCP Servers

miro-mcp-server alternatives