MCP Miro Server
by k-jarzyna
The MCP Miro Server integrates with the Miro platform, enabling AI assistants like Claude to access and manage Miro boards through a standardized interface. It provides a Model Context Protocol (MCP) server for interacting with Miro.
Last updated: N/A
MCP Miro Server
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
- Go to the Miro Developer Portal
- Create a new app or use an existing one
- Make sure to create token with permission selected below
- 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
-
Install Claude Desktop
-
Open or create the configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Update it to include this server:
{
"mcpServers":{
"miro":{
"command":"npx",
"args":[
"-y",
"@k-jarzyna/mcp-miro"
],
"env":{
"MIRO_ACCESS_TOKEN":"your_miro_access_token"
}
}
}
}
- 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 | ✅ |
Local Development
- Install dependencies:
npm install
- Create a
.env
file based on the template:
cp .env.template .env
-
Edit the
.env
file and add your Miro access token -
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.