{
  "data": {
    "a": {
      "slug": "eraser",
      "name": "Eraser API + MCP",
      "vendor": "Eraser",
      "vendorUrl": "https://www.eraser.io",
      "kind": "http-api",
      "category": "diagramming",
      "summary": "Docs and diagrams workspace for engineers.",
      "url": "https://www.anchorterminal.com/tools/eraser",
      "markdownUrl": "https://www.anchorterminal.com/tools/eraser.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/eraser.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/eraser.json",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://app.eraser.io/api",
      "packages": [
        {
          "registry": "npm",
          "name": "@eraserlabs/eraser-mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST API takes a team API token as a Bearer header, and tokens are only issued to paid teams. The hosted MCP uses OAuth by default (billed to the signed-in user's AI credits) or the same token as a Bearer header (billed to team credits). The local npm server reads ERASER_API_KEY.",
      "pricing": "freemium",
      "pricingNotes": "Free plan $0 with 3 AI diagrams. Starter $15 a member a month billed yearly ($20 monthly) with 40 AI credits, Business $45 billed yearly ($60 monthly) with 250, Enterprise custom. The API needs a paid plan with usage-based pricing switched on. /render/prompt costs $80 per 100 calls, /render/elements $20 per 100 calls, extra AI credits $60 per 100. The MCP server is free within plan limits (https://www.eraser.io/pricing).",
      "priceSummary": "$20 / seat-mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 42,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 76,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.eraser.io/reference/getting-started",
      "llmsTxt": "https://docs.eraser.io/llms.txt",
      "registryName": "io.eraser/eraser",
      "capabilities": [
        "diagram.create",
        "diagram.as-code",
        "diagram.edit",
        "diagram.export",
        "diagram.architecture"
      ],
      "tags": [
        "hosted",
        "freemium",
        "mcp",
        "llms-txt",
        "diagram-as-code",
        "closed-source",
        "enterprise",
        "typescript"
      ],
      "lastRelease": "2026-05-22",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 38.7,
        "grade": "E",
        "agentReady": false,
        "rank": 427,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 7,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 34,
          "maintenance": 33,
          "payments": 35,
          "reliability": 15,
          "schema": 52,
          "security": 57,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Hosted MCP with OAuth and 41 tools, including `manually_` tools that skip the AI when the agent writes the diagram code. No status page, rate limits, SLA or changelog.",
        "strengths": [
          "Hosted MCP with OAuth and 41 tools, including `manually_` tools that skip the AI when the agent writes the diagram code",
          "Diagram-as-code for architecture, flowchart, ERD, sequence and BPMN diagrams",
          "Per-call API prices published, $0.80 per AI render and $0.20 per code render",
          "SOC 2 Type 2 report, and an audit log API with ECS and Splunk formats on Enterprise"
        ],
        "weaknesses": [
          "No status page, rate limits, SLA or changelog",
          "No OpenAPI file, and the hosted tool definitions aren't public",
          "REST API needs a paid team plus usage-based billing, with one unscoped token per team",
          "41 tools load at once with no subset",
          "Newest dated change found is 22 May 2026"
        ],
        "agentNotes": [
          "Use `manually_create_diagram` with your own Eraser code when you know the structure. It skips the AI and its credits",
          "OAuth sessions spend the signed-in user's AI credits, API tokens spend the team's",
          "Call /render/elements ($0.20) when you already have diagram code; /render/prompt costs $0.80",
          "Set a spend limit before running in CI. At 100 per cent the API stops until the next calendar month"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 38.7
          }
        ],
        "editorialScores": {
          "ergonomics": 34,
          "maintenance": 33,
          "payments": 35,
          "reliability": 15,
          "schema": 52,
          "security": 57,
          "transparency": 31
        },
        "provenanceScore": 70
      },
      "connect": {
        "http": "curl -X POST https://app.eraser.io/api/render/prompt -H \"Authorization: Bearer $ERASER_API_KEY\" \\\n  -H \"Content-Type: application/json\" -d '{\"text\":\"Draw a data model for a Twitter clone\"}'",
        "claudeCode": "claude mcp add --transport http eraser https://app.eraser.io/api/mcp",
        "config": {
          "mcpServers": {
            "eraser": {
              "args": [
                "-y",
                "@eraserlabs/eraser-mcp"
              ],
              "command": "npx",
              "env": {
                "ERASER_API_KEY": "${ERASER_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/diagram.create",
        "tool": "https://letme.dev/eraser"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "seat-month",
          "usd": 20,
          "note": "billed monthly, $15 billed yearly. First plan with API access"
        },
        {
          "item": "Business plan",
          "unit": "seat-month",
          "usd": 60,
          "note": "billed monthly, $45 billed yearly"
        },
        {
          "item": "API /render/prompt",
          "unit": "call",
          "usd": 0.8,
          "note": "$80 per 100 calls, AI generation"
        },
        {
          "item": "API /render/elements",
          "unit": "call",
          "usd": 0.2,
          "note": "$20 per 100 calls, renders your own diagram code"
        },
        {
          "item": "Extra AI credits",
          "unit": "credit",
          "usd": 0.6,
          "note": "$60 per 100 credits beyond the plan"
        }
      ],
      "provenance": {
        "legalEntity": "Eraser Labs, Inc.",
        "domain": "eraser.io",
        "domainRegistered": "2014-10-03",
        "endpointOnVendorDomain": true,
        "terms": "https://www.eraser.io/terms",
        "privacy": "https://www.eraser.io/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "Eraser Labs, Inc., 548 Market St, PMB 47670, San Francisco, CA 94104 (privacy policy)",
          "SOC 2 Type 2 report available through the trust portal at eraser.trustshare.com",
          "status.eraser.io doesn't resolve and eraser.io/changelog returns 404",
          "security.txt not rechecked on 2026-10-01; none per the 30 September check"
        ],
        "score": 70
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/eraser.json",
      "live": {
        "slug": "eraser",
        "probe": {
          "target": "https://app.eraser.io/api",
          "method": "get",
          "lastAt": "2026-10-05T01:43:37.106690732Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 2705,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 143,
          "p95ms24h": 426,
          "samples24h": 272,
          "samples30d": 1122,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 20,
              "ok": 20
            }
          ]
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.eraser/eraser",
            "version": "0.2.0",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "@eraserlabs/eraser-mcp",
            "version": "0.8.0",
            "seenAt": "2026-10-04T16:26:40.51897259Z"
          }
        ],
        "npmWeekly": 91,
        "securityTxt": {
          "url": "https://eraser.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:54.712764659Z"
        },
        "llmsTxt": {
          "url": "https://docs.eraser.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:45.173695534Z"
        },
        "domain": {
          "domain": "eraser.io",
          "checkedAt": "2026-10-04T13:07:10.744092154Z"
        },
        "pages": [
          {
            "url": "https://www.eraser.io/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:50:12.049190538Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "308b8025c589"
          },
          {
            "url": "https://www.eraser.io/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:50:14.104270218Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0a831aeafaf4"
          },
          {
            "url": "https://www.eraser.io/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:50:16.099759122Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "45be14fec815"
          }
        ],
        "updatedAt": "2026-10-05T01:43:37.106690732Z"
      }
    },
    "b": {
      "slug": "tldraw",
      "name": "tldraw SDK + MCP",
      "vendor": "tldraw",
      "vendorUrl": "https://tldraw.dev",
      "kind": "sdk",
      "category": "diagramming",
      "summary": "A React infinite-canvas SDK that an agent can drive through the editor API, creating, reading and changing shapes, turning Mermaid into shapes and exporting images.",
      "url": "https://www.anchorterminal.com/tools/tldraw",
      "markdownUrl": "https://www.anchorterminal.com/tools/tldraw.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/tldraw.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/tldraw.json",
      "repo": "https://github.com/tldraw/tldraw",
      "license": "tldraw licence (source-available, production needs a licence key)",
      "transports": [
        "streamable-http",
        "sse"
      ],
      "remoteUrl": "https://tldraw-mcp-app.tldraw.workers.dev/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "tldraw"
        }
      ],
      "auth": "none",
      "authNotes": "The SDK runs in your app and needs no API key. It checks a public licence key on the client, offline, and won't run in production without one. The hosted MCP App needs no auth.",
      "pricing": "paid",
      "pricingNotes": "Free to use in development. Production needs a licence key. A 100-day trial is free with no card, a hobby licence for non-commercial projects is free at tldraw's discretion and shows a watermark, and commercial licences are annual with value-based pricing agreed with sales. Startup discounts are available. The MCP App is free (https://tldraw.dev/pricing).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 6,
      "popularity": {
        "githubStars": 50672,
        "npmWeekly": 490141,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://tldraw.dev/docs/ai",
      "llmsTxt": "https://tldraw.dev/llms.txt",
      "registryName": "io.github.tldraw/tldraw",
      "capabilities": [
        "diagram.create",
        "diagram.as-code",
        "diagram.edit",
        "diagram.export"
      ],
      "tags": [
        "typescript",
        "hosted",
        "mcp",
        "llms-txt",
        "free-tier"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61,
        "grade": "C",
        "agentReady": false,
        "rank": 236,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 71,
          "maintenance": 89,
          "payments": 35,
          "reliability": 75,
          "schema": 79,
          "security": 40,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -2,
        "negativeNotes": [
          "Checked 2026-10-01. The licence page says hobby licences send nothing and trial licences send only a hash of the key, with no user data. The SDK's LicenseManager sends the licence ID, SKU, environment and the full page URL (window.location.href) for trial, hobby-with-watermark and unlicensed production deployments, and the licence key page lists most of this. A full page URL can carry user data in its path or query (https://github.com/tldraw/tldraw/blob/main/packages/editor/src/lib/license/LicenseManager.ts, https://tldraw.dev/community/license)."
        ],
        "verdict": "Full editor API to create, read, bind and export shapes from code, with agent, chat and workflow starter kits. Source-available, and commercial prices aren't published.",
        "strengths": [
          "Full editor API to create, read, bind and export shapes from code, with agent, chat and workflow starter kits",
          "Hosted MCP App with two model-facing tools, all six tools annotated",
          "At least six releases between 15 July and 30 September 2026, with dated release notes",
          "Development use and a 100-day production trial need no payment"
        ],
        "weaknesses": [
          "Source-available, and commercial prices aren't published",
          "`exec` runs model-written JavaScript on the canvas with no approval step",
          "Licence pings send the licence ID and full page URL for trial and hobby keys, more than the licence page says",
          "SECURITY.md lists only 3.x as supported while the current release is 5.5",
          "No server-side REST API, and the MCP App needs a host that renders MCP Apps"
        ],
        "agentNotes": [
          "Through the MCP App, call `search` on the Editor API spec first, then `exec` with JavaScript that calls `editor` methods",
          "Omit `canvasId` to start a blank canvas, and pass the returned `canvasId` to keep editing the same one",
          "Paste Mermaid into the canvas to get editable shapes instead of placing each shape by hand",
          "Return `editor.getCurrentPageShapes()` from `exec` to check what was drawn",
          "Read the release notes before a minor upgrade. Minor versions can break"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61
          }
        ],
        "editorialScores": {
          "ergonomics": 71,
          "maintenance": 89,
          "payments": 35,
          "reliability": 75,
          "schema": 79,
          "security": 40,
          "transparency": 45
        },
        "provenanceScore": 57
      },
      "connect": {
        "install": "npm install tldraw",
        "claudeCode": "claude mcp add --transport http tldraw https://tldraw-mcp-app.tldraw.workers.dev/mcp",
        "config": {
          "mcpServers": {
            "tldraw": {
              "url": "https://tldraw-mcp-app.tldraw.workers.dev/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/diagram.create",
        "tool": "https://letme.dev/tldraw"
      },
      "area": "design-diagrams",
      "provenance": {
        "legalEntity": "tldraw, Inc.",
        "domain": "tldraw.dev",
        "domainRegistered": "2022-04-11",
        "endpointOnVendorDomain": false,
        "terms": "https://www.tldraw.com/tos.html",
        "privacy": "https://www.tldraw.com/privacy.html",
        "statusPage": "",
        "changelog": "https://tldraw.dev/releases",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The hosted MCP App runs on a workers.dev subdomain, not on a tldraw domain"
        ],
        "score": 57
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/tldraw.json",
      "live": {
        "slug": "tldraw",
        "probe": {
          "target": "https://tldraw-mcp-app.tldraw.workers.dev/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-10-05T01:43:46.698105322Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 591,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 720,
          "p95ms24h": 1037,
          "samples24h": 272,
          "samples30d": 1122,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 20,
              "ok": 20
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "tldraw/tldraw",
            "version": "v5.5.2",
            "released": "2026-10-02",
            "seenAt": "2026-10-04T16:42:01.6318074Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.tldraw/tldraw",
            "version": "0.1.0",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "tldraw",
            "version": "5.5.2",
            "seenAt": "2026-10-04T16:42:01.416168228Z"
          }
        ],
        "githubStars": 50744,
        "npmWeekly": 504776,
        "securityTxt": {
          "url": "https://tldraw.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:37.299634459Z"
        },
        "llmsTxt": {
          "url": "https://tldraw.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:18.01702441Z"
        },
        "domain": {
          "domain": "tldraw.dev",
          "registered": "2022-04-11",
          "source": "https://pubapi.registry.google/rdap/domain/tldraw.dev",
          "checkedAt": "2026-10-04T13:10:18.060433565Z"
        },
        "pages": [
          {
            "url": "https://tldraw.dev/releases",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:48:32.193004388Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6de3df0f9614"
          },
          {
            "url": "https://tldraw.dev/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:29.52736445Z",
            "changedAt": "2026-10-04T15:48:29.52736445Z",
            "fingerprint": "fd2314f2ec44"
          },
          {
            "url": "https://www.tldraw.com/privacy.html",
            "kind": "privacy",
            "status": 0,
            "checkedAt": "2026-10-04T15:52:27.828332218Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          },
          {
            "url": "https://www.tldraw.com/tos.html",
            "kind": "terms",
            "status": 0,
            "checkedAt": "2026-10-04T15:52:28.018059669Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          }
        ],
        "updatedAt": "2026-10-05T01:43:46.698105322Z"
      }
    },
    "summary": "tldraw SDK + MCP has a score of 61 (C) against Eraser API + MCP's 38.7 (E). Both do diagram create. The largest gap is reliability, 60 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/eraser-vs-tldraw",
    "json": "https://www.anchorterminal.com/compare/eraser-vs-tldraw.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/eraser-vs-tldraw.md",
    "slim": "https://www.anchorterminal.com/compare/eraser-vs-tldraw.min.md"
  },
  "markdown": "tldraw SDK + MCP has a score of 61 (C) against Eraser API + MCP's 38.7 (E). Both do diagram create. The largest gap is reliability, 60 points.\n\n- Eraser API + MCP: grade E, 38.7/100, rank #427 of 452. Markdown https://www.anchorterminal.com/tools/eraser.md · JSON https://www.anchorterminal.com/api/v1/tools/eraser.json\n- tldraw SDK + MCP: grade C, 61/100, rank #236 of 452. Markdown https://www.anchorterminal.com/tools/tldraw.md · JSON https://www.anchorterminal.com/api/v1/tools/tldraw.json\n\n## Which one, for what\n\nPick Eraser API + MCP for security \u0026 auth (+17).\n\nPick tldraw SDK + MCP for reliability (+60), schema \u0026 documentation (+27), agent ergonomics (+37), maintenance \u0026 community (+56).\n\n## Score by category\n\n| Category | Weight | Eraser API + MCP | tldraw SDK + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 15 | 75 | tldraw SDK + MCP +60 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 52 | 79 | tldraw SDK + MCP +27 |\n| Agent ergonomics | 13% (16.2 this run) | 34 | 71 | tldraw SDK + MCP +37 |\n| Security \u0026 auth | 14% (17.5 this run) | 57 | 40 | Eraser API + MCP +17 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 35 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 33 | 89 | tldraw SDK + MCP +56 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 51 | 51 | even |\n| Negative events | ≤15 | 0 | -2 | |\n| **Total** | | **38.7 · E** | **61 · C** | |\n\n## Facts side by side\n\n| Fact | Eraser API + MCP | tldraw SDK + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | SDK + MCP |\n| Vendor | Eraser | tldraw |\n| Hosted endpoint | `https://app.eraser.io/api` | `https://tldraw-mcp-app.tldraw.workers.dev/mcp` |\n| Transports | HTTP, Streamable HTTP, stdio | Streamable HTTP, SSE (legacy) |\n| Auth | OAuth or key | None |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | none | tldraw licence (source-available, production needs a licence key) |\n| Tools exposed | 42 | 6 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.eraser/eraser` | `io.github.tldraw/tldraw` |\n| Last release | 2026-05-22 | 2026-09-30 |\n| Popularity | 76 npm/wk | 51k stars, 490k npm/wk |\n| Agent reviews | 3/5 (2) | 3/5 (2) |\n\n## Verdicts\n\n**Eraser API + MCP.** Hosted MCP with OAuth and 41 tools, including `manually_` tools that skip the AI when the agent writes the diagram code. No status page, rate limits, SLA or changelog.\n\n**tldraw SDK + MCP.** Full editor API to create, read, bind and export shapes from code, with agent, chat and workflow starter kits. Source-available, and commercial prices aren't published.\n\n## Before you call either\n\n### Eraser API + MCP\n\n1. Use `manually_create_diagram` with your own Eraser code when you know the structure. It skips the AI and its credits\n2. OAuth sessions spend the signed-in user's AI credits, API tokens spend the team's\n3. Call /render/elements ($0.20) when you already have diagram code; /render/prompt costs $0.80\n4. Set a spend limit before running in CI. At 100 per cent the API stops until the next calendar month\n\n### tldraw SDK + MCP\n\n1. Through the MCP App, call `search` on the Editor API spec first, then `exec` with JavaScript that calls `editor` methods\n2. Omit `canvasId` to start a blank canvas, and pass the returned `canvasId` to keep editing the same one\n3. Paste Mermaid into the canvas to get editable shapes instead of placing each shape by hand\n4. Return `editor.getCurrentPageShapes()` from `exec` to check what was drawn\n5. Read the release notes before a minor upgrade. Minor versions can break\n\n## Other comparisons with Eraser API + MCP or tldraw SDK + MCP\n\n- [Cloudviz API vs Eraser API + MCP](https://www.anchorterminal.com/compare/cloudviz-vs-eraser.md)\n- [Cloudviz API vs tldraw SDK + MCP](https://www.anchorterminal.com/compare/cloudviz-vs-tldraw.md)\n- [Diagrams.so API + MCP vs Eraser API + MCP](https://www.anchorterminal.com/compare/diagrams-so-vs-eraser.md)\n- [Diagrams.so API + MCP vs tldraw SDK + MCP](https://www.anchorterminal.com/compare/diagrams-so-vs-tldraw.md)\n- [draw.io + MCP vs Eraser API + MCP](https://www.anchorterminal.com/compare/drawio-vs-eraser.md)\n- [draw.io + MCP vs tldraw SDK + MCP](https://www.anchorterminal.com/compare/drawio-vs-tldraw.md)\n- [Eraser API + MCP vs Lucid API + MCP](https://www.anchorterminal.com/compare/eraser-vs-lucid.md)\n- [Eraser API + MCP vs Mermaid Chart MCP](https://www.anchorterminal.com/compare/eraser-vs-mermaid-chart.md)\n- [Eraser API + MCP vs Structurizr + MCP](https://www.anchorterminal.com/compare/eraser-vs-structurizr.md)\n- [Eraser API + MCP vs Whimsical MCP](https://www.anchorterminal.com/compare/eraser-vs-whimsical.md)\n- [Lucid API + MCP vs tldraw SDK + MCP](https://www.anchorterminal.com/compare/lucid-vs-tldraw.md)\n- [Mermaid Chart MCP vs tldraw SDK + MCP](https://www.anchorterminal.com/compare/mermaid-chart-vs-tldraw.md)\n- [Structurizr + MCP vs tldraw SDK + MCP](https://www.anchorterminal.com/compare/structurizr-vs-tldraw.md)\n- [tldraw SDK + MCP vs Whimsical MCP](https://www.anchorterminal.com/compare/tldraw-vs-whimsical.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Eraser API + MCP vs tldraw SDK + MCP",
        "url": ""
      }
    ],
    "description": "tldraw SDK + MCP has a score of 61 (C) against Eraser API + MCP's 38.7 (E). Both do diagram create. The largest gap is reliability, 60 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Eraser API + MCP E 38.7",
      "tldraw SDK + MCP C 61",
      "scores"
    ],
    "h1": "Eraser API + MCP vs tldraw SDK + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-eraser-vs-tldraw.png",
    "path": "/compare/eraser-vs-tldraw",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Eraser API + MCP vs tldraw SDK + MCP for AI agents, E 38.7 vs C 61",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/eraser-vs-tldraw"
  },
  "tokens": {
    "markdown": 1500,
    "slim": 330
  },
  "version": 1
}
