100+ integrations are ready to connect to your AI.Connect your first MCP

Miro MCP server for your AI

Read what is on a board, add sticky notes, cards and frames, link them with connectors, tag work in bulk, and check who has access — from Claude, ChatGPT or Codex.

PopMCPMiro

Show me every sticky note tagged Blocked on the Q3 planning board

Supported Miro tools

Every board, item, connector, tag, member and admin call the agent can make, plus the board changes it can watch for.

miro_attach_tag_to_item

Attach tag to item.

miro_create_tag

Create tag.

miro_get_items_by_tag

Get items by tag.

miro_get_tags_from_board

Get tags from board.

miro_get_tags_from_item

Get tags from item.

miro_copy_board

Copy board.

miro_create_board

Create board.

miro_delete_board

Delete board.

miro_delete_item

Delete item.

miro_get_boards

Get boards.

miro_get_items

Get items on board.

miro_get_items_within_frame

Get items within frame.

miro_get_specific_board

Get specific board.

miro_get_specific_item

Get specific item on board.

miro_update_board

Update board.

miro_update_item_position_or_parent

Update item position or parent.

miro_create_connector

Create connector.

miro_get_board_members

Get all board members.

miro_get_connector

Get specific connector.

miro_get_connectors

Get connectors.

miro_share_board

Share board.

miro_update_connector

Update connector.

miro_create_app_card_item

Create app card item.

miro_create_card_item

Create card item.

miro_create_document_item_using_url

Create document item using URL.

miro_create_embed_item

Create embed item.

miro_create_frame_item

Create frame.

miro_create_image_item_using_url

Create image item using URL.

miro_create_shape_item

Create shape item.

miro_create_sticky_note_item

Create sticky note item.

miro_create_text_item

Create text item.

miro_get_card_item

Get card item.

miro_get_frame_item

Get frame.

miro_get_image_item

Get image item.

miro_get_shape_item

Get shape item.

miro_get_sticky_note_item

Get sticky note item.

miro_get_text_item

Get text item.

miro_update_card_item

Update card item.

miro_update_frame_item

Update frame.

miro_update_shape_item

Update shape item.

miro_update_sticky_note_item

Update sticky note item.

miro_update_text_item

Update text item.

miro_create_items

Create items in bulk.

miro_token_info

Get access token information.

miro_create_case

Create case.

miro_create_legal_hold

Create legal hold.

miro_delete_case

Close case.

miro_delete_legal_hold

Close legal hold.

miro_edit_case

Edit case.

miro_edit_legal_hold

Edit legal hold.

miro_get_all_cases

Get all cases.

miro_get_all_legal_holds

Get all legal holds within a case.

miro_get_case

Get case.

miro_get_legal_hold

Get legal hold information.

miro_get_legal_hold_content_items

Get content items under legal hold.

miro_get_legal_hold_export_jobs

Get board export jobs of a case.

miro_delete_tag

Delete tag.

miro_get_tag

Get tag.

miro_remove_tag_from_item

Remove tag from item.

miro_update_tag

Update tag.

miro_create_group

Create group.

miro_delete_group

Deletes the group.

miro_enterprise_board_export_job_results

Get results for board export job.

miro_enterprise_board_export_job_status

Get board export job status.

miro_enterprise_board_export_job_tasks

Get board export job tasks list.

miro_enterprise_board_export_jobs

Get board export jobs list.

miro_enterprise_create_board_export

Create board export job.

miro_enterprise_create_board_export_task_export_link

Create task export link.

miro_enterprise_update_board_export_job

Update board export job status.

miro_get_all_groups

Get all groups on a board.

miro_get_group_by_id

Get a group by its ID.

miro_get_items_by_group_id

Get items of a group by ID.

miro_un_group

Ungroup items.

miro_update_group

Updates a group with new items.

miro_create_code_widget_item

Create code widget item.

miro_create_shape_item_flowchart

Create shape item.

miro_delete_code_widget_item

Delete code widget item.

miro_delete_item_experimental

Delete item.

miro_delete_shape_item_flowchart

Delete shape item.

miro_get_code_widget_item

Get code widget item.

miro_get_code_widget_items

Get code widget items.

miro_get_items_experimental

