Skip to main content
Glama

MCP Miro Server

Trust Score

Model Context Protocol (MCP) server integrating with the Miro platform. It enables AI assistants (like Claude) to access Miro boards and manage their content through a standardized interface.


Requirements

  • Node.js v16 or newer installed

  • Miro account with API token

Generate Miro Access Token

  1. Go to the Miro Developer Portal

  2. Create a new app or use an existing one

  3. Make sure to create token with permission selected below

  4. Generate OAuth token by selecting Install app and get OAuth token

Permission

Required

boards:read

✅

boards:write

✅

identity:read

✅

identity:write

✅

team:read

✅

team:write

✅

microphone:listen

❌

screen:record

❌

webcam:record

❌

auditlogs:read

❌

sessions:delete

❌

Connecting with Claude Desktop

  1. Install Claude Desktop

  2. Open or create the configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

  3. Update it to include this server:

{
   "mcpServers":{
      "miro":{
         "command":"npx",
         "args":[
            "-y",
            "@k-jarzyna/mcp-miro"
         ],
         "env":{
            "MIRO_ACCESS_TOKEN":"your_miro_access_token"
         }
      }
   }
}
  1. Restart Claude Desktop


Available Tools and Resources

Tools

Miro SDK Function

MCP Tool

Available

List boards

list-boards

✅

Create board

create-board

✅

Update board

update-board

✅

Delete board

delete-board

✅

Copy board

copy-board

✅

Get specific board

get-specific-board

✅

Get items on board

get-items-on-board

✅

Get specific item

get-specific-item

✅

Update item position

update-item-position

✅

Delete item

delete-item

✅

Create app card item

create-app-card-item

✅

Get app card item

get-app-card-item

✅

Update app card item

update-app-card-item

✅

Delete app card item

delete-app-card-item

✅

Create card item

create-card-item

✅

Get card item

get-card-item

✅

Update card item

update-card-item

✅

Delete card item

delete-card-item

✅

Create connector

create-connector

✅

Get connectors

get-connectors

✅

Get specific connector

get-specific-connector

✅

Update connector

update-connector

✅

Delete connector

delete-connector

✅

Create sticky note item

create-sticky-note-item

✅

Get sticky note item

get-sticky-note-item

✅

Update sticky note item

update-sticky-note-item

✅

Delete sticky note item

delete-sticky-note-item

✅

Create frame

create-frame

✅

Get frame item

get-frame-item

✅

Update frame item

update-frame-item

✅

Delete frame item

delete-frame-item

✅

Create document item

create-document-item

✅

Get document item

get-document-item

✅

Update document item

update-document-item

✅

Delete document item

delete-document-item

✅

Create text item

create-text-item

✅

Get text item

get-text-item

✅

Update text item

update-text-item

✅

Delete text item

delete-text-item

✅

Create items in bulk

create-items-in-bulk

✅

Create image item using URL

create-image-item-using-url

✅

Create image item using file

create-image-item-using-file

✅

Get image item

get-image-item

✅

Update image item

update-image-item

✅

Update image item using file

update-image-item-using-file

✅

Delete image item

delete-image-item

✅

Create shape item

create-shape-item

✅

Get shape item

get-shape-item

✅

Update shape item

update-shape-item

✅

Delete shape item

delete-shape-item

✅

Create embed item

create-embed-item

✅

Get embed item

get-embed-item

✅

Update embed item

update-embed-item

✅

Delete embed item

delete-embed-item

✅

Create tag

create-tag

✅

Get tag

get-tag

✅

Get all tags

get-all-tags

✅

Update tag

update-tag

✅

Delete tag

delete-tag

✅

Attach tag

attach-tag

✅

Detach tag

detach-tag

✅

Get item tags

get-item-tags

✅

Get all board members

get-all-board-members

✅

Get specific board member

get-specific-board-member

✅

Remove board member

remove-board-member

✅

Share board

share-board

✅

Update board member

update-board-member

✅

Create group

create-group

✅

Get all groups

get-all-groups

✅

Get group

get-group

✅

Get group items

get-group-items

✅

Update group

update-group

✅

Ungroup items

ungroup-items

✅

Delete group

delete-group

✅

Create items in bulk using file

create-items-in-bulk-using-file

✅

Create mindmap node

create-mindmap-node

✅

Get mindmap node

get-mindmap-node

✅

Get mindmap nodes

get-mindmap-nodes

✅

Delete mindmap node

delete-mindmap-node

✅

Add project member

add-project-member

✅

Create board export job

create-board-export-job

✅

Get all cases

get-all-cases

✅

Get all legal holds

get-all-legal-holds

