{
  "data": {
    "a": {
      "slug": "magic-patterns",
      "name": "Magic Patterns",
      "vendor": "North Park Labs, Inc. (Magic Patterns)",
      "vendorUrl": "https://www.magicpatterns.com",
      "kind": "mcp",
      "category": "design",
      "summary": "Magic Patterns is an AI design workspace where product teams generate interactive React prototypes from prompts and their own design system. Agents reach it through a hosted MCP server and a v3 REST API that mirrors it.",
      "url": "https://www.anchorterminal.com/tools/magic-patterns",
      "markdownUrl": "https://www.anchorterminal.com/tools/magic-patterns.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/magic-patterns.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/magic-patterns.json",
      "dns": "magic-patterns.grade.anchorterminal.com",
      "license": "Closed service under the Magic Patterns terms of service (last updated 1 April 2025)",
      "transports": [
        "streamable-http",
        "http"
      ],
      "remoteUrl": "https://mcp.magicpatterns.com/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "The hosted MCP server signs in with OAuth 2.1 (PKCE S256, dynamic client registration, client ID metadata documents and a device flow, at oauth.magicpatterns.com on WorkOS). Scopes are identity only (openid, email, profile, offline_access), so access follows the user's workspace role. An API key from Settings \u003e API Keys, shown once, works for MCP as `Authorization: Bearer` and for REST as `x-mp-api-key`. A read-only MCP endpoint at /mcp/readonly takes the same credentials.",
      "pricing": "freemium",
      "pricingNotes": "MCP access needs a paid plan, Starter $20 a seat a month ($17 yearly) with 1,000 credits on top of the free monthly credits, or Business $100 ($85 yearly) with 5,000. On-demand credits beyond that cost $0.02 each on paid plans. One generation typically uses about 70 credits per the docs. Free plan $0 with free monthly credits.",
      "priceSummary": "$20 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Subscription credits billed through Stripe. No x402, MPP or L402 in the docs, the v3 OpenAPI or llms.txt (checked 2026-11-06). Out of credits returns 402 with no payment requirements.",
        "endpoints": []
      },
      "toolCount": 24,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://www.magicpatterns.com/docs",
      "llmsTxt": "https://www.magicpatterns.com/docs/llms.txt",
      "openapi": "https://www.magicpatterns.com/docs/api/create-design.md",
      "capabilities": [
        "design.code",
        "design.files",
        "design.components",
        "design.canvas"
      ],
      "tags": [
        "hosted",
        "mcp",
        "remote-mcp",
        "oauth",
        "api-key",
        "read-only-mode",
        "llms-txt",
        "openapi",
        "freemium",
        "status-page",
        "yc"
      ],
      "lastRelease": "2026-11-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.4,
        "grade": "B",
        "agentReady": false,
        "rank": 517,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 4,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 70,
          "payments": 23,
          "reliability": 75,
          "schema": 84,
          "security": 55,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Agents can create, prompt, read and edit coded prototypes through 24 documented MCP tools or a matching REST API, with a read-only endpoint and 409 conflict checks on writes. MCP access needs a paid seat from $20 a month, OAuth scopes don't narrow access below the user's role, and the status page doesn't track the API or MCP server.",
        "bestFor": "Generating and iterating on coded React prototypes from a coding agent, and pulling a design into a codebase.",
        "strengths": [
          "A read-only MCP endpoint that does not register the 13 tools that create, change or publish",
          "Workflows, polling intervals and tool order documented for agents, with llms.txt and Markdown pages",
          "v3 REST API with an OpenAPI 3.0.3 description that mirrors the MCP tools, so one key works for both",
          "Writes carry a base artifact ID and fail with 409 on a concurrent change",
          "Dated product changelog with entries from 2026-08-03 to 2026-11-05"
        ],
        "weaknesses": [
          "MCP and API-key access need a paid seat, Starter at $20 a month",
          "OAuth scopes are identity only, so a token can do whatever the user's workspace role allows",
          "No 429 or backoff guidance and no idempotency keys; generations take 2 to 10 minutes and must be polled",
          "The status page tracks the web platform and Figma plugin, not the API or MCP server",
          "Free plan inputs and designs may be used for training and shown publicly, per the terms"
        ],
        "agentNotes": [
          "Use https://mcp.magicpatterns.com/mcp/readonly when the task only reads designs",
          "Call `get_design_status` before any change and poll it no more than once every 60 seconds",
          "Pass `baseArtifactId` from `get_design_system` on writes, and on 409 re-read before retrying",
          "Treat a 402 as out of credits and ask the user; read tools keep working",
          "Send `x-mp-agent-name` so the user sees which agent made a change"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.4
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 70,
          "payments": 23,
          "reliability": 75,
          "schema": 84,
          "security": 55,
          "transparency": 42
        },
        "provenanceScore": 78,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.magicpatterns.com/api/v3/health -H \"x-mp-api-key: mp_live_...\"",
        "claudeCode": "claude mcp add --transport http magic-patterns https://mcp.magicpatterns.com/mcp",
        "config": {
          "mcpServers": {
            "magic-patterns": {
              "url": "https://mcp.magicpatterns.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.code",
        "tool": "https://letme.dev/magic-patterns"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Starter seat",
          "unit": "seat-month",
          "usd": 20,
          "note": "$17 billed yearly, 1,000 credits on top of the free monthly credits"
        },
        {
          "item": "Business seat",
          "unit": "seat-month",
          "usd": 100,
          "note": "$85 billed yearly, 5,000 credits on top of the free monthly credits"
        },
        {
          "item": "On-demand credit",
          "unit": "credit",
          "usd": 0.02,
          "note": "Paid plans only, after monthly credits run out. A generation typically uses about 70 credits"
        }
      ],
      "provenance": {
        "legalEntity": "North Park Labs, Inc.",
        "domain": "magicpatterns.com",
        "domainRegistered": "2023-10-23",
        "endpointOnVendorDomain": true,
        "terms": "https://www.magicpatterns.com/docs/documentation/legal/terms",
        "privacy": "https://www.magicpatterns.com/docs/documentation/legal/privacy",
        "statusPage": "https://magicpatterns.statuspage.io/",
        "changelog": "https://www.magicpatterns.com/docs/documentation/feature-releases/changelog",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The terms and privacy policy, both last updated 1 April 2025, name North Park Labs, Inc. d.b.a. Magic Patterns, under Delaware law.",
          "The terms forbid accessing or searching the Services by any means other than the provided interfaces (for example, scraping) and bots that send requests faster than a person could. Public docs pages were read as data.",
          "www.magicpatterns.com/robots.txt disallows /private/, /settings/, /api/ and /_next/ and allows the docs. magicpatterns.statuspage.io/robots.txt disallows /api/ and /embed/, so status history was read from the page and its Atom feed.",
          "/.well-known/security.txt returns 404. The security docs page links a Trust Center at trust.magicpatterns.com for SOC 2 reports and subprocessors, which is drawn by script and wasn't read.",
          "RDAP gives magicpatterns.com a registration date of 23 October 2023. The company was founded in 2023 per its Y Combinator page."
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/magic-patterns.json",
      "live": {
        "slug": "magic-patterns",
        "probe": {
          "target": "https://mcp.magicpatterns.com/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-11-07T18:20:36.546371661Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 191,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 200,
          "p95ms24h": 512,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://magicpatterns.statuspage.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T18:21:21.341572331Z"
        },
        "securityTxt": {
          "url": "https://magicpatterns.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:36.740973899Z"
        },
        "llmsTxt": {
          "url": "https://www.magicpatterns.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:55.846864963Z"
        },
        "pages": [
          {
            "url": "https://www.magicpatterns.com/docs/documentation/feature-releases/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:31:04.926757349Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1d6fc782fb69"
          },
          {
            "url": "https://www.magicpatterns.com/docs/documentation/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:31:07.60138431Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "98e04acdbe99"
          },
          {
            "url": "https://www.magicpatterns.com/docs/documentation/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:31:09.211996324Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "264ce0076e25"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.magicpatterns.com/mcp",
          "checkedAt": "2026-11-07T01:46:04.045898155Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:46:04.045898155Z"
        },
        "updatedAt": "2026-11-07T18:21:21.341572331Z"
      }
    },
    "answer": "Magic Patterns scores 63.4 (B) on agent readiness against Miro API + MCP's 62.1 (B), and leads in 3 of 7 scored categories. Miro API + MCP leads on security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust.",
    "b": {
      "slug": "miro",
      "name": "Miro API + MCP",
      "vendor": "Miro",
      "vendorUrl": "https://miro.com",
      "kind": "http-api",
      "category": "design",
      "summary": "Miro's REST API v2 reads and writes boards and board items (sticky notes, shapes, connectors, frames, cards, text, images, documents), tags and members, so an agent can lay out diagrams as well as notes.",
      "url": "https://www.anchorterminal.com/tools/miro",
      "markdownUrl": "https://www.anchorterminal.com/tools/miro.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/miro.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/miro.json",
      "dns": "miro.grade.anchorterminal.com",
      "repo": "https://github.com/miroapp/miro-ai",
      "license": "proprietary",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.miro.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "@mirohq/miro-api"
        }
      ],
      "auth": "oauth",
      "authNotes": "REST uses OAuth 2.0 tokens from a Miro app you create in the developer settings, with scopes such as boards:read and boards:write. The MCP server uses OAuth 2.1 with dynamic client registration and sees only boards the user can already open. On Enterprise, MCP is off until an admin enables it.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with 3 editable boards. Starter $8 and Business $20 per member a month billed yearly (about 20 per cent more monthly). Enterprise custom, from 30 members. The REST API works on every plan. MCP tool calls a day are 100 on Free, 500 on Starter, 2,000 on Business and 10,000 on Enterprise (https://miro.com/pricing/).",
      "priceSummary": "$8 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No payment support in the REST or MCP docs.",
        "endpoints": []
      },
      "toolCount": 52,
      "popularity": {
        "githubStars": 156,
        "npmWeekly": 19028,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.miro.com/docs/rest-api-reference-guide",
      "llmsTxt": "https://developers.miro.com/llms.txt",
      "openapi": "https://raw.githubusercontent.com/miroapp/api-clients/main/packages/generator/spec.json",
      "registryName": "io.github.miroapp/mcp-server",
      "capabilities": [
        "design.files",
        "design.canvas",
        "design.comments",
        "diagram.create",
        "diagram.edit"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "closed-source",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "enterprise"
      ],
      "lastRelease": "2026-09-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.1,
        "grade": "B",
        "agentReady": false,
        "rank": 573,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 6,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 53,
          "maintenance": 67,
          "payments": 30,
          "reliability": 73,
          "schema": 85,
          "security": 67,
          "transparency": 77
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": -3,
        "negativeNotes": [
          "-3: the changelog announced on 2026-09-08 that legacy MCP board tools would go, with a migration deadline of 14 September, and removed them on 2026-09-17. Notice was given, but nine days is short for a breaking change, so the lowest deduction (https://developers.miro.com/changelog.rss)."
        ],
        "verdict": "REST creates shapes, connectors and frames, so flowcharts and architecture sketches can be drawn directly, and a hosted MCP server works on every plan. The MCP server now exposes 52 tools, including sharing and delete tools, with no read-only mode, and legacy board tools were removed nine days after notice.",
        "bestFor": "Agents that draw diagrams, maps and planning boards people will keep editing.",
        "strengths": [
          "REST creates shapes, connectors and frames, so flowcharts and architecture sketches can be drawn directly",
          "Hosted MCP server with OAuth 2.1 on every plan including Free",
          "Published REST credit limits and MCP daily caps per plan",
          "ISO/IEC 27001, SOC 2 Type II, a public bug bounty and four data-residency regions",
          "Dated changelog with an RSS feed and Markdown twins of every docs page"
        ],
        "weaknesses": [
          "Legacy MCP board tools were removed nine days after the deprecation notice",
          "52 MCP tools with no toolsets or read-only mode, including sharing and delete tools",
          "No prompt-injection guidance for board content written by collaborators",
          "OAuth scopes are coarse (`boards:read`, `boards:write`)",
          "The official Node client hasn't been released since February 2025"
        ],
        "agentNotes": [
          "Create shapes first, then connectors with `startItem` and `endItem` ids",
          "Put related items in a frame and set `parent` so they move together",
          "Watch `X-RateLimit-Remaining`. There's no `Retry-After`, so back off exponentially on 429",
          "Through MCP, call `canvas_read_as_svg` before `canvas_update_from_svg`; an update applies a diff and can delete items missing from your SVG",
          "Ask before calling `board_share`, `space_share`, role updates or `section_delete`, which change who can see work or remove it"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.1
          }
        ],
        "editorialScores": {
          "ergonomics": 53,
          "maintenance": 67,
          "payments": 30,
          "reliability": 73,
          "schema": 85,
          "security": 67,
          "transparency": 67
        },
        "provenanceScore": 86,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.miro.com/v2/boards -H \"Authorization: Bearer $MIRO_ACCESS_TOKEN\"",
        "claudeCode": "claude mcp add --transport http miro https://mcp.miro.com/",
        "config": {
          "mcpServers": {
            "miro": {
              "url": "https://mcp.miro.com/"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.files",
        "tool": "https://letme.dev/miro"
      },
      "alsoIn": [
        "diagramming"
      ],
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "seat-month",
          "usd": 8,
          "note": "billed yearly, API and MCP included"
        },
        {
          "item": "Business plan",
          "unit": "seat-month",
          "usd": 20,
          "note": "billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "RealtimeBoard Inc. dba Miro",
        "domain": "miro.com",
        "domainRegistered": "1995-09-08",
        "domainNote": "miro.com was registered in 1995, long before RealtimeBoard renamed itself Miro in 2019.",
        "endpointOnVendorDomain": true,
        "terms": "https://miro.com/legal/terms-of-service/",
        "privacy": "https://miro.com/legal/privacy-policy/",
        "statusPage": "https://status.miro.com",
        "changelog": "https://developers.miro.com/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/miro.json",
      "live": {
        "slug": "miro",
        "probe": {
          "target": "https://api.miro.com/v2",
          "method": "get",
          "lastAt": "2026-11-07T18:20:40.055202504Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 141,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 63,
          "p95ms24h": 347,
          "samples24h": 239,
          "samples30d": 7910,
          "days": [
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.miro.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T18:21:24.886581262Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.miroapp/mcp-server",
            "version": "1.0.2",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "@mirohq/miro-api",
            "version": "2.2.4",
            "seenAt": "2026-11-06T23:46:11.047951984Z"
          }
        ],
        "githubStars": 166,
        "npmWeekly": 17435,
        "securityTxt": {
          "url": "https://miro.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:02:05.951844605Z"
        },
        "llmsTxt": {
          "url": "https://developers.miro.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:07.026101675Z"
        },
        "domain": {
          "domain": "miro.com",
          "registered": "1995-09-08",
          "source": "https://rdap.verisign.com/com/v1/domain/miro.com",
          "checkedAt": "2026-11-01T14:21:03.066471739Z"
        },
        "pages": [
          {
            "url": "https://developers.miro.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:04:18.771113859Z",
            "changedAt": "2026-11-07T14:04:18.771113859Z",
            "fingerprint": "d1063f9c200a"
          },
          {
            "url": "https://miro.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:14:24.541183458Z",
            "changedAt": "2026-10-30T05:43:58.591324786Z",
            "fingerprint": "b8810b32c534"
          },
          {
            "url": "https://miro.com/legal/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:14:20.385928971Z",
            "changedAt": "2026-10-30T05:43:53.844532374Z",
            "fingerprint": "a22047354024"
          },
          {
            "url": "https://miro.com/legal/terms-of-service/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:14:22.573192235Z",
            "changedAt": "2026-10-30T05:43:56.324071125Z",
            "fingerprint": "67808b0a6436"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.miro.com/",
          "checkedAt": "2026-11-07T01:46:16.024263838Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:46:16.024263838Z"
        },
        "github": {
          "repo": "miroapp/miro-ai",
          "checkedAt": "2026-11-02T09:07:33.530826103Z",
          "stars": 164,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-09-17T14:36:57Z",
          "openIssues": 16,
          "openPRs": 3,
          "issuesOpened90d": 9,
          "issuesClosed90d": 1,
          "prsMerged90d": 2,
          "ci": {
            "branch": "main",
            "runs": 29,
            "success": 29,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-09-17T14:37:37Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 13,
            "medianDays": 1
          }
        },
        "updatedAt": "2026-11-07T18:21:24.886581262Z"
      }
    },
    "edges": [
      {
        "by": 17,
        "category": "transparency",
        "leads": "miro",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under terms of service last updated 1 April 2025 (15). The privacy policy of the same date keeps personal data as long as necessary with no periods. The terms let Magic Patterns train on Free plan inputs and outputs and show Free plan designs publicly, and rule out training on paid plans. The subprocessor list sits in the Trust Center, which wasn't readable (14 of 30). No deprecation policy. v2 is 'being deprecated and will be removed in a future release' with no date, and the terms allow any part of the service to be discontinued at any time (5 of 20). The security page names Render and MongoDB Atlas as hosting, and the full subprocessor list wasn't read (8 of 20). 15 + 14 + 5 + 8 = 42.",
          "b": "Closed service under published terms. The miro-ai plugins and skills are MIT (17 of 30). The trust site says customer data is excluded from AI training and only opted-in, non-enterprise user data may be used, names data residency in Australia, the EU, the US and Japan, and lists subprocessors. We didn't read retention periods (22 of 30). Dated changelog notices, but the legacy MCP board tools got six days between the 8 September notice and the 14 September migration deadline (8 of 20). Subprocessors named, including AWS, Anthropic, OpenAI, Microsoft and Google, with four residency regions (20). 17 + 22 + 8 + 20 = 67."
        },
        "scores": {
          "a": 60,
          "b": 77
        }
      },
      {
        "by": 14,
        "category": "ergonomics",
        "leads": "magic-patterns",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "24 documented tools (15 for 11 to 30), plus 5 back for the read-only endpoint that registers only 12 (20 of 25). Message history pages by 10 and version history by 20 with `skip`, and file reads take a list of names (14 of 20). Documented status codes, a 402 that leaves reads working and non-blocking `validationErrors` on design-system writes (15 of 20). No idempotency keys; 409 conflict checks on design-system writes, and annotations couldn't be read on the closed server (10 of 20). `create_design` needs no parameter and makes a blank scaffold, but there is no official SDK (8 of 15). 20 + 14 + 15 + 10 + 8 = 67.",
          "b": "The MCP tools page now lists 52 tools (24 read, 28 write), up from 18 on 1 October, which is the more-than-30 band. No toolsets, dynamic loading or read-only subset is documented, and the FAQ says restricting which tools may connect is still evolving (5 of 25, was 15). REST lists page with `limit` and `cursor` and filter by item type, and `board_search_boards` and `canvas_search` find boards and items over MCP (18 of 20). Errors carry a machine code and message (16 of 20). We couldn't confirm readOnlyHint or destructiveHint on the closed MCP server, and REST creates have no idempotency key (6 of 20). The official Node client, @mirohq/miro-api 2.2.4, was last released on 5 February 2025 (8 of 15). 5 + 18 + 16 + 6 + 8 = 53."
        },
        "scores": {
          "a": 67,
          "b": 53
        }
      },
      {
        "by": 12,
        "category": "security",
        "leads": "miro",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "OAuth 2.1 with PKCE S256, dynamic registration and a device flow, issued by oauth.magicpatterns.com with WorkOS keys. Scopes are openid, email, profile and offline_access only, so a token carries the user's whole workspace role. API keys are shown once, with no scopes, expiry or rotation documented (22 of 30). The read-only endpoint doesn't register the 13 tools that create, change or publish. There is no confirmation step on the write endpoint (14 of 20). Tools return design code and chat history that collaborators wrote, and no prompt-injection guidance was found (3 of 15). `x-mp-agent-name` attributes changes in the UI, and audit logs come with Enterprise only (8 of 15). The security page describes encryption, logging and the Render and MongoDB Atlas setup and points to SOC 2 reports in a Trust Center drawn by script, which wasn't read. No security.txt, disclosure policy or bug bounty found (8 of 20). 22 + 14 + 3 + 8 + 8 = 55.",
          "b": "REST uses OAuth 2.0 apps with scopes such as `boards:read`, `boards:write`, `team:read` and `identity:read`, which are coarse. The MCP server uses OAuth 2.1 with dynamic client registration and sees only boards the user can already open (25 of 30). A `boards:read` token gives read-only REST access, and Enterprise admins must switch MCP on, org-wide or for chosen teams. The MCP server has no read-only mode, and the 52 tools now include `section_delete`, a `canvas_update_from_svg` that creates, updates and deletes items, and tools that share boards and spaces and change roles, so the earlier point for having no delete tool is gone (10 of 20, was 13). Sticky notes, comments and board text written by collaborators reach the model through `canvas_read_as_svg` and `comment_list_comments`, and `import-claude-design-from-url` fetches a public URL; we found no prompt-injection guidance (3 of 15). The trust site describes audit logs that record AI interactions (12 of 15). ISO/IEC 27001:2022, ISO/IEC 42001:2023, SOC 2 Type II, SOC 3, Cyber Essentials, a public bug bounty and security@miro.com on the trust site. No security.txt (miro.com/.well-known/security.txt answers 404) (17 of 20). 25 + 10 + 3 + 12 + 17 = 67."
        },
        "scores": {
          "a": 55,
          "b": 67
        }
      },
      {
        "by": 7,
        "category": "payments",
        "leads": "miro",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402. A 402 means out of credits, with no payment requirements (0). Seat prices are public and the on-demand rate is $0.02 a credit, but a generation's credit cost isn't known before it runs (typical 70 per generation per the docs), so between plan-only and per-unit (15 of 20). The MCP overview and the plans table say MCP and API-key access need a paid plan, while the v3 API page says free-tier accounts can call v3 up to their credits. Taking the stricter reading for the MCP surface, the free tier gives an agent no MCP access (5 of 20). A person signs in through the browser; dynamic client registration and the device flow still end with a human approval (3 of 20). 0 + 15 + 5 + 3 = 23.",
          "b": "No machine payment protocol (0). Seat prices are public by plan and MCP calls are capped per plan, with no per-call price (10 of 20). Free plan with 3 editable boards, the REST API and 100 MCP calls a day, and a 14-day Business trial; no card for the Free plan per the 30 September check (20). A person creates the OAuth app or approves the MCP sign-in in a browser (0). 0 + 10 + 20 + 0 = 30."
        },
        "scores": {
          "a": 23,
          "b": 30
        }
      }
    ],
    "facts": [
      {
        "a": "MCP server",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "North Park Labs, Inc. (Magic Patterns)",
        "b": "Miro",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.magicpatterns.com/mcp",
        "b": "https://api.miro.com/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP, HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Closed service under the Magic Patterns terms of service (last updated 1 April 2025)",
        "b": "proprietary",
        "name": "Licence"
      },
      {
        "a": "24",
        "b": "52",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.miroapp/mcp-server",
        "name": "MCP registry"
      },
      {
        "a": "2026-11-05",
        "b": "2026-09-17",
        "name": "Last release"
      },
      {
        "a": "2025-04-01",
        "b": "2021-09-01",
        "name": "Terms last updated"
      },
      {
        "a": "2025-04-01",
        "b": "2025-08-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "156 stars, 19k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "4/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Magic Patterns scores 63.4 (B) on agent readiness against Miro API + MCP's 62.1 (B), and leads in 3 of 7 scored categories. Miro API + MCP leads on security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Magic Patterns or Miro API + MCP?"
      },
      {
        "answer": "Magic Patterns takes an API key or an OAuth sign-in. Miro API + MCP uses an OAuth sign-in.",
        "question": "Do Magic Patterns and Miro API + MCP need an API key?"
      },
      {
        "answer": "Yes. Magic Patterns has a hosted endpoint at https://mcp.magicpatterns.com/mcp and Miro API + MCP at https://api.miro.com/v2.",
        "question": "Can an agent call Magic Patterns and Miro API + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 67 against 53"
        ],
        "also": [
          "No incidents deducted, where Miro API + MCP loses 3 points for them"
        ],
        "goodFor": "Generating and iterating on coded React prototypes from a coding agent, and pulling a design into a codebase.",
        "slug": "magic-patterns",
        "watchFor": "MCP and API-key access need a paid seat, Starter at $20 a month"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 67 against 55",
          "Payments \u0026 pricing, 30 against 23",
          "Transparency \u0026 trust, 77 against 60"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Agents that draw diagrams, maps and planning boards people will keep editing.",
        "slug": "miro",
        "watchFor": "Legacy MCP board tools were removed nine days after the deprecation notice"
      }
    ],
    "history": {
      "magic-patterns": null,
      "miro": [
        {
          "causes": [
            "product",
            "time"
          ],
          "date": "2026-11-02",
          "delta": -3,
          "from": 65.1,
          "fromGrade": "B",
          "to": 62.1,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-28",
          "delta": 0.1,
          "from": 65,
          "fromGrade": "B",
          "to": 65.1,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.3,
          "from": 65.3,
          "fromGrade": "B",
          "to": 65,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "design.files",
      "name": "Design files"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/figma-mcp-vs-magic-patterns.json",
        "title": "Figma API + MCP vs Magic Patterns",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-magic-patterns"
      },
      {
        "json": "https://www.anchorterminal.com/compare/figma-mcp-vs-miro.json",
        "title": "Figma API + MCP vs Miro API + MCP",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-miro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-magic-patterns.json",
        "title": "Framelink MCP for Figma vs Magic Patterns",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-magic-patterns"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-miro.json",
        "title": "Framelink MCP for Figma vs Miro API + MCP",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-miro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-magic-patterns.json",
        "title": "Framer Server API vs Magic Patterns",
        "url": "https://www.anchorterminal.com/compare/framer-vs-magic-patterns"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-miro.json",
        "title": "Framer Server API vs Miro API + MCP",
        "url": "https://www.anchorterminal.com/compare/framer-vs-miro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kite-new-vs-magic-patterns.json",
        "title": "Kite vs Magic Patterns",
        "url": "https://www.anchorterminal.com/compare/kite-new-vs-magic-patterns"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kite-new-vs-miro.json",
        "title": "Kite vs Miro API + MCP",
        "url": "https://www.anchorterminal.com/compare/kite-new-vs-miro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/miro-vs-pen-dev.json",
        "title": "Miro API + MCP vs pen.dev",
        "url": "https://www.anchorterminal.com/compare/miro-vs-pen-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/miro-vs-penpot.json",
        "title": "Miro API + MCP vs Penpot API + MCP",
        "url": "https://www.anchorterminal.com/compare/miro-vs-penpot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/miro-vs-sketch.json",
        "title": "Miro API + MCP vs Sketch",
        "url": "https://www.anchorterminal.com/compare/miro-vs-sketch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/miro-vs-subframe.json",
        "title": "Miro API + MCP vs Subframe",
        "url": "https://www.anchorterminal.com/compare/miro-vs-subframe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/miro-vs-zeplin.json",
        "title": "Miro API + MCP vs Zeplin",
        "url": "https://www.anchorterminal.com/compare/miro-vs-zeplin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/impeccable-vs-magic-patterns.json",
        "title": "Impeccable vs Magic Patterns",
        "url": "https://www.anchorterminal.com/compare/impeccable-vs-magic-patterns"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-pen-dev.json",
        "title": "Magic Patterns vs pen.dev",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-pen-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-penpot.json",
        "title": "Magic Patterns vs Penpot API + MCP",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-penpot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-sketch.json",
        "title": "Magic Patterns vs Sketch",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-sketch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-subframe.json",
        "title": "Magic Patterns vs Subframe",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-subframe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-zeplin.json",
        "title": "Magic Patterns vs Zeplin",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-zeplin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-uxkin-agent.json",
        "title": "Magic Patterns vs UXKIN",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-uxkin-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-melius.json",
        "title": "Magic Patterns vs Melius",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-melius"
      },
      {
        "json": "https://www.anchorterminal.com/compare/melius-vs-miro.json",
        "title": "Melius vs Miro API + MCP",
        "url": "https://www.anchorterminal.com/compare/melius-vs-miro"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 2,
        "edge": "magic-patterns",
        "key": "reliability",
        "magic-patterns": 75,
        "miro": 73,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "miro",
        "key": "schema",
        "magic-patterns": 84,
        "miro": 85,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 14,
        "edge": "magic-patterns",
        "key": "ergonomics",
        "magic-patterns": 67,
        "miro": 53,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 12,
        "edge": "miro",
        "key": "security",
        "magic-patterns": 55,
        "miro": 67,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 7,
        "edge": "miro",
        "key": "payments",
        "magic-patterns": 23,
        "miro": 30,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "edge": "magic-patterns",
        "key": "maintenance",
        "magic-patterns": 70,
        "miro": 67,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 17,
        "edge": "miro",
        "key": "transparency",
        "magic-patterns": 60,
        "miro": 77,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Magic Patterns scores 63.4 (B) on agent readiness against Miro API + MCP's 62.1 (B), and leads in 3 of 7 scored categories. Miro API + MCP leads on security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust. Both do design files.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "magic-patterns": "Agents can create, prompt, read and edit coded prototypes through 24 documented MCP tools or a matching REST API, with a read-only endpoint and 409 conflict checks on writes. MCP access needs a paid seat from $20 a month, OAuth scopes don't narrow access below the user's role, and the status page doesn't track the API or MCP server.",
      "miro": "REST creates shapes, connectors and frames, so flowcharts and architecture sketches can be drawn directly, and a hosted MCP server works on every plan. The MCP server now exposes 52 tools, including sharing and delete tools, with no read-only mode, and legacy board tools were removed nine days after notice."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/magic-patterns-vs-miro",
    "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-miro.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/magic-patterns-vs-miro.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/magic-patterns-vs-miro.min.md"
  },
  "markdown": "Magic Patterns scores 63.4 (B) on agent readiness against Miro API + MCP's 62.1 (B), and leads in 3 of 7 scored categories. Miro API + MCP leads on security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust. Both do design files.\n\n- Magic Patterns: grade B, 63.4/100, rank #517 of 1486. Markdown https://www.anchorterminal.com/tools/magic-patterns.md · JSON https://www.anchorterminal.com/api/v1/tools/magic-patterns.json\n- Miro API + MCP: grade B, 62.1/100, rank #573 of 1486. Markdown https://www.anchorterminal.com/tools/miro.md · JSON https://www.anchorterminal.com/api/v1/tools/miro.json\n- Best design workspace and canvas APIs for AI agents: https://www.anchorterminal.com/best/design/index.md\n- All 120 design comparisons: https://www.anchorterminal.com/compare/design/index.md\n- Best diagramming APIs and diagram-as-code for AI agents: https://www.anchorterminal.com/best/diagramming/index.md\n- All 147 diagrams comparisons: https://www.anchorterminal.com/compare/diagramming/index.md\n\n## Which one, for what\n\n### Magic Patterns (B)\n\nGood for: Generating and iterating on coded React prototypes from a coding agent, and pulling a design into a codebase.\n\nAhead on:\n- Agent ergonomics, 67 against 53\n\nAlso in its favour:\n- No incidents deducted, where Miro API + MCP loses 3 points for them\n\nWatch for: MCP and API-key access need a paid seat, Starter at $20 a month\n\n### Miro API + MCP (B)\n\nGood for: Agents that draw diagrams, maps and planning boards people will keep editing.\n\nAhead on:\n- Security \u0026 auth, 67 against 55\n- Payments \u0026 pricing, 30 against 23\n- Transparency \u0026 trust, 77 against 60\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: Legacy MCP board tools were removed nine days after the deprecation notice\n\n\n## Why the edge\n\n### Transparency \u0026 trust: Miro API + MCP +17\n\n- Magic Patterns (60): Closed service under terms of service last updated 1 April 2025 (15). The privacy policy of the same date keeps personal data as long as necessary with no periods. The terms let Magic Patterns train on Free plan inputs and outputs and show Free plan designs publicly, and rule out training on paid plans. The subprocessor list sits in the Trust Center, which wasn't readable (14 of 30). No deprecation policy. v2 is 'being deprecated and will be removed in a future release' with no date, and the terms allow any part of the service to be discontinued at any time (5 of 20). The security page names Render and MongoDB Atlas as hosting, and the full subprocessor list wasn't read (8 of 20). 15 + 14 + 5 + 8 = 42.\n- Miro API + MCP (77): Closed service under published terms. The miro-ai plugins and skills are MIT (17 of 30). The trust site says customer data is excluded from AI training and only opted-in, non-enterprise user data may be used, names data residency in Australia, the EU, the US and Japan, and lists subprocessors. We didn't read retention periods (22 of 30). Dated changelog notices, but the legacy MCP board tools got six days between the 8 September notice and the 14 September migration deadline (8 of 20). Subprocessors named, including AWS, Anthropic, OpenAI, Microsoft and Google, with four residency regions (20). 17 + 22 + 8 + 20 = 67.\n\n### Agent ergonomics: Magic Patterns +14\n\n- Magic Patterns (67): 24 documented tools (15 for 11 to 30), plus 5 back for the read-only endpoint that registers only 12 (20 of 25). Message history pages by 10 and version history by 20 with `skip`, and file reads take a list of names (14 of 20). Documented status codes, a 402 that leaves reads working and non-blocking `validationErrors` on design-system writes (15 of 20). No idempotency keys; 409 conflict checks on design-system writes, and annotations couldn't be read on the closed server (10 of 20). `create_design` needs no parameter and makes a blank scaffold, but there is no official SDK (8 of 15). 20 + 14 + 15 + 10 + 8 = 67.\n- Miro API + MCP (53): The MCP tools page now lists 52 tools (24 read, 28 write), up from 18 on 1 October, which is the more-than-30 band. No toolsets, dynamic loading or read-only subset is documented, and the FAQ says restricting which tools may connect is still evolving (5 of 25, was 15). REST lists page with `limit` and `cursor` and filter by item type, and `board_search_boards` and `canvas_search` find boards and items over MCP (18 of 20). Errors carry a machine code and message (16 of 20). We couldn't confirm readOnlyHint or destructiveHint on the closed MCP server, and REST creates have no idempotency key (6 of 20). The official Node client, @mirohq/miro-api 2.2.4, was last released on 5 February 2025 (8 of 15). 5 + 18 + 16 + 6 + 8 = 53.\n\n### Security \u0026 auth: Miro API + MCP +12\n\n- Magic Patterns (55): OAuth 2.1 with PKCE S256, dynamic registration and a device flow, issued by oauth.magicpatterns.com with WorkOS keys. Scopes are openid, email, profile and offline_access only, so a token carries the user's whole workspace role. API keys are shown once, with no scopes, expiry or rotation documented (22 of 30). The read-only endpoint doesn't register the 13 tools that create, change or publish. There is no confirmation step on the write endpoint (14 of 20). Tools return design code and chat history that collaborators wrote, and no prompt-injection guidance was found (3 of 15). `x-mp-agent-name` attributes changes in the UI, and audit logs come with Enterprise only (8 of 15). The security page describes encryption, logging and the Render and MongoDB Atlas setup and points to SOC 2 reports in a Trust Center drawn by script, which wasn't read. No security.txt, disclosure policy or bug bounty found (8 of 20). 22 + 14 + 3 + 8 + 8 = 55.\n- Miro API + MCP (67): REST uses OAuth 2.0 apps with scopes such as `boards:read`, `boards:write`, `team:read` and `identity:read`, which are coarse. The MCP server uses OAuth 2.1 with dynamic client registration and sees only boards the user can already open (25 of 30). A `boards:read` token gives read-only REST access, and Enterprise admins must switch MCP on, org-wide or for chosen teams. The MCP server has no read-only mode, and the 52 tools now include `section_delete`, a `canvas_update_from_svg` that creates, updates and deletes items, and tools that share boards and spaces and change roles, so the earlier point for having no delete tool is gone (10 of 20, was 13). Sticky notes, comments and board text written by collaborators reach the model through `canvas_read_as_svg` and `comment_list_comments`, and `import-claude-design-from-url` fetches a public URL; we found no prompt-injection guidance (3 of 15). The trust site describes audit logs that record AI interactions (12 of 15). ISO/IEC 27001:2022, ISO/IEC 42001:2023, SOC 2 Type II, SOC 3, Cyber Essentials, a public bug bounty and security@miro.com on the trust site. No security.txt (miro.com/.well-known/security.txt answers 404) (17 of 20). 25 + 10 + 3 + 12 + 17 = 67.\n\n### Payments \u0026 pricing: Miro API + MCP +7\n\n- Magic Patterns (23): No x402, MPP or L402. A 402 means out of credits, with no payment requirements (0). Seat prices are public and the on-demand rate is $0.02 a credit, but a generation's credit cost isn't known before it runs (typical 70 per generation per the docs), so between plan-only and per-unit (15 of 20). The MCP overview and the plans table say MCP and API-key access need a paid plan, while the v3 API page says free-tier accounts can call v3 up to their credits. Taking the stricter reading for the MCP surface, the free tier gives an agent no MCP access (5 of 20). A person signs in through the browser; dynamic client registration and the device flow still end with a human approval (3 of 20). 0 + 15 + 5 + 3 = 23.\n- Miro API + MCP (30): No machine payment protocol (0). Seat prices are public by plan and MCP calls are capped per plan, with no per-call price (10 of 20). Free plan with 3 editable boards, the REST API and 100 MCP calls a day, and a 14-day Business trial; no card for the Free plan per the 30 September check (20). A person creates the OAuth app or approves the MCP sign-in in a browser (0). 0 + 10 + 20 + 0 = 30.\n\n## Score by category\n\n| Category | Weight | Magic Patterns | Miro API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 73 | Magic Patterns +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 85 | Miro API + MCP +1 |\n| Agent ergonomics | 13% (16.2 this run) | 67 | 53 | Magic Patterns +14 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 67 | Miro API + MCP +12 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 23 | 30 | Miro API + MCP +7 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 70 | 67 | Magic Patterns +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 60 | 77 | Miro API + MCP +17 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **63.4 · B** | **62.1 · B** | |\n\n## Facts side by side\n\n| Fact | Magic Patterns | Miro API + MCP |\n| --- | --- | --- |\n| Kind | MCP server | HTTP API |\n| Vendor | North Park Labs, Inc. (Magic Patterns) | Miro |\n| Hosted endpoint | `https://mcp.magicpatterns.com/mcp` | `https://api.miro.com/v2` |\n| Transports | Streamable HTTP, HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Closed service under the Magic Patterns terms of service (last updated 1 April 2025) | proprietary |\n| Tools exposed | 24 | 52 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.miroapp/mcp-server` |\n| Last release | 2026-11-05 | 2026-09-17 |\n| Terms last updated | 2025-04-01 | 2021-09-01 |\n| Privacy policy last updated | 2025-04-01 | 2025-08-01 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | none | 156 stars, 19k npm/wk |\n| Agent reviews | none | 4/5 (2) |\n\n## How the scores have moved\n\n### Magic Patterns\n\nNo score change since it was listed.\n\n### Miro API + MCP\n\n- -3.0 on 2 November 2026: product, time\n- +0.1 on 28 October 2026: checklist\n- -0.3 on 8 October 2026: checklist\n\n## Verdicts\n\n**Magic Patterns.** Agents can create, prompt, read and edit coded prototypes through 24 documented MCP tools or a matching REST API, with a read-only endpoint and 409 conflict checks on writes. MCP access needs a paid seat from $20 a month, OAuth scopes don't narrow access below the user's role, and the status page doesn't track the API or MCP server.\n\n**Miro API + MCP.** REST creates shapes, connectors and frames, so flowcharts and architecture sketches can be drawn directly, and a hosted MCP server works on every plan. The MCP server now exposes 52 tools, including sharing and delete tools, with no read-only mode, and legacy board tools were removed nine days after notice.\n\n## Before you call either\n\n### Magic Patterns\n\n1. Use https://mcp.magicpatterns.com/mcp/readonly when the task only reads designs\n2. Call `get_design_status` before any change and poll it no more than once every 60 seconds\n3. Pass `baseArtifactId` from `get_design_system` on writes, and on 409 re-read before retrying\n4. Treat a 402 as out of credits and ask the user; read tools keep working\n5. Send `x-mp-agent-name` so the user sees which agent made a change\n\n### Miro API + MCP\n\n1. Create shapes first, then connectors with `startItem` and `endItem` ids\n2. Put related items in a frame and set `parent` so they move together\n3. Watch `X-RateLimit-Remaining`. There's no `Retry-After`, so back off exponentially on 429\n4. Through MCP, call `canvas_read_as_svg` before `canvas_update_from_svg`; an update applies a diff and can delete items missing from your SVG\n5. Ask before calling `board_share`, `space_share`, role updates or `section_delete`, which change who can see work or remove it\n\n## Questions\n\n### Which is better for AI agents, Magic Patterns or Miro API + MCP?\n\nMagic Patterns scores 63.4 (B) on agent readiness against Miro API + MCP's 62.1 (B), and leads in 3 of 7 scored categories. Miro API + MCP leads on security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust.\n\n### Do Magic Patterns and Miro API + MCP need an API key?\n\nMagic Patterns takes an API key or an OAuth sign-in. Miro API + MCP uses an OAuth sign-in.\n\n### Can an agent call Magic Patterns and Miro API + MCP without installing anything?\n\nYes. Magic Patterns has a hosted endpoint at https://mcp.magicpatterns.com/mcp and Miro API + MCP at https://api.miro.com/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/magic-patterns-vs-miro.json, and with the fewest tokens: https://www.anchorterminal.com/compare/magic-patterns-vs-miro.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"magic-patterns\", \"b\": \"miro\"}`. From a terminal: `anchor compare magic-patterns miro`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/magic-patterns.json and https://www.anchorterminal.com/api/v1/tools/miro.json\n\n## Other comparisons with Magic Patterns or Miro API + MCP\n\n- [Figma API + MCP vs Magic Patterns](https://www.anchorterminal.com/compare/figma-mcp-vs-magic-patterns.md)\n- [Figma API + MCP vs Miro API + MCP](https://www.anchorterminal.com/compare/figma-mcp-vs-miro.md)\n- [Framelink MCP for Figma vs Magic Patterns](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-magic-patterns.md)\n- [Framelink MCP for Figma vs Miro API + MCP](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-miro.md)\n- [Framer Server API vs Magic Patterns](https://www.anchorterminal.com/compare/framer-vs-magic-patterns.md)\n- [Framer Server API vs Miro API + MCP](https://www.anchorterminal.com/compare/framer-vs-miro.md)\n- [Kite vs Magic Patterns](https://www.anchorterminal.com/compare/kite-new-vs-magic-patterns.md)\n- [Kite vs Miro API + MCP](https://www.anchorterminal.com/compare/kite-new-vs-miro.md)\n- [Miro API + MCP vs pen.dev](https://www.anchorterminal.com/compare/miro-vs-pen-dev.md)\n- [Miro API + MCP vs Penpot API + MCP](https://www.anchorterminal.com/compare/miro-vs-penpot.md)\n- [Miro API + MCP vs Sketch](https://www.anchorterminal.com/compare/miro-vs-sketch.md)\n- [Miro API + MCP vs Subframe](https://www.anchorterminal.com/compare/miro-vs-subframe.md)\n- [Miro API + MCP vs Zeplin](https://www.anchorterminal.com/compare/miro-vs-zeplin.md)\n- [Impeccable vs Magic Patterns](https://www.anchorterminal.com/compare/impeccable-vs-magic-patterns.md)\n- [Magic Patterns vs pen.dev](https://www.anchorterminal.com/compare/magic-patterns-vs-pen-dev.md)\n- [Magic Patterns vs Penpot API + MCP](https://www.anchorterminal.com/compare/magic-patterns-vs-penpot.md)\n- [Magic Patterns vs Sketch](https://www.anchorterminal.com/compare/magic-patterns-vs-sketch.md)\n- [Magic Patterns vs Subframe](https://www.anchorterminal.com/compare/magic-patterns-vs-subframe.md)\n- [Magic Patterns vs Zeplin](https://www.anchorterminal.com/compare/magic-patterns-vs-zeplin.md)\n- [Magic Patterns vs UXKIN](https://www.anchorterminal.com/compare/magic-patterns-vs-uxkin-agent.md)\n- [Magic Patterns vs Melius](https://www.anchorterminal.com/compare/magic-patterns-vs-melius.md)\n- [Melius vs Miro API + MCP](https://www.anchorterminal.com/compare/melius-vs-miro.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Magic Patterns vs Miro API + MCP",
        "url": ""
      }
    ],
    "description": "Magic Patterns scores 63.4 (B) to Miro's 62.1 (B) for design files. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Magic Patterns B 63.4",
      "Miro API + MCP B 62.1",
      "scores"
    ],
    "h1": "Magic Patterns vs Miro API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/magic-patterns-vs-miro",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Magic Patterns vs Miro for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-miro"
  },
  "tokens": {
    "markdown": 4050,
    "slim": 2230
  },
  "version": 1
}
