Miro MCP App
Provides tools for interacting with Miro's platform, enabling board management, search, layouts, diagrams, images, experimental code widgets, and more through 31 Miro API tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Miro MCP AppShow me my board called 'Sprint Retro'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Miro MCP App
An independent, hosted Model Context Protocol server for Miro with an interactive MCP App workspace. It exposes the 31 tools in Miro's public MCP documentation while using only public Miro APIs.
Highlights
Streamable HTTP MCP endpoint at
/mcpOAuth 2.1, dynamic client registration, PKCE, and Miro OAuth brokering
Board search, reading, layouts, diagrams, images, and experimental code widgets
App-managed document, table, and prototype fallbacks
Interactive board search, mini-canvas, inspector, and Miro deep links
Explicit compatibility metadata for every result
See docs/parity.md for native, emulated, and unavailable capabilities.
Related MCP server: miro-mcp-server
Requirements
Node.js 20 or newer
pnpm 10
A Miro developer app with expiring tokens
Public HTTPS hosting for the OAuth callback
Configure the Miro app with:
Scopes:
boards:read,boards:write,identity:readRedirect URI:
https://YOUR_HOST/oauth/miro/callbackExpiring access tokens enabled
Configuration
Copy .env.example and set:
Variable | Required | Purpose |
| Hosted mode | Public origin used by MCP OAuth metadata |
| Hosted mode | Miro OAuth client ID |
| Hosted mode | Miro OAuth client secret |
| Hosted mode | Registered Miro callback |
| No | HTTP port, default |
| No | API override for contract testing |
| Development only | Bypasses MCP OAuth for one local user |
| Development only | Team associated with the static token |
MIRO_ACCESS_TOKEN mode is intentionally not user-isolated. Do not use it on a
shared deployment.
Run
pnpm build
pnpm startConnect a client to:
https://YOUR_HOST/mcpThe client discovers authorization through RFC 9728 and dynamically registers itself. The user is then redirected through Miro consent.
For local development with a Miro test token:
MIRO_ACCESS_TOKEN=... MIRO_TEAM_ID=... pnpm devHTTP endpoints
Endpoint | Purpose |
| Authenticated Streamable HTTP MCP |
| Readiness and configuration state |
| MCP protected-resource metadata |
| OAuth server metadata |
| Dynamic client registration |
| OAuth lifecycle |
| Miro OAuth callback |
| Five-minute, single-use image upload |
MCP App
The 31 Miro tools return data without opening UI cards. One additional
render_miro_board tool attaches ui://miro/workspace and opens a single
full-size Miro Live Embed obtained from Miro's official oEmbed endpoint.
Changes made by subsequent tools appear live inside Miro's own canvas:
No reconstructed board items
No app sidebars, inspector, or polling
Native Miro zooming, navigation, and live updates
The View receives only Miro's validated live-embed URL; it never receives Miro or MCP access tokens.
Verification
pnpm check
pnpm verifyThe verification harness checks all 31 parity tools plus the dedicated render tool, prompts, the MCP App resource, DSL discovery, and upload URL issuance without making Miro API calls.
Deployment note
OAuth clients, grants, app-managed artifacts, and uploads currently use
process-local stores. This is suitable for local development and a single
non-restarting evaluation instance. Before production or horizontal scaling,
replace OAuthStore, ArtifactStore, and UploadStore with durable encrypted
PostgreSQL/object-storage adapters.
This server cannot be deployed
Maintenance
Related MCP Connectors
Official Miro MCP server - Supports context to code and creating diagrams, docs, and data tables.
Collaborative whiteboard MCP server — create objects, connectors, C4 diagrams, and manage boards
MCP Server for JFrog, providing tools for development and artifact management.
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
Related MCP Servers
- AlicenseBqualityCmaintenanceMiro MCP server, exposing all functionalities available in official Miro SDK.97210 npm66Apache 2.0
- AlicenseAqualityAmaintenanceMCP server for controlling Miro whiteboards with AI assistants. Create and manage stickies, shapes, frames, connectors, and more.8826MIT
- AlicenseNot gradedqualityDmaintenanceThis repository contains an implementation of an Miro Universal MCP (Model Context Protocol) server. It provides a standardized interface for interacting with Miro's tools and services through a unified API.1MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables Claude AI to programmatically create and manipulate Miro boards via the Miro API with OAuth2 authentication. Supports 14 tools for board, item, and connector operations.-