✅

Get audit logs

get-audit-logs

✅

Get board classification

get-board-classification

✅

Get board content logs

get-board-content-logs

✅

Get board export job results

get-board-export-job-results

✅

Get board export job status

get-board-export-job-status

✅

Get case

get-case

✅

Get legal hold

get-legal-hold

✅

Get legal hold content items

get-legal-hold-content-items

✅

Get organization info

get-organization-info

✅

Get organization member

get-organization-member

✅

Get organization members

get-organization-members

✅

Get project member

get-project-member

✅

Remove project member

remove-project-member

✅

Update board classification

update-board-classification

✅


Related MCP server: miro-mcp-server

Local Development

  1. Install dependencies:

npm install
  1. Create a .env file based on the template:

cp .env.template .env
  1. Edit the .env file and add your Miro access token

  2. Build the server:

npm run build

Running the Server

To run the server:

node build/index.js

License

Apache License 2.0

This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.

Available Tools

97 tools
add-project-memberC

Adds a member to a project (Enterprise only)

Inputs: orgId (required), teamId (required), projectId (required), email (required), +1 more.

attach-tagB

Attach a tag to an item on a Miro board

Inputs: boardId (required), tagId (required), itemId (required).

copy-boardC

Create a copy of an existing Miro board with optional new settings

Inputs: copyFrom (required), name, description, sharingPolicy, +1 more.

create-app-card-itemC

Create a new app card item on a Miro board

Inputs: boardId (required), data (required), position (required), geometry.

create-boardC

Create a new Miro board with specified name and sharing policies

Inputs: name (required), description, sharingPolicy, teamId.

create-board-export-jobC

Creates an export job for one or more boards (Enterprise only)

Inputs: orgId (required), requestId (required), boardIds (required), format.

create-card-itemC

Create a new card item on a Miro board

Inputs: boardId (required), data (required), position (required), geometry, +1 more.

create-connectorC

Create a new connector between items on a Miro board

Inputs: boardId (required), startItem (required), endItem (required), style.

create-document-itemC

Create a new document item on a Miro board

Inputs: boardId (required), data (required), position (required), geometry.

create-embed-itemC

Create a new embed item on a Miro board

Inputs: boardId (required), data (required), position (required), geometry (required).

create-frameC

Create a new frame on a Miro board

Inputs: boardId (required), data (required), position (required), geometry, +1 more.

create-groupC

Create a new group on a Miro board

Inputs: boardId (required), data (required).

create-image-item-using-fileC

Create a new image item on a Miro board using file from device or from chat

Inputs: boardId (required), imageData (required), position (required), title.

create-image-item-using-urlC

Create a new image item on a Miro board using a URL

Inputs: boardId (required), data (required), position (required), geometry.

create-items-in-bulkC

Create multiple items on a Miro board in a single operation

Inputs: boardId (required), items (required).

create-items-in-bulk-using-fileC

Create multiple items on a Miro board in a single operation using a JSON file from device

Inputs: boardId (required), fileData (required).

create-mindmap-nodeB

Create a new mind map node on a Miro board

Inputs: boardId (required), data (required), position (required).

create-shape-itemC

Create a new shape item on a Miro board

Inputs: boardId (required), data (required), position (required), geometry (required), +1 more.

create-sticky-note-itemC

Create a new sticky note item on a Miro board

Inputs: boardId (required), data (required), position (required), geometry, +1 more.

create-tagC

Create a new tag on a Miro board

Inputs: boardId (required), data (required), fillColor.

create-text-itemC

Create a new text item on a Miro board

Inputs: boardId (required), data (required), position (required), geometry, +1 more.

delete-app-card-itemC

Delete a specific app card item from a Miro board

Inputs: boardId (required), itemId (required).

delete-boardA

Delete a Miro board by its ID. Deleted boards go to Trash (on paid plans) and can be restored via UI within 90 days after deletion.

Inputs: boardId (required).

delete-card-itemC

Delete a specific card item from a Miro board

Inputs: boardId (required), itemId (required).

delete-connectorB

Delete a specific connector from a Miro board

Inputs: boardId (required), connectorId (required).

delete-document-itemB

Delete a specific document item from a Miro board

Inputs: boardId (required), itemId (required).

delete-embed-itemC

Delete a specific embed item from a Miro board

Inputs: boardId (required), itemId (required).

delete-frame-itemC

Delete a frame from a Miro board

Inputs: boardId (required), itemId (required).

delete-groupC

Delete a specific group from a Miro board

Inputs: boardId (required), groupId (required), deleteItems.

delete-image-itemC

Delete a specific image item from a Miro board

Inputs: boardId (required), itemId (required).

delete-itemC

Delete a specific item from a Miro board

Inputs: boardId (required), itemId (required).

delete-mindmap-nodeC

Delete a mind map node from a Miro board

Inputs: boardId (required), itemId (required).

delete-shape-itemC

Delete a specific shape item from a Miro board

Inputs: boardId (required), itemId (required).

delete-sticky-note-itemC

Delete a specific sticky note item from a Miro board

Inputs: boardId (required), itemId (required).

delete-tagC

Delete a specific tag from a Miro board

Inputs: boardId (required), tagId (required).

delete-text-itemC

Delete a specific text item from a Miro board

Inputs: boardId (required), itemId (required).

detach-tagC

Detach a tag from an item on a Miro board

Inputs: boardId (required), tagId (required), itemId (required).

get-all-board-membersB

Retrieve all members of a specific Miro board

Inputs: boardId (required), limit, offset.

get-all-casesB

Retrieves the list of eDiscovery cases in an organization (Enterprise only)

Inputs: limit (required), orgId (required), cursor.

get-all-groupsB

Retrieve all groups on a Miro board

Inputs: boardId (required), limit, cursor.

get-all-tagsC

Retrieve all tags on a Miro board

Inputs: boardId (required), limit, offset.

get-app-card-itemB

Retrieve information about a specific app card item on a Miro board

Inputs: boardId (required), itemId (required).

get-audit-logsB

Retrieves a page of audit events from the last 90 days (Enterprise only)

Inputs: createdAfter (required), createdBefore (required), cursor, limit, +1 more.

get-board-classificationB

Retrieves board classification for a board (Enterprise only)

Inputs: orgId (required), teamId (required), boardId (required).

get-board-content-logsC

Retrieves content change logs of board items (Enterprise only)

Inputs: orgId (required), from (required), to (required), boardIds, +4 more.

get-board-export-job-resultsC

Retrieves the results of a board export job (Enterprise only)

Inputs: orgId (required), jobId (required).

get-board-export-job-statusB

Retrieves the status of a board export job (Enterprise only)

Inputs: orgId (required), jobId (required).

get-card-itemB

Retrieve information about a specific card item on a Miro board

Inputs: boardId (required), itemId (required).

get-caseB

Retrieves information about a specific eDiscovery case (Enterprise only)

Inputs: orgId (required), caseId (required).

get-connectorsB

Retrieve all connectors on a specific Miro board

Inputs: boardId (required), limit, cursor.

get-document-itemC

Retrieve information about a specific document item on a Miro board

Inputs: boardId (required), itemId (required).

get-embed-itemC

Retrieve information about a specific embed item on a Miro board

Inputs: boardId (required), itemId (required).

get-frame-itemB

Retrieve information for a specific frame on a Miro board

Inputs: boardId (required), itemId (required).

get-groupB

Retrieve information about a specific group on a Miro board

Inputs: boardId (required), groupId (required).

get-group-itemsB

Retrieve all items in a specific group on a Miro board

Inputs: boardId (required), groupId (required), limit, cursor.

get-image-itemC

Retrieve information about a specific image item on a Miro board

Inputs: boardId (required), itemId (required).

get-items-on-boardC

Retrieve all items on a specific Miro board

Inputs: boardId (required), limit, offset.

get-item-tagsC

Retrieve all tags attached to a specific item on a Miro board

Inputs: boardId (required), itemId (required).

get-mindmap-nodeC

Retrieve information about a specific mind map node on a Miro board

Inputs: boardId (required), itemId (required).

get-mindmap-nodesC

Retrieve a list of mind map nodes on a Miro board

Inputs: boardId (required), limit, cursor.

get-organization-infoC

Retrieves organization information (Enterprise only)

Inputs: orgId (required).

get-organization-memberB

Retrieves information about a specific organization member (Enterprise only)

Inputs: orgId (required), memberId (required).

get-organization-membersC

Retrieves a list of members for an organization (Enterprise only)

Inputs: orgId (required), emails, role, license, +3 more.

get-project-memberC

Retrieves information about a specific project member (Enterprise only)

Inputs: orgId (required), teamId (required), projectId (required), memberId (required).

get-shape-itemB

Retrieve information about a specific shape item on a Miro board

Inputs: boardId (required), itemId (required).

get-specific-boardB

Retrieve information about a specific Miro board by its ID

Inputs: boardId (required).

get-specific-board-memberB

Retrieve details of a specific member on a Miro board

Inputs: boardId (required), memberId (required).

get-specific-connectorB

Retrieve information about a specific connector on a Miro board

Inputs: boardId (required), connectorId (required).

get-specific-itemB

Retrieve information about a specific item on a Miro board

Inputs: boardId (required), itemId (required).

get-sticky-note-itemC

Retrieve information about a specific sticky note item on a Miro board

Inputs: boardId (required), itemId (required).

get-tagC

Retrieve information about a specific tag on a Miro board

Inputs: boardId (required), tagId (required).

get-text-itemC

Retrieve information about a specific text item on a Miro board

Inputs: boardId (required), itemId (required).

list-boardsB

List all available Miro boards

Inputs: limit, offset.

remove-board-memberC

Remove a specific member from a Miro board

Inputs: boardId (required), memberId (required).

remove-project-memberC

Removes a member from a project (Enterprise only)

Inputs: orgId (required), teamId (required), projectId (required), memberId (required).

share-boardC

Share a Miro board with specific access level and optional team assignment

Inputs: boardId (required), accessLevel (required), teamId.

ungroup-itemsC

Ungroup a specific group on a Miro board

Inputs: boardId (required), groupId (required), deleteItems.

update-app-card-itemC

Update an existing app card item on a Miro board

Inputs: boardId (required), itemId (required), data, position, +1 more.

update-boardC

Update an existing Miro board with new settings

Inputs: boardId (required), name, description, sharingPolicy, +1 more.

update-board-classificationC

Updates board classification for an existing board (Enterprise only)

Inputs: orgId (required), teamId (required), boardId (required), labelId (required).

update-board-memberC

Update a specific member's role or status on a Miro board

Inputs: boardId (required), memberId (required), role, status.

update-card-itemC

Update an existing card item on a Miro board

Inputs: boardId (required), itemId (required), data, position, +2 more.

update-connectorC

Update an existing connector on a Miro board

Inputs: boardId (required), connectorId (required), startItem, endItem, +1 more.

update-document-itemC

Update an existing document item on a Miro board

Inputs: boardId (required), itemId (required), data, position, +1 more.

update-embed-itemC

Update an existing embed item on a Miro board

Inputs: boardId (required), itemId (required), data, position, +1 more.

update-frame-itemC

Update a frame on a Miro board based on the data, style, or geometry properties provided in the request body

Inputs: boardId (required), itemId (required), data, position, +2 more.

update-groupC

Update a specific group on a Miro board with new items

Inputs: boardId (required), groupId (required), data (required).

update-image-itemC

Update an existing image item on a Miro board

Inputs: boardId (required), itemId (required), data, position, +1 more.

update-image-item-using-fileC

Update an existing image item on a Miro board using file from device

Inputs: boardId (required), itemId (required), filePath (required), title, +1 more.

update-item-positionC

Update the position or parent of a specific item on a Miro board

Inputs: boardId (required), itemId (required), position, parentId.

update-shape-itemC

Update an existing shape item on a Miro board

Inputs: boardId (required), itemId (required), data, position, +2 more.

update-sticky-note-itemC

Update an existing sticky note item on a Miro board

Inputs: boardId (required), itemId (required), data, position, +2 more.

update-tagC

Update an existing tag on a Miro board

Inputs: boardId (required), tagId (required), title, fillColor.

update-text-itemC

Update an existing text item on a Miro board

Inputs: boardId (required), itemId (required), data, position, +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 97 tools

    Disambiguation4/5

    Most tools have distinct purposes targeting specific item types (e.g., create-card-item vs. create-sticky-note-item) or operations (e.g., get-specific-board vs. list-boards). However, some tools like delete-item and delete-specific-item-type tools (e.g., delete-card-item) could cause confusion, as delete-item might be overly general, leading to potential misselection when more specific deletion is needed.

    Naming Consistency5/5

    Tool names follow a highly consistent verb-noun pattern throughout, such as create-board, get-board-export-job-status, update-app-card-item, and delete-tag. All tools use snake_case uniformly, with clear action prefixes (create, get, update, delete, list, etc.), making them predictable and easy to parse.

    Tool Count2/5

    With 97 tools, the count is excessive for a single server, making it overwhelming and difficult for agents to navigate efficiently. While Miro's domain is broad, the toolset could be streamlined by grouping similar operations (e.g., generic item CRUD) rather than having separate tools for each item type, which inflates the number unnecessarily.

    Completeness5/5

    The toolset provides comprehensive coverage of Miro's domain, including full CRUD operations for boards, items (e.g., cards, shapes, text), tags, groups, and connectors, plus enterprise features like audit logs and eDiscovery. There are no obvious gaps; it supports creation, retrieval, updating, deletion, and management across all major resources.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers