Miro Web SDK Reference

AdvisoryAudited by Static analysis on Apr 30, 2026.

Overview

No suspicious patterns detected.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Following the quick start may download and run external Miro SDK tooling from npm.

Why it was flagged

The reference instructs users to install external npm packages as part of SDK setup. This is central to the stated purpose, but package-manager setup still depends on trusted sources.

Skill content
npm install @mirohq/websdk-cli @mirohq/miro-webplugin
Recommendation

Use official package names, prefer pinned versions or lockfiles, and review generated project files before using them on important boards.

What this means

A plugin built from these examples may read or change Miro board content and access profile information after the user grants consent.

Why it was flagged

The docs describe Miro app scopes that can read and modify board content and access user identity. These permissions are expected for Miro plugins, but users should review them carefully.

Skill content
board:read | Read board data and items ... board:write | Create, edit, delete items ... identity:read | Get current user info
Recommendation

Request the minimum required scopes, test in a Developer team first, and avoid identity or write permissions unless the plugin truly needs them.

What this means

Using this pattern on a real board could delete many or all items.

Why it was flagged

The reference includes a bulk-delete API example. It is presented as documentation rather than an automatic workflow, but copied blindly it could erase board content.

Skill content
const items = await miro.board.getAllItems(); await Promise.all(items.map(item => item.delete()));
Recommendation

Require explicit confirmation for destructive operations, limit actions to selected or test items, and provide an undo or recovery path where possible.

What this means

Plugin data may remain attached to a board or user profile and influence later plugin behavior.

Why it was flagged

The docs show persistent board-level and user-level metadata storage. This is normal for plugin settings, but persistent data can carry stale, sensitive, or untrusted state across sessions.

Skill content
await miro.board.info.setMeta('key', { value: 'data' }); ... await miro.currentUser.setMeta('key', { value: 'data' });
Recommendation

Do not store secrets or untrusted instructions in metadata; namespace stored keys, validate data when reading it, and define cleanup or retention behavior.