Get items on board.

miro_get_shape_item_flowchart

Get shape item.

miro_get_specific_item_experimental

Get specific item on board.

miro_move_code_widget_item

Move code widget item.

miro_update_code_widget_item

Update code widget item.

miro_update_shape_item_flowchart

Update shape item.

miro_delete_connector

Delete connector.

miro_enterprise_add_project_member

Add member in a project.

miro_enterprise_create_group

Create user group.

miro_enterprise_create_group_member

Create user group member.

miro_enterprise_create_project

Create project.

miro_enterprise_create_team

Create team.

miro_enterprise_delete_group

Delete user group.

miro_enterprise_delete_group_member

Delete user group member.

miro_enterprise_delete_project

Delete project.

miro_enterprise_delete_project_member

Remove project member.

miro_enterprise_delete_team

Delete team.

miro_enterprise_delete_team_member

Delete team member from team.

miro_enterprise_get_group

Get user group.

miro_enterprise_get_group_member

Get user group member.

miro_enterprise_get_group_members

List of user group members.

miro_enterprise_get_groups

List of user groups.

miro_enterprise_get_project

Get project.

miro_enterprise_get_project_member

Get project member.

miro_enterprise_get_project_members

List of project members.

miro_enterprise_get_projects

List of projects.

miro_enterprise_get_team

Get team.

miro_enterprise_get_team_member

Get team member.

miro_enterprise_get_team_members

List team members.

miro_enterprise_get_teams

List teams.

miro_enterprise_invite_team_member

Invite team members.

miro_enterprise_update_group

Update user group.

miro_enterprise_update_group_members

Bulk edit of membership in user group.

miro_enterprise_update_project

Update project.

miro_enterprise_update_project_member

Update project member.

miro_enterprise_update_team

Update team.

miro_enterprise_update_team_member

Update team member.

miro_get_specific_board_member

Get specific board member.

miro_remove_board_member

Remove board member.

miro_update_board_member

Update board member.

miro_create_mindmap_nodes_experimental

Create mind map node.

miro_delete_app_card_item

Delete app card item.

miro_delete_card_item

Delete card item.

miro_delete_document_item

Delete document item.

miro_delete_embed_item

Delete embed item.

miro_delete_frame_item

Delete frame.

miro_delete_image_item

Delete image item.

miro_delete_mindmap_node_experimental

Delete mind map node.

miro_delete_shape_item

Delete shape item.

miro_delete_sticky_note_item

Delete sticky note item.

miro_delete_text_item

Delete text item.

miro_enterprise_teams_create_group

Create user group to team connection.

miro_enterprise_teams_delete_group

Delete user group to team connection.

miro_enterprise_teams_get_group

Get user group of a team.

miro_enterprise_teams_get_groups

List of user group to team connections.

miro_get_app_card_item

Get app card item.

miro_get_document_item

Get document item.

miro_get_embed_item

Get embed item.

miro_get_mindmap_node_experimental

Get specific mind map node.

miro_get_mindmap_nodes_experimental

Get mind map nodes.

miro_update_app_card_item

Update app card item.

miro_update_document_item_using_url

Update document item using URL.

miro_update_embed_item

Update embed item.

miro_update_image_item_using_url

Update image item using URL.

miro_create_doc_format_item

Create doc format item.

miro_delete_doc_format_item

Delete doc format item.

miro_enterprise_boards_create_group

Create board user group assignments.

miro_enterprise_boards_delete_groups

Delete board user group assignment.

miro_enterprise_boards_get_groups

Get board user group assignments.

miro_enterprise_dataclassification_team_boards_bulk

Bulk update boards classification.

miro_enterprise_dataclassification_team_settings_get

Get team settings.

miro_enterprise_dataclassification_team_settings_set

Update team settings.

miro_enterprise_get_default_team_settings

Get default team settings.

miro_enterprise_get_team_settings

Get team settings.

miro_enterprise_project_create_group

Create project user group assignments.

miro_enterprise_project_delete_groups

Delete project user group assignment.

miro_enterprise_projects_get_groups

Get project user group assignments.

miro_enterprise_update_team_settings

Update team settings.

miro_get_doc_format_item

Get doc format item.

miro_enterprise_dataclassification_board_get

