{
  "data": {
    "a": {
      "slug": "diagrams-so",
      "name": "Diagrams.so API + MCP",
      "vendor": "Diagrams.so (RedHold LLC)",
      "vendorUrl": "https://diagrams.so",
      "kind": "http-api",
      "category": "diagramming",
      "summary": "Turns a plain-English description into an editable draw.io diagram with cloud icons (AWS, Azure, GCP, OCI, Kubernetes).",
      "url": "https://www.anchorterminal.com/tools/diagrams-so",
      "markdownUrl": "https://www.anchorterminal.com/tools/diagrams-so.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/diagrams-so.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/diagrams-so.json",
      "repo": "https://github.com/RedHold/diagrams-sdk",
      "license": "Apache-2.0",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.diagrams.so/api/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "@diagrams-so/mcp"
        },
        {
          "registry": "npm",
          "name": "@diagrams-so/sdk"
        },
        {
          "registry": "pypi",
          "name": "diagrams-so"
        }
      ],
      "auth": "mixed",
      "authNotes": "API keys (dgz_live_ and dgz_test_) as a Bearer header, revocable at once, with a cap of 25 active keys. Test keys spend real credits. The MCP server and SDKs can instead log in through a device flow (npx @diagrams-so/mcp@latest login), where the one-time code is emailed (set DIAGRAMS_LOGIN_EMAIL for the in-chat path) and the credential is cached at ~/.diagrams-so/credentials.json. DIAGRAMS_API_KEY works for CI.",
      "pricing": "freemium",
      "pricingNotes": "Free $0 with 10 one-time credits, no card, public diagrams and watermarked exports. Pro $15 a month or $10 a month billed yearly (75 credits a month), Power $25 a month or $16.67 billed yearly (250 credits). Credit packs $5 per 25. API, MCP and SDKs are on every plan and use the same credits as the app. Reads, exports and prompt helpers are free. Per-action credit costs are shown in the app; the SDK changelog gives 0.5 to 3.0 credits for generate, edit, fix and re-layout. A bring-your-own LLM key skips plan credits. 14-day money-back guarantee on the first paid subscription (https://diagrams.so/pricing).",
      "priceSummary": "$15 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 23,
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 172,
        "pypiWeekly": 3,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://diagrams.so/developers",
      "llmsTxt": "https://diagrams.so/llms.txt",
      "openapi": "https://api.diagrams.so/api/v2/openapi.json",
      "registryName": "io.github.RedHold/diagrams-so-mcp",
      "capabilities": [
        "diagram.create",
        "diagram.edit",
        "diagram.export",
        "diagram.architecture"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "mcp",
        "llms-txt",
        "openapi",
        "python",
        "typescript"
      ],
      "lastRelease": "2026-08-19",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.1,
        "grade": "C",
        "agentReady": false,
        "rank": 255,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 85,
          "maintenance": 71,
          "payments": 32,
          "reliability": 30,
          "schema": 85,
          "security": 67,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -2,
        "negativeNotes": [
          "Early August 2026. The API moved its device login to an emailed code without notice, which broke the MCP server's in-chat connect path and sent one rejected request per tool call until v1.4.6 fixed it on 19 August. Fixed and documented in the server's changelog, so the deduction is reduced (https://github.com/RedHold/diagrams-mcp-app-core/blob/main/CHANGELOG.md)."
        ],
        "verdict": "API, MCP and SDKs on every plan, including a Free plan marked \"No Card Required\". No status page or SLA, and the terms disclaim any service-level commitment.",
        "strengths": [
          "API, MCP and SDKs on every plan, including a Free plan marked \"No Card Required\"",
          "OpenAPI 3.1 with 32 operations, and an Idempotency-Key on every billable call",
          "All 23 MCP tools carry readOnlyHint or destructiveHint annotations",
          "Editable draw.io XML output with Well-Architected warnings and a fix tool",
          "Terms promise 90 days' notice before a major API version is retired"
        ],
        "weaknesses": [
          "No status page or SLA, and the terms disclaim any service-level commitment",
          "Rate limits exist per key and per IP but no numbers are published",
          "Per-action credit costs are shown only in the app",
          "Domain registered in February 2026, and no commits to either repo since 19 August 2026",
          "Login is a device flow a person must approve by email, so there's no autonomous signup"
        ],
        "agentNotes": [
          "Send an Idempotency-Key on generate, edit, fix and re-layout. If a billable call times out, check `get_usage_history` before retrying",
          "Generation is synchronous and can run for minutes. The SDKs default to a 450 s timeout, or use `POST /diagrams/stream`",
          "Call `list_capabilities` first. `cloud_provider` and `diagram_type` are free strings, and a wrong value fails the call",
          "`relayout_diagram` refuses to run without `confirm=true`, because every re-layout is billed",
          "Test keys (dgz_test_) spend the same credits as live keys"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.1
          }
        ],
        "editorialScores": {
          "ergonomics": 85,
          "maintenance": 71,
          "payments": 32,
          "reliability": 30,
          "schema": 85,
          "security": 67,
          "transparency": 75
        },
        "provenanceScore": 75
      },
      "connect": {
        "http": "curl https://api.diagrams.so/api/v2/diagrams -H \"Authorization: Bearer $DIAGRAMS_API_KEY\" \\\n  -H \"Content-Type: application/json\" -d '{\"prompt\":\"A 3-tier web app on AWS with an ALB, EC2 Auto Scaling and RDS Postgres\",\"cloud_provider\":\"aws\"}'",
        "claudeCode": "claude mcp add diagrams-so -- npx -y @diagrams-so/mcp@latest",
        "config": {
          "mcpServers": {
            "diagrams-so": {
              "args": [
                "-y",
                "@diagrams-so/mcp@latest"
              ],
              "command": "npx",
              "env": {
                "DIAGRAMS_API_KEY": "${DIAGRAMS_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/diagram.create",
        "tool": "https://letme.dev/diagrams-so"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 15,
          "note": "75 credits a month. $10 a month billed yearly"
        },
        {
          "item": "Power plan",
          "unit": "month",
          "usd": 25,
          "note": "250 credits a month. $16.67 a month billed yearly"
        },
        {
          "item": "Credit pack",
          "unit": "credit",
          "usd": 0.2,
          "note": "$5 per 25 credits, pack credits don't expire"
        }
      ],
      "provenance": {
        "legalEntity": "RedHold LLC",
        "domain": "diagrams.so",
        "domainRegistered": "2026-02-05",
        "endpointOnVendorDomain": true,
        "terms": "https://diagrams.so/policy/terms",
        "privacy": "https://diagrams.so/policy/privacy",
        "statusPage": "",
        "changelog": "https://diagrams.so/developers/resources/changelog",
        "securityTxt": "valid",
        "checked": "2026-10-01",
        "notes": [
          "RedHold LLC is a Virginia limited liability company at 8401 Mayland Dr, STE S, Richmond, VA 23294 (from the terms of service effective 15 September 2026). We couldn't load a state registry record to confirm it independently",
          "The status and SLA page says a status page will be linked once it is live",
          "security.txt not rechecked on 2026-10-01; valid per the 30 September check"
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/diagrams-so.json",
      "live": {
        "slug": "diagrams-so",
        "probe": {
          "target": "https://api.diagrams.so/api/v2",
          "method": "get",
          "lastAt": "2026-10-04T23:48:07.536692053Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 340,
          "authRequired": false,
          "uptime24h": 97.06,
          "uptime30d": 97,
          "p50ms24h": 345,
          "p95ms24h": 405,
          "samples24h": 272,
          "samples30d": 1100,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 33
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 268
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 240
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 264
            },
            {
              "date": "2026-10-04",
              "probes": 270,
              "ok": 262
            }
          ]
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.RedHold/diagrams-so-mcp",
            "version": "1.4.6",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "@diagrams-so/mcp",
            "version": "1.4.6",
            "seenAt": "2026-10-04T16:25:36.673190162Z"
          },
          {
            "registry": "npm",
            "name": "@diagrams-so/sdk",
            "version": "1.3.0",
            "seenAt": "2026-10-04T16:25:37.522112948Z"
          },
          {
            "registry": "pypi",
            "name": "diagrams-so",
            "version": "1.3.0",
            "released": "2026-08-05",
            "seenAt": "2026-10-04T16:25:38.902347471Z"
          }
        ],
        "githubStars": 0,
        "npmWeekly": 91,
        "pypiWeekly": 4,
        "securityTxt": {
          "url": "https://diagrams.so/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-08-01T00:00:00Z",
          "checkedAt": "2026-10-04T15:16:00.348168997Z"
        },
        "llmsTxt": {
          "url": "https://diagrams.so/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:30.857189856Z"
        },
        "domain": {
          "domain": "diagrams.so",
          "checkedAt": "2026-10-04T13:04:27.501679981Z"
        },
        "pages": [
          {
            "url": "https://diagrams.so/developers/resources/changelog",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:43:04.874729172Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "496d4c3074ab"
          },
          {
            "url": "https://diagrams.so/policy/terms",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-10-04T15:43:08.963882503Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "862f66aa7b0b"
          },
          {
            "url": "https://diagrams.so/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:43:10.965792916Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ae91841e9c40"
          },
          {
            "url": "https://diagrams.so/policy/privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:43:06.971241586Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6fa8d4562829"
          }
        ],
        "updatedAt": "2026-10-04T23:48:07.536692053Z"
      }
    },
    "b": {
      "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-04T23:48:07.995337196Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 141,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 143,
          "p95ms24h": 424,
          "samples24h": 272,
          "samples30d": 1100,
          "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": 270,
              "ok": 270
            }
          ]
        },
        "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-04T23:48:07.995337196Z"
      }
    },
    "summary": "Diagrams.so API + MCP has a score of 60.1 (C) against Eraser API + MCP's 38.7 (E). Both do diagram create. The largest gap is agent ergonomics, 51 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/diagrams-so-vs-eraser",
    "json": "https://www.anchorterminal.com/compare/diagrams-so-vs-eraser.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/diagrams-so-vs-eraser.md",
    "slim": "https://www.anchorterminal.com/compare/diagrams-so-vs-eraser.min.md"
  },
  "markdown": "Diagrams.so API + MCP has a score of 60.1 (C) against Eraser API + MCP's 38.7 (E). Both do diagram create. The largest gap is agent ergonomics, 51 points.\n\n- Diagrams.so API + MCP: grade C, 60.1/100, rank #255 of 452. Markdown https://www.anchorterminal.com/tools/diagrams-so.md · JSON https://www.anchorterminal.com/api/v1/tools/diagrams-so.json\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\n## Which one, for what\n\nPick Diagrams.so API + MCP for reliability (+15), schema \u0026 documentation (+33), agent ergonomics (+51), security \u0026 auth (+10), maintenance \u0026 community (+38), transparency \u0026 trust (+24).\n\nPick Eraser API + MCP for nothing in particular (no category where it leads by five points or more).\n\n## Score by category\n\n| Category | Weight | Diagrams.so API + MCP | Eraser API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 30 | 15 | Diagrams.so API + MCP +15 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 52 | Diagrams.so API + MCP +33 |\n| Agent ergonomics | 13% (16.2 this run) | 85 | 34 | Diagrams.so API + MCP +51 |\n| Security \u0026 auth | 14% (17.5 this run) | 67 | 57 | Diagrams.so API + MCP +10 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 32 | 35 | Eraser API + MCP +3 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 71 | 33 | Diagrams.so API + MCP +38 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 75 | 51 | Diagrams.so API + MCP +24 |\n| Negative events | ≤15 | -2 | 0 | |\n| **Total** | | **60.1 · C** | **38.7 · E** | |\n\n## Facts side by side\n\n| Fact | Diagrams.so API + MCP | Eraser API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Diagrams.so (RedHold LLC) | Eraser |\n| Hosted endpoint | `https://api.diagrams.so/api/v2` | `https://app.eraser.io/api` |\n| Transports | HTTP, stdio | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 | none |\n| Tools exposed | 23 | 42 |\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.github.RedHold/diagrams-so-mcp` | `io.eraser/eraser` |\n| Last release | 2026-08-19 | 2026-05-22 |\n| Popularity | 0 stars, 172 npm/wk, 3 PyPI/wk | 76 npm/wk |\n| Agent reviews | 4/5 (2) | 3/5 (2) |\n\n## Verdicts\n\n**Diagrams.so API + MCP.** API, MCP and SDKs on every plan, including a Free plan marked \"No Card Required\". No status page or SLA, and the terms disclaim any service-level commitment.\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## Before you call either\n\n### Diagrams.so API + MCP\n\n1. Send an Idempotency-Key on generate, edit, fix and re-layout. If a billable call times out, check `get_usage_history` before retrying\n2. Generation is synchronous and can run for minutes. The SDKs default to a 450 s timeout, or use `POST /diagrams/stream`\n3. Call `list_capabilities` first. `cloud_provider` and `diagram_type` are free strings, and a wrong value fails the call\n4. `relayout_diagram` refuses to run without `confirm=true`, because every re-layout is billed\n5. Test keys (dgz_test_) spend the same credits as live keys\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## Other comparisons with Diagrams.so API + MCP or Eraser API + MCP\n\n- [Cloudviz API vs Diagrams.so API + MCP](https://www.anchorterminal.com/compare/cloudviz-vs-diagrams-so.md)\n- [Cloudviz API vs Eraser API + MCP](https://www.anchorterminal.com/compare/cloudviz-vs-eraser.md)\n- [Diagrams.so API + MCP vs draw.io + MCP](https://www.anchorterminal.com/compare/diagrams-so-vs-drawio.md)\n- [Diagrams.so API + MCP vs Lucid API + MCP](https://www.anchorterminal.com/compare/diagrams-so-vs-lucid.md)\n- [Diagrams.so API + MCP vs Mermaid Chart MCP](https://www.anchorterminal.com/compare/diagrams-so-vs-mermaid-chart.md)\n- [Diagrams.so API + MCP vs Structurizr + MCP](https://www.anchorterminal.com/compare/diagrams-so-vs-structurizr.md)\n- [Diagrams.so API + MCP vs tldraw SDK + MCP](https://www.anchorterminal.com/compare/diagrams-so-vs-tldraw.md)\n- [Diagrams.so API + MCP vs Whimsical MCP](https://www.anchorterminal.com/compare/diagrams-so-vs-whimsical.md)\n- [draw.io + MCP vs Eraser API + MCP](https://www.anchorterminal.com/compare/drawio-vs-eraser.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 tldraw SDK + MCP](https://www.anchorterminal.com/compare/eraser-vs-tldraw.md)\n- [Eraser API + MCP vs Whimsical MCP](https://www.anchorterminal.com/compare/eraser-vs-whimsical.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "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": "Diagrams.so API + MCP vs Eraser API + MCP",
        "url": ""
      }
    ],
    "description": "Diagrams.so API + MCP has a score of 60.1 (C) against Eraser API + MCP's 38.7 (E). Both do diagram create. The largest gap is agent ergonomics, 51 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Diagrams.so API + MCP C 60.1",
      "Eraser API + MCP E 38.7",
      "scores"
    ],
    "h1": "Diagrams.so API + MCP vs Eraser API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-diagrams-so-vs-eraser.png",
    "path": "/compare/diagrams-so-vs-eraser",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Diagrams.so API + MCP vs Eraser API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/diagrams-so-vs-eraser"
  },
  "tokens": {
    "markdown": 1600,
    "slim": 380
  },
  "version": 1
}
