Connector guide10-minute read40 MCP tools7 languages

Connect Miro to Microsoft Copilot via MCP

Let your AI work on your Miro boards: find boards, read what is on them, add and edit sticky notes, shapes, text, cards and frames, connect them with lines, organise with tags, and see who has access. Signed in with your Miro account.

HCBy HelpCode teamUpdated 10 min read Open-source on GitHub

No credit card · 7-day trial · Self-host alternative available

Miro

Miro

Let your AI work on your Miro boards: find boards, read what is on them, add and edit sticky notes, shapes, text, cards and frames, connect them with lines, organise with tags, and see who has access. Signed in with your Miro account.

tools

40

Region

INTL

Category

Productivity

Authentication

OAuth 2.0

Required env vars

MIRO_CLIENT_IDMIRO_CLIENT_SECRET
Install in one click on Cloud

7-day free trial · No credit card

  • 7-day free trial
    No credit card required
  • GDPR & SOC 2 ready
    EU data residency, audit logs
  • Open-source on GitHub
    Open source · AGPL-3.0
  • Works with ChatGPT, Claude, Gemini
    Any MCP-compatible client

Summary

Let your AI work on your Miro boards: find boards, read what is on them, add and edit sticky notes, shapes, text, cards and frames, connect them with lines, organise with tags, and see who has access. Signed in with your Miro account.

Guided setup

Connect Miro to Microsoft Copilot in 2 minutes

Start a free trial on AnythingMCP Cloud, connect Miro in the guided setup, then add your MCP URL to Microsoft Copilot. No code and no server to run.

No credit card · 7-day trial · Self-host alternative available

Try asking

Example prompts for Miro

Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.

Miro · live via MCP
Share
Opus 4.7

Claude is AI and can make mistakes. Please double-check responses.

💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Miro, paste your credentials, mint an MCP API key and you're done. No Docker, no git clone, no local server.

Miro + Microsoft Copilot

Let your AI work on your Miro boards: find boards, read what is on them, add and edit sticky notes, shapes, text, cards and frames, connect them with lines, organise with tags, and see who has access. Signed in with your Miro account.

Prerequisites

See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:

MIRO_CLIENT_ID, MIRO_CLIENT_SECRET

Step 1 — Get credentials

  1. In Miro, click your avatar → Settings → Your apps (or open miro.com/app/settings/user-profile/apps) and click + Create new app. If you have no developer team yet, Miro asks you to create one first; it is free.
  2. Name the app (for example "AnythingMCP"), pick the developer team, tick Expire user authorization token and click Create app. This choice cannot be changed later. Without it the token never expires, which also works but is less safe.
  3. On the app page, under Redirect URI for OAuth2.0, add https://cloud.anythingmcp.com/api/mcp-oauth/callback and click Add. If you host AnythingMCP yourself, enter https://your-anythingmcp-host/api/mcp-oauth/callback instead. The URI must match character for character.
  4. Under Permissions, tick boards:read and boards:write.
  5. Copy Client ID and Client secret from App Credentials into MIRO_CLIENT_ID and MIRO_CLIENT_SECRET. The Client ID is a long number.
  6. Install the connector, click Authorize with Provider on the connector page, choose the Miro team whose boards the AI should work with and click Install & authorize.
  7. Start with miro_get_token_info to check the user, the team and the granted permissions, then let the AI find a board with miro_list_boards.

Staying signed in: the AI sees and changes the boards that the Miro user who authorized can open, in the team picked during authorization. To reach the boards of another team, authorize again and pick that team. Access tokens last an hour and are renewed automatically. The refresh token lasts 60 days and renews with every use, so a connector left unused for two months needs Authorize with Provider again.

Permissions and read-only setup: tick only boards:read, authorize again, and switch off every tool that creates, changes or deletes: miro_create_board, miro_update_board, miro_copy_board, miro_create_sticky_note, miro_update_sticky_note, miro_create_shape, miro_update_shape, miro_create_text, miro_update_text, miro_create_card, miro_update_card, miro_create_frame, miro_update_frame, miro_move_item, miro_delete_item, miro_create_connector, miro_update_connector, miro_delete_connector, miro_create_tag, miro_update_tag, miro_delete_tag, miro_attach_tag and miro_remove_tag_from_item.