Get board classification.

miro_enterprise_dataclassification_board_set

Update board classification.

miro_enterprise_get_organization_member

Get organization member.

miro_enterprise_get_organization_members

Get organization members.

miro_enterprise_get_project_settings

Get project settings.

miro_enterprise_groups_get_team

Get user group team.

miro_enterprise_groups_get_teams

Get teams of an user group.

miro_enterprise_update_project_settings

Update project settings.

miro_get_metrics

Get app metrics.

miro_get_metrics_total

Get total app metrics.

miro_enterprise_dataclassification_organization_settings_get

Get organization settings.

miro_enterprise_get_ai_interaction_logs

Get AI interaction logs (Beta).

miro_enterprise_get_audit_logs

Get audit logs.

miro_enterprise_board_content_item_logs_fetch

Retrieve content change logs of board items.

miro_enterprise_get_organization

Get organization info.

miro_enterprise_post_user_sessions_reset

Reset all sessions of an user.

Connect Miro to your AI

Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Miro side.

Enter your own Miro app's Client ID and Client secret, then authorize in the browser — Miro handles login and team selection, and no password is ever shared. What the agent can call stays inside your token's scopes.

Auth typeyour-miro-value
Client ID3458764500000000000
Client secret••••••••••••3f7a
Authorize PopMCP on MiroAuthorize

Then just ask for the work

  • Show me every sticky note tagged Blocked on the Q3 planning board

    • get_boards
    • get_tags_from_board
    • get_items_by_tag
  • Tag every card inside the Discovery frame as needs-review

    • get_frame_item
    • get_items_within_frame
    • create_tag
    • attach_tag_to_item
  • Set up a retro board with three frames of sticky notes and connectors

    • create_board
    • create_frame_item
    • create_sticky_note_item
    • create_connector
  • List every board my team owns and who has edit access to each

    • get_boards
    • get_specific_board
    • get_board_members

Use Miro from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Miro MCP server questions

What teams ask before putting Miro behind an AI client.

What can the agent actually read and change in my Miro account?

It works across boards and sharing, every item type — sticky notes, shapes, text, cards, frames, images, documents, embeds and app cards — plus connectors, tags and bulk create. It can also reach the Enterprise admin APIs (organizations, teams, projects, members, user groups, board export, audit logs) when your token's scopes allow. Anything outside the scopes you granted at authorization simply is not callable.

Do I have to create my own Miro app to connect?

Yes. The connect form asks for the Client ID and Client secret from your own Miro app, alongside an optional Auth type field shown for reference. You then authorize once in your browser, where Miro handles login and team selection, so no password is ever shared with PopMCP.

Can it reach admin features like audit logs, board export and legal holds?

Yes, when your token's scopes allow it. The catalog covers organizations, teams, projects, members and user groups, along with board export, audit logs and legal holds — legal holds is the single largest module here. If your app's scopes do not include those endpoints, the agent will not be able to call them.

How many tools are there, and does the agent load all of them at once?

There are 176 operations across 45 API modules, split 76 read and 100 write. Only 44 load by default so the agent's tool list stays workable; the rest stay searchable and can be pulled in on demand. Turning on the full catalog exposes every operation, including the admin and export modules.

What Miro changes can PopMCP watch for?

There are 19 triggers. Change-detection ones include boards created and updated, board members added and removed, items added and removed, connectors added, tags created, mind map nodes added, groups created, and board exports finishing or failing. Polled triggers cover organization-wide board content changes, audit events being recorded, and Miro AI features being used.

Why does the agent look up the board first before editing anything?

Almost every item, connector and tag call is scoped to a single board, so a request that names a board by title normally resolves through get_boards before anything else runs. Frames add a second hop — get_items_within_frame returns what sits inside one. Expect a short read chain in front of most writes; that is the API's shape, not extra overhead.

Do I have to run or host the Miro MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

Why do only 44 of the 176 tools load by default?

Loading 176 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 44-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.

What is the difference between a tool and a trigger?

A tool is something your AI calls — there are 176 here. A trigger is something PopMCP watches for you: 19 Miro events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Miro.

Connect Miro to your AI in minutes

Launch a hosted MCP endpoint for Miro, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP