Miro for AI agents
Miro is a collaborative online whiteboard teams use for brainstorming, wireframing, and visually planning projects together across distributed offices and time zones. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.
What agents do in Miro.
Add a sticky note to a board
Add a sticky note item to a board to capture an idea during a working session.
Create a diagram frame
Create a frame and shapes on a board to lay out a new process diagram.
Approve before deleting a board
Require approval before deleting a board, since it removes every item on it for all collaborators.
82 Miro actions, graded by risk.
Every Miro action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.
read
31Look things up. Allowed by default.
- miro.get_tagGet Tag
- miro.get_boardGet Board (Deprecated)
- miro.get_boardsGet Boards (Deprecated)
- miro.get_oembedGet oEmbed Data
- miro.get_boards2Get Boards V2
- miro.get_card_itemGet Card Item
- miro.get_connectorGet Connector
- miro.get_item_tagsGet Item Tags
- miro.get_text_itemGet Text Item
- miro.get_all_groupsGet All Groups
- miro.get_connectorsGet Connectors
- miro.get_embed_itemGet Embed Item
- miro.get_frame_itemGet Frame Item
- miro.get_image_itemGet Image Item
- miro.get_shape_itemGet Shape Item
- miro.get_board_itemsGet Board Items
write
36Create and change things. Allow, or ask the user first.
- miro.create_tagCreate Tag
- miro.update_tagUpdate Tag
- miro.create_boardCreate Board
- miro.create_groupCreate Group
- miro.update_boardUpdate Board
- miro.update_groupUpdate Group
- miro.create_card_itemCreate Card Item
- miro.create_connectorCreate Connector
- miro.create_text_itemCreate Text Item
- miro.update_card_itemUpdate Card Item
- miro.update_connectorUpdate Connector
- miro.update_text_itemUpdate Text Item
- miro.create_embed_itemCreate Embed Item
- miro.create_frame_itemCreate Frame Item
- miro.create_shape_itemCreate Shape Item (Deprecated)
- miro.update_embed_itemUpdate Embed Item
destructive
15Delete, cancel or archive. Ask first, or deny outright.
- miro.delete_tagDelete Tag
- miro.delete_itemDelete Item
- miro.delete_groupDelete Group
- miro.delete_card_itemDelete Card Item
- miro.delete_connectorDelete Connector
- miro.delete_text_itemDelete Text Item
- miro.delete_embed_itemDelete Embed Item
- miro.delete_frame_itemDelete Frame Item
- miro.delete_image_itemDelete Image Item
- miro.delete_shape_itemDelete Shape Item
- miro.delete_app_card_itemDelete App Card Item
- miro.delete_document_itemDelete Document Item
- miro.remove_tag_from_itemRemove Tag From Item
- miro.delete_sticky_note_itemDelete Sticky Note Item
- miro.delete_mindmap_node_experimentalDelete Mind Map Node (Experimental)
Miro in three steps.
- 01Your users connect MiroThey sign in to Miro on Arc0 Connect, under your brand, and approve the access you ask for.
- 02You set the rulesReads run, writes like “create Tag” can wait for the user, and “delete Tag” can be denied outright.
- 03Any agent can actYour agent calls Miro through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
await arc0.policies.set('miro', { read: 'allow', write: 'ask', // create_tag destructive: 'deny', // delete_tag }) # Claude Code: the same connection, one URL $ claude mcp add --transport http arc0 \ https://mcp.arc0.ai/u/u_8f2
How Miro connects.
Users sign in to Miro on Arc0 Connect and approve the scopes you request. Build with Arc0’s Miro OAuth app, or bring your own so the Miro consent screen names you. Tokens refresh automatically, and you can export them whenever you want.
The same Miro connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →
- AUTH
- OAuth 2.0
- CREDENTIALS
- Per-tenant encrypted vault
- MODEL SEES
- Results only, never credentials
- AUDIT LOG
- Every call, on every plan
Use Miro from any agent.
Miro and Arc0, answered.
Can I use Miro with Claude, ChatGPT or Cursor?
Yes. Connect Miro to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Miro actions you allow.
How do users connect Miro?
Users sign in to Miro on Arc0 Connect and approve the scopes you request. Build with Arc0’s Miro OAuth app, or bring your own so the Miro consent screen names you. Tokens refresh automatically, and you can export them whenever you want.
Which Miro actions can my agent take?
82 in total: 31 read, 36 write and 15 destructive, such as “create Tag”. Your policies decide which of them each agent may call.
Can I stop my agent from deleting things in Miro?
Yes. Actions like “delete Tag” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.
Can my own backend call Miro too?
Yes. The same Miro connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.
Plug Miro into your agent.
Your users connect Miro once, under your brand. Your agent gets 82 actions behind your policies, with every call on the record.
Free to build · MCP + REST · Audit log on every plan