Switched off at install: miro_delete_board, which deletes a whole board with everything on it, miro_share_board, which makes Miro email an invitation to the people named, and miro_update_board_member and miro_remove_board_member, which change or remove someone's access. Turn them on only if the AI should delete boards or manage who has access.

Deleting is final: miro_delete_item removes an item for good, with no undo through the API, and deleting a frame leaves its contents on the board. miro_delete_tag takes the tag off every item that carries it. The AI asks before deleting anything it did not just create.

Tags and plans: only cards and sticky notes can carry tags, at most 8 each, and tag changes show on an open board after a refresh. The Miro API is free to use, but free teams may hold only 3 editable boards, so miro_create_board and miro_copy_board can fail there. Boards in a developer team carry a watermark.

Common errors: 401 (tokenNotProvided) means the authorization expired or was revoked: click Authorize with Provider again, and if the app was deleted or its secret reset, update MIRO_CLIENT_SECRET first. 403 means a missing permission (boards:write for changes) or no access to that board: tick the permission in the app settings and authorize again. 404 means a wrong board or item id. 400 (invalidParameters) names the field that is wrong. 409 means the item changed at the same moment: read it again and retry. 429 means Miro is rate limiting this user: wait a minute. Creating a frame sometimes fails with 500 "Internal error occurred" for a few minutes; the same request works again after a short wait.

The connector does not handle images, documents and embeds (it only lists them), app cards, comments, mind maps, exports, or team and organization administration.

Step 2 — Install the adapter

curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d

Step 3 — Add the connector in Microsoft Copilot

Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide shows YOUR_SERVER_ID.

Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.

  1. In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
  2. Enter a Server name (for example AnythingMCP), a Server description that says what the connector does, and the Server URL https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server.
  3. Under authentication, choose API key, set Type to Header and the header name to X-API-Key, then select Create.
  4. In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
  5. Try it in the agent's Test pane: ask for something that needs the Miro tools.
  6. Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.

Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.

Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.

Available tools

ToolWhat it does
miro_get_token_infoShow who the connection belongs to: the Miro user, the team the app was installed in, the organization and the granted scopes
miro_list_boardsFind boards the user can open: by text, owner, team or project
miro_get_boardGet one board: name, description, owner, team, project, sharing and permission policies, viewLink, createdAt and modifiedAt
miro_create_boardCreate a board
miro_update_boardRename a board, change its description or its sharing policy
miro_copy_boardCopy a board with all its content into a new board, optionally with a new name and in another team
miro_delete_boardDelete a whole board with everything on it
miro_list_itemsList the items on a board: id, type, data (content, title ...), style, position, geometry, parent (frame) and who changed them when
miro_get_itemGet one item of any type (sticky note, shape, text, card, frame, image ...): type, data, style, position, geometry and parent
miro_move_itemMove any item: to a new position, into a frame (parent {"id": "<frame id>"}) or out of it back onto the board (parent {"id": null})
miro_delete_itemDelete an item of any type (sticky note, shape, text, card, frame, image ...)
miro_create_sticky_noteAdd a sticky note to a board
miro_update_sticky_noteChange a sticky note's text, shape, color, position, size or frame
miro_create_shapeAdd a shape (rectangle, circle, flowchart symbol ...) with optional text to a board
miro_update_shapeChange a shape's type, text, style, position, size or frame
miro_create_textAdd a free text item to a board (a heading, a label, a paragraph)
miro_update_textChange a text item
miro_create_cardAdd a card (a task-like item with title, description, assignee and due date) to a board
miro_update_cardChange a card's title, description, assignee, due date, color, position, size or frame
miro_create_frameAdd a frame (a titled area that groups items) to a board
miro_update_frameChange a frame's title, background, position or size
miro_list_connectorsList the connector lines on a board: id, startItem and endItem (item ids), shape, captions and style
miro_get_connectorGet one connector line: the items it joins, its shape, captions and style
miro_create_connectorDraw a connector line between two items (sticky notes, shapes, cards, texts; not frames), e.g. to link steps of a flowchart
miro_update_connectorChange a connector line: its ends, shape, captions or style
miro_delete_connectorDelete a connector line between two items; the items it joined stay where they are
miro_list_board_membersList who has access to a board: member id (the user id), name, role (viewer, commenter, editor, coowner, owner)
miro_get_board_memberGet one member of a board: user id, name and role (viewer, commenter, editor, coowner, owner)
miro_share_boardInvite people to a board by email with a role; Miro emails them an invitation
miro_update_board_memberChange a board member's role, e.g. from viewer to editor
miro_remove_board_memberRemove someone's access to a board
miro_list_tagsList the tags defined on a board: id, title and fillColor
miro_get_tagGet one tag of a board by its id: title and fillColor, as shown on cards and sticky notes
miro_create_tagCreate a tag on a board, to attach to cards and sticky notes
miro_update_tagRename a tag or change its color; every item carrying it changes too
miro_delete_tagDelete a tag from a board; it is removed from every item that carries it
miro_attach_tagAttach an existing tag to a card or sticky note (other item types cannot carry tags; at most 8 per item)
miro_remove_tag_from_itemTake a tag off a card or sticky note; the tag itself stays on the board
miro_get_item_tagsList the tags attached to one card or sticky note, each with id, title and fillColor
miro_list_items_by_tagList the cards and sticky notes that carry a tag

Example prompts

  • "Find our Q3 Retrospective board and summarise the sticky notes in each frame."
  • "Who has access to the Checkout redesign board, and what role does each person have?"
  • "On the Product roadmap board, add a frame called Next sprint with three yellow sticky notes: Login fix, Search filters and Onboarding emails."
  • "Show me all cards tagged Blocked on the Sprint planning board, with their assignees and due dates."

FAQ

Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.

What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.

The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.

Next steps

Was this guide helpful?

Connect Miro to Microsoft Copilot in 2 minutes

Start a free trial on AnythingMCP Cloud, connect Miro in the guided setup, then add your MCP URL to Microsoft Copilot. No code and no server to run.

Related guides

Connectors

Connect Miro to ChatGPT via MCP: Boards and Cards

Let your AI work on your Miro boards: find boards, read what is on them, add and edit sticky notes, shapes, text, cards and frames, connect them with lines, organise with tags, and see who has access. Signed in with your Miro account.

Connectors

Connect Miro to Claude via MCP: Boards and Notes

Let your AI work on your Miro boards: find boards, read what is on them, add and edit sticky notes, shapes, text, cards and frames, connect them with lines, organise with tags, and see who has access. Signed in with your Miro account.

Connectors

Connect Miro to Cursor via MCP: Boards and Notes

Let your AI work on your Miro boards: find boards, read what is on them, add and edit sticky notes, shapes, text, cards and frames, connect them with lines, organise with tags, and see who has access. Signed in with your Miro account.

Connectors

Connect Miro to Gemini CLI via MCP: Boards and Cards

Let your AI work on your Miro boards: find boards, read what is on them, add and edit sticky notes, shapes, text, cards and frames, connect them with lines, organise with tags, and see who has access. Signed in with your Miro account.

Connectors

Connect Miro to Meta Muse via MCP: Boards and Notes

Let your AI work on your Miro boards: find boards, read what is on them, add and edit sticky notes, shapes, text, cards and frames, connect them with lines, organise with tags, and see who has access. Signed in with your Miro account.

Connectors

Miro MCP Server: Boards, Sticky Notes and Cards

Let your AI work on your Miro boards: find boards, read what is on them, add and edit sticky notes, shapes, text, cards and frames, connect them with lines, organise with tags, and see who has access. Signed in with your Miro account.