miro_attach_ tag_ to_ itemAttach tag to item.
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
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_ itemAttach tag to item.
miro_create_ tagCreate tag.
miro_get_ items_ by_ tagGet items by tag.
miro_get_ tags_ from_ boardGet tags from board.
miro_get_ tags_ from_ itemGet tags from item.
miro_copy_ boardCopy board.
miro_create_ boardCreate board.
miro_delete_ boardDelete board.
miro_delete_ itemDelete item.
miro_get_ boardsGet boards.
miro_get_ itemsGet items on board.
miro_get_ items_ within_ frameGet items within frame.
miro_get_ specific_ boardGet specific board.
miro_get_ specific_ itemGet specific item on board.
miro_update_ boardUpdate board.
miro_update_ item_ position_ or_ parentUpdate item position or parent.
miro_create_ connectorCreate connector.
miro_get_ board_ membersGet all board members.
miro_get_ connectorGet specific connector.
miro_get_ connectorsGet connectors.
miro_share_ boardShare board.
miro_update_ connectorUpdate connector.
miro_create_ app_ card_ itemCreate app card item.
miro_create_ card_ itemCreate card item.
miro_create_ document_ item_ using_ urlCreate document item using URL.
miro_create_ embed_ itemCreate embed item.
miro_create_ frame_ itemCreate frame.
miro_create_ image_ item_ using_ urlCreate image item using URL.
miro_create_ shape_ itemCreate shape item.
miro_create_ sticky_ note_ itemCreate sticky note item.
miro_create_ text_ itemCreate text item.
miro_get_ card_ itemGet card item.
miro_get_ frame_ itemGet frame.
miro_get_ image_ itemGet image item.
miro_get_ shape_ itemGet shape item.
miro_get_ sticky_ note_ itemGet sticky note item.
miro_get_ text_ itemGet text item.
miro_update_ card_ itemUpdate card item.
miro_update_ frame_ itemUpdate frame.
miro_update_ shape_ itemUpdate shape item.
miro_update_ sticky_ note_ itemUpdate sticky note item.
miro_update_ text_ itemUpdate text item.
miro_create_ itemsCreate items in bulk.
miro_token_ infoGet access token information.
miro_create_ caseCreate case.
miro_create_ legal_ holdCreate legal hold.
miro_delete_ caseClose case.
miro_delete_ legal_ holdClose legal hold.
miro_edit_ caseEdit case.
miro_edit_ legal_ holdEdit legal hold.
miro_get_ all_ casesGet all cases.
miro_get_ all_ legal_ holdsGet all legal holds within a case.
miro_get_ caseGet case.
miro_get_ legal_ holdGet legal hold information.
miro_get_ legal_ hold_ content_ itemsGet content items under legal hold.
miro_get_ legal_ hold_ export_ jobsGet board export jobs of a case.
miro_delete_ tagDelete tag.
miro_get_ tagGet tag.
miro_remove_ tag_ from_ itemRemove tag from item.
miro_update_ tagUpdate tag.
miro_create_ groupCreate group.
miro_delete_ groupDeletes the group.
miro_enterprise_ board_ export_ job_ resultsGet results for board export job.
miro_enterprise_ board_ export_ job_ statusGet board export job status.
miro_enterprise_ board_ export_ job_ tasksGet board export job tasks list.
miro_enterprise_ board_ export_ jobsGet board export jobs list.
miro_enterprise_ create_ board_ exportCreate board export job.
miro_enterprise_ create_ board_ export_ task_ export_ linkCreate task export link.
miro_enterprise_ update_ board_ export_ jobUpdate board export job status.
miro_get_ all_ groupsGet all groups on a board.
miro_get_ group_ by_ idGet a group by its ID.
miro_get_ items_ by_ group_ idGet items of a group by ID.
miro_un_ groupUngroup items.
miro_update_ groupUpdates a group with new items.
miro_create_ code_ widget_ itemCreate code widget item.
miro_create_ shape_ item_ flowchartCreate shape item.
miro_delete_ code_ widget_ itemDelete code widget item.
miro_delete_ item_ experimentalDelete item.
miro_delete_ shape_ item_ flowchartDelete shape item.
miro_get_ code_ widget_ itemGet code widget item.
miro_get_ code_ widget_ itemsGet code widget items.
miro_get_ items_ experimentalGet items on board.
miro_get_ shape_ item_ flowchartGet shape item.
miro_get_ specific_ item_ experimentalGet specific item on board.
miro_move_ code_ widget_ itemMove code widget item.
miro_update_ code_ widget_ itemUpdate code widget item.
miro_update_ shape_ item_ flowchartUpdate shape item.
miro_delete_ connectorDelete connector.
miro_enterprise_ add_ project_ memberAdd member in a project.
miro_enterprise_ create_ groupCreate user group.
miro_enterprise_ create_ group_ memberCreate user group member.
miro_enterprise_ create_ projectCreate project.
miro_enterprise_ create_ teamCreate team.
miro_enterprise_ delete_ groupDelete user group.
miro_enterprise_ delete_ group_ memberDelete user group member.
miro_enterprise_ delete_ projectDelete project.
miro_enterprise_ delete_ project_ memberRemove project member.
miro_enterprise_ delete_ teamDelete team.
miro_enterprise_ delete_ team_ memberDelete team member from team.
miro_enterprise_ get_ groupGet user group.
miro_enterprise_ get_ group_ memberGet user group member.
miro_enterprise_ get_ group_ membersList of user group members.
miro_enterprise_ get_ groupsList of user groups.
miro_enterprise_ get_ projectGet project.
miro_enterprise_ get_ project_ memberGet project member.
miro_enterprise_ get_ project_ membersList of project members.
miro_enterprise_ get_ projectsList of projects.
miro_enterprise_ get_ teamGet team.
miro_enterprise_ get_ team_ memberGet team member.
miro_enterprise_ get_ team_ membersList team members.
miro_enterprise_ get_ teamsList teams.
miro_enterprise_ invite_ team_ memberInvite team members.
miro_enterprise_ update_ groupUpdate user group.
miro_enterprise_ update_ group_ membersBulk edit of membership in user group.
miro_enterprise_ update_ projectUpdate project.
miro_enterprise_ update_ project_ memberUpdate project member.
miro_enterprise_ update_ teamUpdate team.
miro_enterprise_ update_ team_ memberUpdate team member.
miro_get_ specific_ board_ memberGet specific board member.
miro_remove_ board_ memberRemove board member.
miro_update_ board_ memberUpdate board member.
miro_create_ mindmap_ nodes_ experimentalCreate mind map node.
miro_delete_ app_ card_ itemDelete app card item.
miro_delete_ card_ itemDelete card item.
miro_delete_ document_ itemDelete document item.
miro_delete_ embed_ itemDelete embed item.
miro_delete_ frame_ itemDelete frame.
miro_delete_ image_ itemDelete image item.
miro_delete_ mindmap_ node_ experimentalDelete mind map node.
miro_delete_ shape_ itemDelete shape item.
miro_delete_ sticky_ note_ itemDelete sticky note item.
miro_delete_ text_ itemDelete text item.
miro_enterprise_ teams_ create_ groupCreate user group to team connection.
miro_enterprise_ teams_ delete_ groupDelete user group to team connection.
miro_enterprise_ teams_ get_ groupGet user group of a team.
miro_enterprise_ teams_ get_ groupsList of user group to team connections.
miro_get_ app_ card_ itemGet app card item.
miro_get_ document_ itemGet document item.
miro_get_ embed_ itemGet embed item.
miro_get_ mindmap_ node_ experimentalGet specific mind map node.
miro_get_ mindmap_ nodes_ experimentalGet mind map nodes.
miro_update_ app_ card_ itemUpdate app card item.
miro_update_ document_ item_ using_ urlUpdate document item using URL.
miro_update_ embed_ itemUpdate embed item.
miro_update_ image_ item_ using_ urlUpdate image item using URL.
miro_create_ doc_ format_ itemCreate doc format item.
miro_delete_ doc_ format_ itemDelete doc format item.
miro_enterprise_ boards_ create_ groupCreate board user group assignments.
miro_enterprise_ boards_ delete_ groupsDelete board user group assignment.
miro_enterprise_ boards_ get_ groupsGet board user group assignments.
miro_enterprise_ dataclassification_ team_ boards_ bulkBulk update boards classification.
miro_enterprise_ dataclassification_ team_ settings_ getGet team settings.
miro_enterprise_ dataclassification_ team_ settings_ setUpdate team settings.
miro_enterprise_ get_ default_ team_ settingsGet default team settings.
miro_enterprise_ get_ team_ settingsGet team settings.
miro_enterprise_ project_ create_ groupCreate project user group assignments.
miro_enterprise_ project_ delete_ groupsDelete project user group assignment.
miro_enterprise_ projects_ get_ groupsGet project user group assignments.
miro_enterprise_ update_ team_ settingsUpdate team settings.
miro_get_ doc_ format_ itemGet doc format item.
miro_enterprise_ dataclassification_ board_ getGet board classification.
miro_enterprise_ dataclassification_ board_ setUpdate board classification.
miro_enterprise_ get_ organization_ memberGet organization member.
miro_enterprise_ get_ organization_ membersGet organization members.
miro_enterprise_ get_ project_ settingsGet project settings.
miro_enterprise_ groups_ get_ teamGet user group team.
miro_enterprise_ groups_ get_ teamsGet teams of an user group.
miro_enterprise_ update_ project_ settingsUpdate project settings.
miro_get_ metricsGet app metrics.
miro_get_ metrics_ totalGet total app metrics.
miro_enterprise_ dataclassification_ organization_ settings_ getGet organization settings.
miro_enterprise_ get_ ai_ interaction_ logsGet AI interaction logs (Beta).
miro_enterprise_ get_ audit_ logsGet audit logs.
miro_enterprise_ board_ content_ item_ logs_ fetchRetrieve content change logs of board items.
miro_enterprise_ get_ organizationGet organization info.
miro_enterprise_ post_ user_ sessions_ resetReset all sessions of an user.
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.
your-miro-value3458764500000000000••••••••••••3f7aRead-only keeps the agent to reading boards and items. On full access, require approval for writes so deleting a board or item, or sharing a board with new people, waits for you. The full catalog adds the admin tools.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Miro credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Show me every sticky note tagged Blocked on the Q3 planning board
miro_get_boardsok
Then just ask for the work
“Show me every sticky note tagged Blocked on the Q3 planning board”
“Tag every card inside the Discovery frame as needs-review”
“Set up a retro board with three frames of sticky notes and connectors”
“List every board my team owns and who has edit access to each”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Miro behind an AI client.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Launch a hosted MCP endpoint for Miro, keep tool access under control, and start testing real workflow prompts right away.