# How to connect Miro to OpenClaw (no API keys)

> Connect Miro to OpenClaw with ClawLink in one click — 73 tools your AI agent can call from chat via hosted OAuth. No API keys, no manual setup.

Web version: https://claw-link.dev/openclaw/miro

The usual route to Miro access for OpenClaw is an MCP server you configure and keep running, plus your own OAuth app or API keys. ClawLink gives OpenClaw a more practical Miro setup: install one ClawHub skill, connect Miro in the browser, and OpenClaw can call real Miro actions from any chat surface with no auth, token refresh, or tool wiring to build yourself.

**Start here:** install the ClawLink plugin (`openclaw plugins install clawhub:clawlink-plugin`), pair it in the browser, then connect the app in the ClawLink dashboard. The interactive install prompt is on the web version of this page: https://claw-link.dev/openclaw/miro

## Setup

It takes three steps to connect OpenClaw to Miro.

1. **Install ClawLink** — add the plugin to OpenClaw once.
2. **Connect Miro** — one-click OAuth in the ClawLink dashboard.
3. **Use it from chat** — ask OpenClaw in plain English.

**Alternative for any agent (no plugin needed):** if the OpenClaw plugin route isn't available or doesn't work, any AI agent with shell access can use the ClawLink CLI instead:

```bash
npx -y @useclawlink/cli login          # sign in via browser — no API key to paste
npx -y @useclawlink/cli connect miro  # connect Miro (browser OAuth)
npx -y @useclawlink/cli actions miro  # list available actions
npx -y @useclawlink/cli run miro <action> --input '<json>'  # execute (add --confirm for writes)
```

### Install by command

The setup prompt above does all of this in one paste. By hand, it is one install command plus a browser approval:

```bash
openclaw plugins install clawhub:clawlink-plugin
```

Then ask OpenClaw to set up ClawLink. It starts browser pairing and prints an approval link — open it, approve the device, return to the chat, and say `done`. Finally, connect Miro in the [ClawLink dashboard](https://claw-link.dev/dashboard) — a one-click OAuth approval, no API keys.

Verify the connection by asking OpenClaw:

> Use Miro to attach tag to item and walk me through the result in plain English.

### Using a different agent?

The OpenClaw plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

```bash
npx -y @useclawlink/cli login
```

`login` opens the same browser approval and stores a credential locally. Once Miro is connected in the dashboard, that agent calls the same 73 Miro tools over MCP. Full setup for MCP clients and shell agents: [connect apps to any AI agent](https://claw-link.dev/learn/connect-apps-to-any-ai-agent).

## Miro MCP for OpenClaw

Looking for a Miro MCP server for OpenClaw? ClawLink connects Miro to OpenClaw and exposes 73 Miro tools your agent can call over [MCP](https://claw-link.dev/learn/what-is-an-mcp-server), with [hosted auth](https://claw-link.dev/learn/oauth-for-ai-agents) and nothing to run or maintain yourself. Using Hermes instead? The [Hermes Miro integration](https://claw-link.dev/hermes/miro) works the same way.

## What the OpenClaw Miro integration can do

73 Miro tools are ready for OpenClaw once the account is connected. The 30 below are the ones people reach for most; your agent can call all 73.

### 30 of 73 Miro tools for OpenClaw

| Tool | What it does |
|---|---|
| **Attach tag to item** `miro_attach_tag_to_item` | Tool to attach an existing tag to a specific item on a Miro board. Use when you need to associate a tag with an item after confirming the board, item, and tag IDs. |
| **Create app card item** `miro_create_app_card_item` | Tool to add an app card item to a board. Use when you need to push a rich preview card with custom fields into a Miro board. |
| **Create board** `miro_create_board` | Tool to create a new board. Use when you need to set up a board with a specific name, description, and policies. Example: \'Create a new board named Project Plan\'. |
| **Create card item** `miro_create_card_item` | Tool to create a card item on a Miro board. Use when you need to add task cards with titles, descriptions, due dates, and assignees. |
| **Create connector** `miro_create_connector` | Tool to create a connector (edge/arrow) that links two existing board items. |
| **Create document item** `miro_create_document_item` | Tool to create a document item on a Miro board by providing a URL to the document. Use when you need to attach a document (PDF, DOC, etc.) to a board from a publicly accessible URL. |
| **Create document item using file from device** `miro_create_document_item_using_file_from_device` | Tool to create a document item on a Miro board using a URL to the document. Use when you need to add a document (PDF, DOC, etc.) to a board from a publicly accessible URL. |
| **Create embed item** `miro_create_embed_item` | Tool to create an embed item on a Miro board by providing a URL to embed content (YouTube videos, websites, etc.). Use when you need to add embedded content from external sources to a board. |
| **Create frame item** `miro_create_frame_item` | Tool to add a frame item to a Miro board. Use frames to group and organize diagram regions (e.g., swimlanes, sections, slides). |
| **Create group** `miro_create_group` | Tool to create a group on a Miro board by grouping multiple items together. Use when you need to organize related board items (shapes, sticky notes, cards, etc.) into a single logical group. |
| **Create image item using local file** `miro_create_image_item_using_local_file` | Tool to create an image item on a Miro board by uploading a local image file. Use when you need to add an image from the user's device to a board, rather than referencing an external URL. |
| **Create items in bulk** `miro_create_items_in_bulk` | Tool to create multiple items on a Miro board in a single request. Use when you need to add 1-20 items (text, sticky notes, shapes, cards, frames, etc.) efficiently. |
| **Get all groups** `miro_get_all_groups` | Retrieve all groups on a Miro board with cursor-based pagination |
| **Get app card item2** `miro_get_app_card_item2` | Retrieve a specific app card item by its ID from a Miro board |
| **Get board items** `miro_get_board_items` | List items on a Miro board (shapes, stickies, cards, etc.) with pagination |
| **Get board members** `miro_get_board_members` | Retrieve a list of members for a board |
| **Get boards2** `miro_get_boards2` | Retrieve accessible boards with optional filters |
| **Get card item** `miro_get_card_item` | Retrieve a specific card item from a Miro board |
| **Get connector** `miro_get_connector` | Retrieve a specific connector by its ID |
| **Get connectors** `miro_get_connectors` | Retrieve a list of connectors on a board |
| **Get document item** `miro_get_document_item` | Retrieve a specific document item from a Miro board by its ID |
| **Get embed item** `miro_get_embed_item` | Retrieve a specific embed item from a board by its ID |
| **Get frame item** `miro_get_frame_item` | Retrieve a specific frame item from a Miro board |
| **Get group by ID** `miro_get_group_by_id` | Retrieve a specific group by its ID |
| **Get image item** `miro_get_image_item` | Retrieve a specific image item from a board |
| **Get item tags** `miro_get_item_tags` | Retrieve tags attached to a specific item on a Miro board |
| **Get mindmap node experimental** `miro_get_mindmap_node_experimental` | Retrieve a specific mind map node from a board |
| **Get mindmap nodes experimental** `miro_get_mindmap_nodes_experimental` | Retrieve mind map nodes from a Miro board |
| **Get oembed** `miro_get_oembed` | Retrieve oEmbed data for a Miro board |
| **Get shape item** `miro_get_shape_item` | Retrieve a specific shape item from a Miro board by its ID |

## Example prompts

**Attach Tag To Item**

> Use Miro to attach tag to item and walk me through the result in plain English.

**Create App Card Item**

> Create it in Miro for me, then confirm the important fields before you finish.

**Create Board**

> Create it in Miro for me, then confirm the important fields before you finish.

**Create Card Item**

> Create it in Miro for me, then confirm the important fields before you finish.

## ClawLink vs. building it yourself

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want Miro working from chat.

| | Manual | ClawLink |
|---|---|---|
| **Connection flow** | Register a Miro app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift. | Users connect Miro through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code. |
| **Ongoing maintenance** | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Miro. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| **Agent usability** | You still need to expose the right Miro actions to the runtime in a format your agent can reliably use. | 73 tools for Miro are already exposed through ClawLink, so the agent can read and act from chat immediately. |

## ClawLink vs. Composio

Composio also exposes Miro to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for OpenClaw users instead. You install the plugin once, connect Miro in the browser, and the 73 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full [Composio alternatives](https://claw-link.dev/hub/composio-alternatives) comparison.

### OpenClaw installed the Miro skill but can't call the tools
The ClawHub skill teaches OpenClaw about Miro, but the calls run through the ClawLink plugin and your connected account. Make sure Miro is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.

### Connection succeeds but no tools appear
Reconnect Miro from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

### "Tool schema not loaded yet" error when calling Miro tools
Miro tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Miro call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

### Miro returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

### OAuth finished in the browser but the account is still missing
Try reconnecting Miro and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.

### Is there a OpenClaw Miro integration?
Yes. ClawLink is the fastest way to connect OpenClaw to Miro: link your Miro account once in the browser and OpenClaw can call the Miro API through 73 ready-made tools — no custom code or token handling.

### How do I add Miro to OpenClaw with ClawLink?
Paste the setup prompt from this page into OpenClaw. It installs the ClawLink Miro skill from ClawHub, then you click Connect in the dashboard to authorize Miro. OpenClaw calls the tools from the next message — no config files or API keys to manage.

### How long does it take to connect Miro to OpenClaw?
About two minutes. Sign in, click Connect next to Miro in the dashboard, authenticate, and OpenClaw can use it from the next chat message.

### Why use ClawLink instead of wiring Miro up myself?
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want Miro working from chat.

### OpenClaw installed the Miro skill but can't call the tools
The ClawHub skill teaches OpenClaw about Miro, but the calls run through the ClawLink plugin and your connected account. Make sure Miro is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.

## Related

- [OpenClaw DocuSign integration](https://claw-link.dev/openclaw/docusign) — Send, sign, and manage agreements and envelopes
- [Trello tools](https://claw-link.dev/openclaw/trello) — Manage boards, lists, and cards
- [Moco tools](https://claw-link.dev/openclaw/moco) — MOCO is a business management software offering project management, time tracking, and invoicing solutions.
