Miro MCP server
40 operations0 webhooks
Collaborative whiteboard boards from Miro - create and manage boards, add sticky notes, shapes, cards, text, frames, embeds and connectors, and organise a board with tags and members.
Try Miro with your agent
Connect Miro, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in Miro on my account, then run one read-only example and show me the result.
Miro tools and triggers
Tools are what your agent can do in Miro through Corsair's MCP server. Triggers are the Miro events a routine can start from.
Tags
- AttachWrite
Attach an existing tag to an item; card and sticky items accept up to eight
tags.attach
- CreateWrite
Create a tag with a title and colour for categorising board items
tags.create
- GetRead-only
Read one tag by id, with its title, colour and links
tags.get
- ItemsRead-only
List the items that carry a given tag, with offset paging
tags.items
- ListRead-only
List the tags defined on a board, with their colours
tags.list
- Of ItemRead-only
List the tags attached to one item
tags.ofItem
- RemoveDestructive
Delete a tag from the board; it is detached from every item that carried it
tags.remove
- Remove From ItemDestructive
Detach a tag from one item; the tag itself stays on the board
tags.removeFromItem
- UpdateWrite
Change a tag title or colour
tags.update
Boards
- CopyWrite
Copy an existing board, including its content, into a new board with its own name and team
boards.copy
- CreateWrite
Create a board with a name, description and sharing policy, optionally in a given team or project
boards.create
- GetRead-only
Read one board: its name, owner, team, project, sharing policy and the membership of the calling user
boards.get
- ListRead-only
List the boards the token can reach, filtered by team, project, owner or name, with offset paging
boards.list
- RemoveDestructive
Delete a board and everything on it; Miro moves it to Trash, where an owner can restore it in the Miro UI for 90 days, but there is no API call to do so
boards.remove
- UpdateWrite
Change a board name, description or sharing policy; the policy controls who can view, comment and edit
boards.update
Connectors
- CreateWrite
Connect two existing items with an arrow, line style, caps and captions; both endpoints must already exist
connectors.create
- GetRead-only
Read one connector by id
connectors.get
- ListRead-only
Page through the connectors on a board, with their endpoints and style
connectors.list
- RemoveDestructive
Delete a connector; the two items it joined stay on the board
connectors.remove
- UpdateWrite
Change a connector shape, stroke style or captions
connectors.update
Members
- GetRead-only
Read one board member's role and details
members.get
- ListRead-only
List who has access to a board, with their role
members.list
- RemoveDestructive
Remove a member's access to a board; their role cannot be restored by another call
members.remove
- ShareWrite
Invite email addresses to a board with a role, which grants them access to its content
members.share
- UpdateWrite
Change a board member's role, for example promoting a viewer to an editor
members.update
Items
- GetRead-only
Read one item by id, whatever its kind: sticky note, shape, card, text, frame, embed or connector
items.get
- ListRead-only
Page through a board items, optionally only one type or only what sits inside a frame
items.list
- RemoveDestructive
Delete any board item by id; its content cannot be restored
items.remove
Cards
- CreateWrite
Add a card with a title, description, due date and assignee, for task boards
cards.create
- UpdateWrite
Change a card title, description, due date, assignee or position
cards.update
Embeds
- CreateWrite
Embed content from a URL, such as a video or a web page
embeds.create
- UpdateWrite
Change an embed URL, mode, position or size
embeds.update
Frames
- CreateWrite
Add a frame, which groups other items into a region such as a section or a slide
frames.create
- UpdateWrite
Change a frame title, position, size or whether it shows its content
frames.update
Shapes
- CreateWrite
Draw a shape such as a rectangle, circle or flowchart node, with text and styling, for diagrams
shapes.create
- UpdateWrite
Change a shape text, style, position or size
shapes.update
Sticky Notes
- CreateWrite
Add a sticky note with text, shape and colour at a position, optionally inside a frame
stickyNotes.create
- UpdateWrite
Change a sticky note text, shape, colour, position or size
stickyNotes.update
Texts
- CreateWrite
Add a text item, for labels and annotations
texts.create
- UpdateWrite
Change a text item content, style, position or size
texts.update
Connect Miro to Claude, ChatGPT or Cursor
- 1
Connect Miro in Corsair
Add your Miro API key once in Corsair. Corsair stores the credential encrypted and makes the Miro API calls for your agent, so it never goes into a prompt or a config file. Connect Miro
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Miro. On a ChatGPT personal plan, connect Miro here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Miro's read and write operations run right away and its 6 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/miro, add the Miro plugin, and connect with an API key. Then call methods like corsair.miro.api.boards.copy() from your app. Corsair keeps each tenant isolated.
Yes. Miro requires an API key from your Miro account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit Miro, GitHub, Notion, Stripe, and the rest. Trigger Miro from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for collaborative whiteboard boards from Miro - create and manage boards, add sticky notes, shapes, cards, text, frames, embeds and connectors, and organise a board with tags and members. Common builds include sync jobs, admin tooling, and agents that call Miro APIs from your backend.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Miro API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/miro in the open repo. When Miro ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your Miro data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Miro data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put Miro on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 6 destructive Miro operations. You can change a link's mode at hub.corsair.dev/me.