{
  "data": {
    "a": {
      "slug": "pen-dev",
      "name": "pen.dev",
      "vendor": "High Agency, Inc.",
      "vendorUrl": "https://pen.dev",
      "kind": "mcp",
      "category": "design",
      "summary": "Design canvas from High Agency, Inc. that stores designs as JSON `.pen` files. Agents edit them through a local MCP server in the desktop app or IDE extension, or through a headless CLI. It was called Pencil until 2026.",
      "url": "https://www.anchorterminal.com/tools/pen-dev",
      "markdownUrl": "https://www.anchorterminal.com/tools/pen-dev.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pen-dev.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pen-dev.json",
      "dns": "pen-dev.grade.anchorterminal.com",
      "repo": "https://github.com/highagency/pen-desktop-releases",
      "license": "Proprietary. The CLI package on npm carries a proprietary licence file, and the apps fall under the vendor's EULA",
      "transports": [
        "stdio"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@pen.dev/cli"
        }
      ],
      "auth": "mixed",
      "authNotes": "A pen.dev account is required for the desktop app, the extension and the CLI. The MCP server takes no credential of its own and reaches the signed-in app over a local socket, after the owner enables each client in Settings, MCP. The CLI signs in with `pen login` (email with password or one-time code) or with `PEN_CLI_KEY`, an organisation-scoped key created in Developer Keys on the web app. No key scopes are documented. Access is self-serve.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at $0 with 5 agent days and 25 image or SVG generations a month, including the CLI, MCP access and personal developer keys, so an agent's owner can start without a contract. Pro is $16 and Ultra $48 a user a month, and Enterprise is priced on request. Model usage on the user's own provider key is billed by that provider (https://pen.dev/pricing, checked 2026-10-08).",
      "priceSummary": "$16 / seat-mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the pricing page or the CLI reference (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 6,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.pen.dev",
      "capabilities": [
        "design.files",
        "design.canvas",
        "design.components",
        "design.code"
      ],
      "tags": [
        "local",
        "desktop",
        "cli",
        "headless",
        "mcp",
        "stdio",
        "closed-source",
        "freemium",
        "free-tier",
        "vscode",
        "design-to-code"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 43.3,
        "grade": "E",
        "agentReady": false,
        "rank": 1253,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 14,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 59,
          "payments": 38,
          "reliability": 33,
          "schema": 36,
          "security": 31,
          "transparency": 55
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-05"
        },
        "negative": 0,
        "verdict": "An agent can create, edit and export `.pen` designs without a GUI through the `pen` CLI, with four compact MCP tools that carry annotations and a documented JSON format. The software is closed and needs a pen.dev account. Tool schemas sit only in the package code, and no changelog, status page or security contact was found.",
        "bestFor": "A coding agent that designs screens beside the code and keeps them in Git, including in CI.",
        "strengths": [
          "Headless CLI (`@pen.dev/cli`) runs the same editor engine as the desktop app and exports PNG, JPEG, WEBP, PDF and HTML",
          "Four standard MCP tools with typed inputs in the package and readOnlyHint and destructiveHint annotations, plus two conditional tools",
          "The `.pen` format is JSON with a published TypeScript schema, so designs sit in Git beside code",
          "Free plan includes the CLI, MCP access and personal developer keys, with five agent days a month",
          "Privacy policy has a retention table and says prompts sent with the user's own provider key never reach the vendor's servers"
        ],
        "weaknesses": [
          "No changelog. Desktop releases on GitHub had empty notes on 8 October, and the format docs reserve the right to make breaking changes",
          "MCP tool input schemas appear only in the package code, not in the docs",
          "14 issues opened between 28 July and 6 October 2026 in highagency/pen-desktop-releases had no comment or closure on 8 October",
          "No status page, security.txt, disclosure policy, bug bounty or certification was found",
          "`execute` takes one JavaScript snippet and carries destructiveHint true, with no read-only mode for an external MCP client",
          "Closed source under a proprietary licence that forbids reverse engineering, and every surface needs a pen.dev account"
        ],
        "agentNotes": [
          "Call `read_skill()`, then `read_skill({ path: \"pen-schema.md\" })` and `read_skill({ path: \"execute.md\" })` before the first `execute`. The tool description alone doesn't document the operations",
          "Call `get_app_state()` and confirm the active document before editing. The MCP server works on whichever `.pen` file is open in the app",
          "In headless `pen interactive`, call `save()` before `exit()`, and keep `--in` and `--out` on different paths to preserve the source",
          "Check that an export file exists. The docs say an export failure can print an error without a nonzero exit status",
          "In CI set `PEN_CLI_KEY` plus a provider key such as `ANTHROPIC_API_KEY`. Run `pen version`, since `pen --version` is not a flag"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 43.3
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 59,
          "payments": 38,
          "reliability": 33,
          "schema": 36,
          "security": 31,
          "transparency": 54
        },
        "provenanceScore": 55,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-05",
            "maintenance": "2026-11-05",
            "payments": "2026-11-05",
            "reliability": "2026-11-05",
            "schema": "2026-11-05",
            "security": "2026-11-05",
            "transparency": "2026-11-05"
          },
          "last": "2026-11-05",
          "lastMoved": "2026-11-05",
          "oldest": "2026-11-05",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install -g @pen.dev/cli",
        "headless": {
          "command": "pen --out design.pen --prompt \"$TASK\"",
          "env": {
            "ANTHROPIC_API_KEY": "\u003ckey\u003e",
            "PEN_CLI_KEY": "\u003ckey starting pencil_cli_\u003e"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.files",
        "tool": "https://letme.dev/pen-dev"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "seat-month",
          "usd": 16,
          "note": "unlimited agent days, 350 image or SVG generations a month, up to 3 agents in parallel"
        },
        {
          "item": "Ultra plan",
          "unit": "seat-month",
          "usd": 48,
          "note": "750 image or SVG generations a month, up to 6 agents in parallel"
        }
      ],
      "provenance": {
        "legalEntity": "High Agency, Inc.",
        "domain": "pen.dev",
        "domainRegistered": "2025-09-10",
        "endpointOnVendorDomain": true,
        "terms": "https://pen.dev/terms-of-use",
        "privacy": "https://pen.dev/privacy-policy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-05",
        "notes": [
          "The terms of use are effective 26 October 2026; the EULA and privacy policy, per the 8 October check, are effective 6 October 2026. They name High Agency, Inc., 440 N Barranca Ave #2993, Covina, CA 91723, USA, and choose Delaware law.",
          "The terms of use cover the desktop app, web app, extensions and CLI and hold the billing terms. A separate EULA at https://pen.dev/eula governs the installed software and prevails for it where the two conflict.",
          "The MCP server is local. The CLI and app sign in against https://api.pen.dev, and the web app is app.pen.dev.",
          "The domain registration date was read from RDAP on 8 October, a data interface this method no longer reads. www.pencil.dev answered with the pen.dev site on 8 October.",
          "pen.dev/.well-known/security.txt and /security.txt, status.pen.dev, pen.dev/changelog and pen.dev/security returned 404 on 8 October. pen.dev redirects to www.pen.dev.",
          "The footer says the company is backed by a16z speedrun."
        ],
        "score": 55
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pen-dev.json",
      "live": {
        "slug": "pen-dev",
        "versions": [
          {
            "registry": "github",
            "name": "highagency/pen-desktop-releases",
            "version": "v1.2.22",
            "released": "2026-11-05",
            "seenAt": "2026-11-06T23:55:15.615366199Z"
          },
          {
            "registry": "npm",
            "name": "@pen.dev/cli",
            "version": "0.3.15",
            "seenAt": "2026-11-06T23:55:14.788196494Z"
          }
        ],
        "githubStars": 2,
        "npmWeekly": 4927,
        "securityTxt": {
          "url": "https://pen.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:14.663584453Z"
        },
        "domain": {
          "domain": "pen.dev",
          "registered": "2025-09-10",
          "source": "https://pubapi.registry.google/rdap/domain/pen.dev",
          "checkedAt": "2026-11-01T14:16:10.642958993Z"
        },
        "pages": [
          {
            "url": "https://pen.dev/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-07T14:16:14.385515813Z",
            "changedAt": "2026-11-06T13:37:54.37169744Z",
            "fingerprint": "baaa99388053"
          },
          {
            "url": "https://pen.dev/privacy-policy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:16:16.557504648Z",
            "changedAt": "2026-11-04T08:29:34.817925027Z",
            "fingerprint": "f67367ab8fe0"
          },
          {
            "url": "https://pen.dev/terms-of-use",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:16:18.628642947Z",
            "changedAt": "2026-11-04T08:29:37.167689148Z",
            "fingerprint": "0c3e6c77ad3c"
          }
        ],
        "github": {
          "repo": "highagency/pen-desktop-releases",
          "checkedAt": "2026-11-02T08:54:35.81152907Z",
          "stars": 2,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-29T12:57:34Z",
          "openIssues": 20,
          "openPRs": 0,
          "issuesOpened90d": 18,
          "issuesClosed90d": 0,
          "prsMerged90d": 0,
          "replies": {
            "sampled": 18,
            "unanswered": 18
          }
        },
        "updatedAt": "2026-11-07T16:01:14.663584453Z"
      }
    },
    "answer": "pen.dev scores 43.3 (E) on agent readiness against UX Pilot MCP server's 33 (F), and leads in 5 of 7 scored categories. UX Pilot MCP server leads on schema \u0026 documentation and security \u0026 auth.",
    "b": {
      "slug": "ux-pilot-mcp",
      "name": "UX Pilot MCP server",
      "vendor": "UX Pilot",
      "vendorUrl": "https://uxpilot.ai",
      "kind": "mcp",
      "category": "design",
      "summary": "UX Pilot's hosted MCP server lets an agent find, organise and import design work, run UX reviews and generate React prototypes on the UX Pilot canvas, over OAuth or an API key, with deletes only after the user confirms.",
      "url": "https://www.anchorterminal.com/tools/ux-pilot-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/ux-pilot-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/ux-pilot-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ux-pilot-mcp.json",
      "dns": "ux-pilot-mcp.grade.anchorterminal.com",
      "repo": "https://github.com/uxpilot-ai/uxpilot-mcp",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.uxpilot.net/mcp",
      "packages": [],
      "auth": "oauth",
      "authNotes": "Native OAuth sign-in recommended, or an Authorization: Bearer API key as a fallback. Set up from Account Settings, MCP Access.",
      "pricing": "freemium",
      "pricingNotes": "A free tier to start generating; paid plans on the pricing page, which renders with script (checked 2026-11-07).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the MCP docs or pricing page (checked 2026-11-07).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-07"
      },
      "docsUrl": "https://uxpilot.ai/mcp",
      "registryName": "ai.uxpilot/uxpilot",
      "capabilities": [
        "design.canvas",
        "design.code",
        "design.review"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "remote-mcp",
        "oauth",
        "api-key",
        "freemium",
        "free-tier",
        "mcp-registry"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 33,
        "grade": "F",
        "agentReady": false,
        "rank": 1410,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 17,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 46,
          "maintenance": 45,
          "payments": 20,
          "reliability": 15,
          "schema": 45,
          "security": 39,
          "transparency": 22
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-07"
        },
        "negative": 0,
        "verdict": "UX Pilot's MCP server reaches its design canvas, reviews and React prototypes from any agent, with a careful split between organising and deleting. Little else is public, no status page, limits, errors or readable legal pages.",
        "bestFor": "Designers on UX Pilot who want an agent to organise screens, review UX and build React prototypes.",
        "strengths": [
          "Organise tools never delete; deletes need the user to confirm",
          "Grouped actions with a help tool for fields and examples",
          "OAuth, or a key as a fallback",
          "Free tier"
        ],
        "weaknesses": [
          "No status page, limits or error docs",
          "Terms and privacy not readable without script",
          "No changelog for a 3.0 server"
        ],
        "agentNotes": [
          "Ask the help tool for an action's fields before calling it",
          "Delete only after the user confirms",
          "Treat imported AI output and comments as untrusted"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "F",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 33
          }
        ],
        "editorialScores": {
          "ergonomics": 46,
          "maintenance": 45,
          "payments": 20,
          "reliability": 15,
          "schema": 45,
          "security": 39,
          "transparency": 5
        },
        "provenanceScore": 38,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-07",
            "maintenance": "2026-11-07",
            "payments": "2026-11-07",
            "reliability": "2026-11-07",
            "schema": "2026-11-07",
            "security": "2026-11-07",
            "transparency": "2026-11-07"
          },
          "last": "2026-11-07",
          "oldest": "2026-11-07",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "claudeCode": "claude mcp add ux-pilot --transport http https://mcp.uxpilot.net/mcp",
        "config": {
          "mcpServers": {
            "ux-pilot": {
              "url": "https://mcp.uxpilot.net/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.canvas",
        "tool": "https://letme.dev/ux-pilot-mcp"
      },
      "area": "design-diagrams",
      "provenance": {
        "legalEntity": "UX Pilot",
        "domain": "uxpilot.ai",
        "domainRegistered": "",
        "domainNote": "Not looked up: RDAP isn't requested under the 1 November 2026 rules.",
        "endpointOnVendorDomain": true,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-07",
        "notes": [
          "The terms and privacy pages render with script, so the legal entity wasn't read."
        ],
        "score": 38
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/ux-pilot-mcp.json",
      "live": {
        "slug": "ux-pilot-mcp",
        "probe": {
          "target": "https://mcp.uxpilot.net/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-11-07T23:14:56.455790645Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 179,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 233,
          "p95ms24h": 515,
          "samples24h": 46,
          "samples30d": 46,
          "days": [
            {
              "date": "2026-11-07",
              "probes": 46,
              "ok": 46
            }
          ]
        },
        "updatedAt": "2026-11-07T23:14:56.455790645Z"
      }
    },
    "edges": [
      {
        "by": 33,
        "category": "transparency",
        "leads": "pen-dev",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed source with clear terms, an EULA and a proprietary licence file in the npm package (15 of 30). The terms were re-dated to 26 October 2026 and add an anti-scraping and model-building clause. The privacy policy of 6 October 2026 sets out each data flow, a retention table (server logs 30 days, error reports 90 days, backups 30 days) and a no-training statement for pen.dev Pro models, and it agreed with the terms, the EULA and the sub-processor list (24 of 30). The old `@pencil.dev/cli` package carries a deprecation notice pointing to the new one. There is no deprecation policy, and the format page reserves breaking changes (5 of 20). PostHog and Sentry are disclosed with what they exclude. Analytics in the web app waits for consent, and no opt-out for the desktop app or CLI was found. Sub-processors are named without locations (10 of 20). Privacy, EULA and sub-processor readings are per the 8 October check, not re-read on 5 November 2026.",
          "b": "Terms and privacy render with script and weren't readable (0). Data handling not read (0). A tool that maps old tool names to new calls eased the 3.0 change, no dates (5 of 20). Subprocessors not found (0). 0 + 0 + 5 + 0 = 5."
        },
        "scores": {
          "a": 55,
          "b": 22
        }
      },
      {
        "by": 20,
        "category": "ergonomics",
        "leads": "pen-dev",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Four standard tools with short definitions and two conditional ones, though the model must load skill files before `execute` is usable (22 of 25). Output size is in the agent's hands through `Get` callbacks with `skipChildren` and `Print`, and screenshots of chosen nodes, with no documented paging (12 of 20). A failed `execute` returns an `editId` so the agent patches the snippet with `edits`, and `--verbose-mcp` prints full tool errors, but the docs warn that an export failure can exit with status 0 (10 of 20). All tools carry readOnlyHint, destructiveHint, idempotentHint and openWorldHint annotations in the 0.3.11 package, and `--in` with a separate `--out` leaves the source untouched. No idempotency keys (14 of 20). Few required parameters and a one-line headless command. No SDK in any language (8 of 15). Held per the 8 October check, not re-read on 5 November 2026.",
          "b": "Tool count not published; grouped actions (10). Search by keyword and list calls (10 of 20). No documented errors (3 of 20). 'Nothing is deleted' by the organise tools, and deletes run only once the user confirms (15 of 20). OAuth or a key, no SDKs (8 of 15). 10 + 10 + 3 + 15 + 8 = 46."
        },
        "scores": {
          "a": 66,
          "b": 46
        }
      },
      {
        "by": 18,
        "category": "reliability",
        "leads": "pen-dev",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the local-software lines, because the MCP server and the CLI run on the owner's machine. `@pen.dev/cli` installs from npm with Node.js 22.19 or later stated, and the desktop app has downloads for macOS, Windows and Linux (20). The source is closed, so no public CI or test suite can be seen (0 of 25). The public tracker highagency/pen-desktop-releases has 14 issues opened between 28 July and 6 October 2026, none closed or answered, one of them a report that headless `pen interactive` saved an empty document over a 1.4 MB file with exit status 0. These are users' reports that we did not reproduce (5 of 25). No changelog, empty release notes, and the format page reserves breaking changes (0 of 15). The desktop app is at 1.2.16 and the CLI at 0.3.11 (8 of 15). Sign-in and plan limits also depend on api.pen.dev, which has no status page. Held per the 8 October check, not re-read on 5 November 2026, because pen.dev's terms of 26 October 2026 bar crawling the Services and its hosts were paused. The GitHub issue tracker couldn't be read (github.com pages answer 403).",
          "b": "No status page found (0). No history (5). No limits found (0). No retry guidance (0). No SLA (0). Not labelled beta (10). 0 + 5 + 0 + 0 + 0 + 10 = 15."
        },
        "scores": {
          "a": 33,
          "b": 15
        }
      },
      {
        "by": 18,
        "category": "payments",
        "leads": "pen-dev",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Read with the hosted lines, because the software is free to install but needs a pen.dev account and paid plans lift its limits. No machine payment protocol (0). Plan prices are public, Pro $16 and Ultra $48 a user a month, with no per-call price (10 of 20). The Free plan includes the CLI, MCP access and personal developer keys, and sign-up takes an email address, a name and a username with no card step in the documented flow (20). The npm README documents `pen signup` with flags and `pen login --email --code`, so no browser is needed, but someone must open the verification email and read the code, and organisation keys for CI start at Pro (8 of 20). Held per the 8 October check, not re-read on 5 November 2026.",
          "b": "No machine payment protocol (0). Pricing behind script, not read (0). Free tier (20). A person signs up (0). 0 + 0 + 20 + 0 = 20."
        },
        "scores": {
          "a": 38,
          "b": 20
        }
      },
      {
        "by": 14,
        "category": "maintenance",
        "leads": "pen-dev",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "`@pen.dev/cli` 0.3.11 and desktop v1.2.16 were published on 8 October 2026, 28 days before this check, and the release repository's clone on 5 November 2026 holds tags up to v1.2.21, five tags added since (30). The CLI had 13 versions between 9 July and 8 October, and desktop v1.2.17 to v1.2.21 were tagged between 8 October and 5 November (20). None of the 14 issues in the current tracker had a reply on 8 October, and one of 25 in the older pencil-desktop-releases tracker was closed; the trackers weren't re-read on 5 November (github.com pages answer 403), and the Discord server wasn't read (4 of 25). No readable registry page shows an entry from the vendor; the 8 October search used the registry's data API, which this method no longer reads (0). Dependencies in 0.3.11 are current major versions, with no public CI (5 of 10).",
          "b": "Registry 3.0.0 and repository on 4 November 2026 (30). Dated releases not found (0). Issues not read (0). Official registry entry ai.uxpilot/uxpilot (15). README-only repository (0). 30 + 0 + 0 + 15 + 0 = 45. Registry presence read from Anchor Terminal's own daily import of the official MCP registry (/api/v1/registry.json, 6 November 2026), not the registry's API."
        },
        "scores": {
          "a": 59,
          "b": 45
        }
      },
      {
        "by": 9,
        "category": "schema",
        "leads": "ux-pilot-mcp",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "The MCP tool input schemas were read from the minified npm bundle, source code no docs page shows, so they aren't a published contract, as for other MCP servers whose schemas sit only in source. The `.pen` format's TypeScript schema on the docs site describes the file, not the tool inputs (0 of 25). No llms.txt. The package ships `SKILL.md` and Markdown reference files that `read_skill` hands to the model (6 of 10). The `execute` description is one line that points to `get_app_state`, with the operations documented only in the skill files, while `browser` states each action and when to use it (12 of 20). `execute` takes a JavaScript snippet as one string. `browser` has enums for action and target (7 of 15). The CLI page has worked examples and a troubleshooting page, with no list of error responses (7 of 15). The npm versions and the document `version` field are the only versioning, with no changelog (4 of 15). The other lines are per the 8 October check, not re-read on 5 November 2026.",
          "b": "Schemas not read without sign-in (15 of 25). No llms.txt read (0). Tools grouped by job (find, organise, delete, import, review, React), with a help tool that maps old names to new calls (14 of 20). Inputs not verifiable (5 of 15). A tool that returns any action's fields with an example (8 of 15). Registry 3.0.0 on 4 November; no changelog (3 of 15). 15 + 0 + 14 + 5 + 8 + 3 = 45."
        },
        "scores": {
          "a": 36,
          "b": 45
        }
      }
    ],
    "facts": [
      {
        "a": "MCP server",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "High Agency, Inc.",
        "b": "UX Pilot",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://mcp.uxpilot.net/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio",
        "b": "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": "Proprietary. The CLI package on npm carries a proprietary licence file, and the apps fall under the vendor's EULA",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "6",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "ai.uxpilot/uxpilot",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-08",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "2026-10-06",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "2026-10-06",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2.8/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "pen.dev scores 43.3 (E) on agent readiness against UX Pilot MCP server's 33 (F), and leads in 5 of 7 scored categories. UX Pilot MCP server leads on schema \u0026 documentation and security \u0026 auth.",
        "question": "Which is better for AI agents, pen.dev or UX Pilot MCP server?"
      },
      {
        "answer": "pen.dev takes an API key or an OAuth sign-in. UX Pilot MCP server uses an OAuth sign-in.",
        "question": "Do pen.dev and UX Pilot MCP server need an API key?"
      },
      {
        "answer": "pen.dev runs on your own machine, with no hosted endpoint listed. UX Pilot MCP server has a hosted endpoint at https://mcp.uxpilot.net/mcp.",
        "question": "Can an agent call pen.dev and UX Pilot MCP server without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 33 against 15",
          "Agent ergonomics, 66 against 46",
          "Payments \u0026 pricing, 38 against 20",
          "Maintenance \u0026 community, 59 against 45",
          "Transparency \u0026 trust, 55 against 22"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "A coding agent that designs screens beside the code and keeps them in Git, including in CI.",
        "slug": "pen-dev",
        "watchFor": "No changelog. Desktop releases on GitHub had empty notes on 8 October, and the format docs reserve the right to make breaking changes"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 45 against 36",
          "Security \u0026 auth, 39 against 31"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "Designers on UX Pilot who want an agent to organise screens, review UX and build React prototypes.",
        "slug": "ux-pilot-mcp",
        "watchFor": "No status page, limits or error docs"
      }
    ],
    "history": {
      "pen-dev": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-05",
          "delta": -4.4,
          "from": 47.7,
          "fromGrade": "D",
          "to": 43.3,
          "toGrade": "E"
        },
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-28",
          "delta": -0.1,
          "from": 47.8,
          "fromGrade": "D",
          "to": 47.7,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 47.6,
          "fromGrade": "D",
          "to": 47.8,
          "toGrade": "D"
        }
      ],
      "ux-pilot-mcp": null
    },
    "job": {
      "capability": "design.canvas",
      "name": "Design canvases"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/figma-mcp-vs-pen-dev.json",
        "title": "Figma API + MCP vs pen.dev",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-pen-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-pen-dev.json",
        "title": "Framelink MCP for Figma vs pen.dev",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-pen-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-pen-dev.json",
        "title": "Framer Server API vs pen.dev",
        "url": "https://www.anchorterminal.com/compare/framer-vs-pen-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kite-new-vs-pen-dev.json",
        "title": "Kite vs pen.dev",
        "url": "https://www.anchorterminal.com/compare/kite-new-vs-pen-dev"
      },
      {
        "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/pen-dev-vs-penpot.json",
        "title": "pen.dev vs Penpot API + MCP",
        "url": "https://www.anchorterminal.com/compare/pen-dev-vs-penpot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pen-dev-vs-sketch.json",
        "title": "pen.dev vs Sketch",
        "url": "https://www.anchorterminal.com/compare/pen-dev-vs-sketch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pen-dev-vs-subframe.json",
        "title": "pen.dev vs Subframe",
        "url": "https://www.anchorterminal.com/compare/pen-dev-vs-subframe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pen-dev-vs-zeplin.json",
        "title": "pen.dev vs Zeplin",
        "url": "https://www.anchorterminal.com/compare/pen-dev-vs-zeplin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-ux-pilot-mcp.json",
        "title": "Framelink MCP for Figma vs UX Pilot MCP server",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-ux-pilot-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/impeccable-vs-pen-dev.json",
        "title": "Impeccable vs pen.dev",
        "url": "https://www.anchorterminal.com/compare/impeccable-vs-pen-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/impeccable-vs-ux-pilot-mcp.json",
        "title": "Impeccable vs UX Pilot MCP server",
        "url": "https://www.anchorterminal.com/compare/impeccable-vs-ux-pilot-mcp"
      },
      {
        "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-ux-pilot-mcp.json",
        "title": "Magic Patterns vs UX Pilot MCP server",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-ux-pilot-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ux-pilot-mcp-vs-zeplin.json",
        "title": "UX Pilot MCP server vs Zeplin",
        "url": "https://www.anchorterminal.com/compare/ux-pilot-mcp-vs-zeplin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/figma-mcp-vs-ux-pilot-mcp.json",
        "title": "Figma API + MCP vs UX Pilot MCP server",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-ux-pilot-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-ux-pilot-mcp.json",
        "title": "Framer Server API vs UX Pilot MCP server",
        "url": "https://www.anchorterminal.com/compare/framer-vs-ux-pilot-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kite-new-vs-ux-pilot-mcp.json",
        "title": "Kite vs UX Pilot MCP server",
        "url": "https://www.anchorterminal.com/compare/kite-new-vs-ux-pilot-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/melius-vs-pen-dev.json",
        "title": "Melius vs pen.dev",
        "url": "https://www.anchorterminal.com/compare/melius-vs-pen-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/melius-vs-ux-pilot-mcp.json",
        "title": "Melius vs UX Pilot MCP server",
        "url": "https://www.anchorterminal.com/compare/melius-vs-ux-pilot-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/miro-vs-ux-pilot-mcp.json",
        "title": "Miro API + MCP vs UX Pilot MCP server",
        "url": "https://www.anchorterminal.com/compare/miro-vs-ux-pilot-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/penpot-vs-ux-pilot-mcp.json",
        "title": "Penpot API + MCP vs UX Pilot MCP server",
        "url": "https://www.anchorterminal.com/compare/penpot-vs-ux-pilot-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sketch-vs-ux-pilot-mcp.json",
        "title": "Sketch vs UX Pilot MCP server",
        "url": "https://www.anchorterminal.com/compare/sketch-vs-ux-pilot-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/subframe-vs-ux-pilot-mcp.json",
        "title": "Subframe vs UX Pilot MCP server",
        "url": "https://www.anchorterminal.com/compare/subframe-vs-ux-pilot-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pen-dev-vs-uxkin-agent.json",
        "title": "pen.dev vs UXKIN",
        "url": "https://www.anchorterminal.com/compare/pen-dev-vs-uxkin-agent"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 18,
        "edge": "pen-dev",
        "key": "reliability",
        "name": "Reliability",
        "pen-dev": 33,
        "ux-pilot-mcp": 15,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "edge": "ux-pilot-mcp",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "pen-dev": 36,
        "ux-pilot-mcp": 45,
        "weight": 13
      },
      {
        "by": 20,
        "edge": "pen-dev",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "pen-dev": 66,
        "ux-pilot-mcp": 46,
        "weight": 13
      },
      {
        "by": 8,
        "edge": "ux-pilot-mcp",
        "key": "security",
        "name": "Security \u0026 auth",
        "pen-dev": 31,
        "ux-pilot-mcp": 39,
        "weight": 14
      },
      {
        "by": 18,
        "edge": "pen-dev",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "pen-dev": 38,
        "ux-pilot-mcp": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 14,
        "edge": "pen-dev",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "pen-dev": 59,
        "ux-pilot-mcp": 45,
        "weight": 7
      },
      {
        "by": 33,
        "edge": "pen-dev",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "pen-dev": 55,
        "ux-pilot-mcp": 22,
        "weight": 7
      }
    ],
    "summary": "pen.dev scores 43.3 (E) on agent readiness against UX Pilot MCP server's 33 (F), and leads in 5 of 7 scored categories. UX Pilot MCP server leads on schema \u0026 documentation and security \u0026 auth. Both do design canvases.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "pen-dev": "An agent can create, edit and export `.pen` designs without a GUI through the `pen` CLI, with four compact MCP tools that carry annotations and a documented JSON format. The software is closed and needs a pen.dev account. Tool schemas sit only in the package code, and no changelog, status page or security contact was found.",
      "ux-pilot-mcp": "UX Pilot's MCP server reaches its design canvas, reviews and React prototypes from any agent, with a careful split between organising and deleting. Little else is public, no status page, limits, errors or readable legal pages."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/pen-dev-vs-ux-pilot-mcp",
    "json": "https://www.anchorterminal.com/compare/pen-dev-vs-ux-pilot-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/pen-dev-vs-ux-pilot-mcp.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/pen-dev-vs-ux-pilot-mcp.min.md"
  },
  "markdown": "pen.dev scores 43.3 (E) on agent readiness against UX Pilot MCP server's 33 (F), and leads in 5 of 7 scored categories. UX Pilot MCP server leads on schema \u0026 documentation and security \u0026 auth. Both do design canvases.\n\n- pen.dev: grade E, 43.3/100, rank #1253 of 1510. Markdown https://www.anchorterminal.com/tools/pen-dev.md · JSON https://www.anchorterminal.com/api/v1/tools/pen-dev.json\n- UX Pilot MCP server: grade F, 33/100, rank #1410 of 1510. Markdown https://www.anchorterminal.com/tools/ux-pilot-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/ux-pilot-mcp.json\n- Best design workspace and canvas APIs for AI agents: https://www.anchorterminal.com/best/design/index.md\n- All 133 design comparisons: https://www.anchorterminal.com/compare/design/index.md\n\n## Which one, for what\n\n### pen.dev (E)\n\nGood for: A coding agent that designs screens beside the code and keeps them in Git, including in CI.\n\nAhead on:\n- Reliability, 33 against 15\n- Agent ergonomics, 66 against 46\n- Payments \u0026 pricing, 38 against 20\n- Maintenance \u0026 community, 59 against 45\n- Transparency \u0026 trust, 55 against 22\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: No changelog. Desktop releases on GitHub had empty notes on 8 October, and the format docs reserve the right to make breaking changes\n\n### UX Pilot MCP server (F)\n\nGood for: Designers on UX Pilot who want an agent to organise screens, review UX and build React prototypes.\n\nAhead on:\n- Schema \u0026 documentation, 45 against 36\n- Security \u0026 auth, 39 against 31\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: No status page, limits or error docs\n\n\n## Why the edge\n\n### Transparency \u0026 trust: pen.dev +33\n\n- pen.dev (55): Closed source with clear terms, an EULA and a proprietary licence file in the npm package (15 of 30). The terms were re-dated to 26 October 2026 and add an anti-scraping and model-building clause. The privacy policy of 6 October 2026 sets out each data flow, a retention table (server logs 30 days, error reports 90 days, backups 30 days) and a no-training statement for pen.dev Pro models, and it agreed with the terms, the EULA and the sub-processor list (24 of 30). The old `@pencil.dev/cli` package carries a deprecation notice pointing to the new one. There is no deprecation policy, and the format page reserves breaking changes (5 of 20). PostHog and Sentry are disclosed with what they exclude. Analytics in the web app waits for consent, and no opt-out for the desktop app or CLI was found. Sub-processors are named without locations (10 of 20). Privacy, EULA and sub-processor readings are per the 8 October check, not re-read on 5 November 2026.\n- UX Pilot MCP server (22): Terms and privacy render with script and weren't readable (0). Data handling not read (0). A tool that maps old tool names to new calls eased the 3.0 change, no dates (5 of 20). Subprocessors not found (0). 0 + 0 + 5 + 0 = 5.\n\n### Agent ergonomics: pen.dev +20\n\n- pen.dev (66): Four standard tools with short definitions and two conditional ones, though the model must load skill files before `execute` is usable (22 of 25). Output size is in the agent's hands through `Get` callbacks with `skipChildren` and `Print`, and screenshots of chosen nodes, with no documented paging (12 of 20). A failed `execute` returns an `editId` so the agent patches the snippet with `edits`, and `--verbose-mcp` prints full tool errors, but the docs warn that an export failure can exit with status 0 (10 of 20). All tools carry readOnlyHint, destructiveHint, idempotentHint and openWorldHint annotations in the 0.3.11 package, and `--in` with a separate `--out` leaves the source untouched. No idempotency keys (14 of 20). Few required parameters and a one-line headless command. No SDK in any language (8 of 15). Held per the 8 October check, not re-read on 5 November 2026.\n- UX Pilot MCP server (46): Tool count not published; grouped actions (10). Search by keyword and list calls (10 of 20). No documented errors (3 of 20). 'Nothing is deleted' by the organise tools, and deletes run only once the user confirms (15 of 20). OAuth or a key, no SDKs (8 of 15). 10 + 10 + 3 + 15 + 8 = 46.\n\n### Reliability: pen.dev +18\n\n- pen.dev (33): Read with the local-software lines, because the MCP server and the CLI run on the owner's machine. `@pen.dev/cli` installs from npm with Node.js 22.19 or later stated, and the desktop app has downloads for macOS, Windows and Linux (20). The source is closed, so no public CI or test suite can be seen (0 of 25). The public tracker highagency/pen-desktop-releases has 14 issues opened between 28 July and 6 October 2026, none closed or answered, one of them a report that headless `pen interactive` saved an empty document over a 1.4 MB file with exit status 0. These are users' reports that we did not reproduce (5 of 25). No changelog, empty release notes, and the format page reserves breaking changes (0 of 15). The desktop app is at 1.2.16 and the CLI at 0.3.11 (8 of 15). Sign-in and plan limits also depend on api.pen.dev, which has no status page. Held per the 8 October check, not re-read on 5 November 2026, because pen.dev's terms of 26 October 2026 bar crawling the Services and its hosts were paused. The GitHub issue tracker couldn't be read (github.com pages answer 403).\n- UX Pilot MCP server (15): No status page found (0). No history (5). No limits found (0). No retry guidance (0). No SLA (0). Not labelled beta (10). 0 + 5 + 0 + 0 + 0 + 10 = 15.\n\n### Payments \u0026 pricing: pen.dev +18\n\n- pen.dev (38): Read with the hosted lines, because the software is free to install but needs a pen.dev account and paid plans lift its limits. No machine payment protocol (0). Plan prices are public, Pro $16 and Ultra $48 a user a month, with no per-call price (10 of 20). The Free plan includes the CLI, MCP access and personal developer keys, and sign-up takes an email address, a name and a username with no card step in the documented flow (20). The npm README documents `pen signup` with flags and `pen login --email --code`, so no browser is needed, but someone must open the verification email and read the code, and organisation keys for CI start at Pro (8 of 20). Held per the 8 October check, not re-read on 5 November 2026.\n- UX Pilot MCP server (20): No machine payment protocol (0). Pricing behind script, not read (0). Free tier (20). A person signs up (0). 0 + 0 + 20 + 0 = 20.\n\n### Maintenance \u0026 community: pen.dev +14\n\n- pen.dev (59): `@pen.dev/cli` 0.3.11 and desktop v1.2.16 were published on 8 October 2026, 28 days before this check, and the release repository's clone on 5 November 2026 holds tags up to v1.2.21, five tags added since (30). The CLI had 13 versions between 9 July and 8 October, and desktop v1.2.17 to v1.2.21 were tagged between 8 October and 5 November (20). None of the 14 issues in the current tracker had a reply on 8 October, and one of 25 in the older pencil-desktop-releases tracker was closed; the trackers weren't re-read on 5 November (github.com pages answer 403), and the Discord server wasn't read (4 of 25). No readable registry page shows an entry from the vendor; the 8 October search used the registry's data API, which this method no longer reads (0). Dependencies in 0.3.11 are current major versions, with no public CI (5 of 10).\n- UX Pilot MCP server (45): Registry 3.0.0 and repository on 4 November 2026 (30). Dated releases not found (0). Issues not read (0). Official registry entry ai.uxpilot/uxpilot (15). README-only repository (0). 30 + 0 + 0 + 15 + 0 = 45. Registry presence read from Anchor Terminal's own daily import of the official MCP registry (/api/v1/registry.json, 6 November 2026), not the registry's API.\n\n### Schema \u0026 documentation: UX Pilot MCP server +9\n\n- pen.dev (36): The MCP tool input schemas were read from the minified npm bundle, source code no docs page shows, so they aren't a published contract, as for other MCP servers whose schemas sit only in source. The `.pen` format's TypeScript schema on the docs site describes the file, not the tool inputs (0 of 25). No llms.txt. The package ships `SKILL.md` and Markdown reference files that `read_skill` hands to the model (6 of 10). The `execute` description is one line that points to `get_app_state`, with the operations documented only in the skill files, while `browser` states each action and when to use it (12 of 20). `execute` takes a JavaScript snippet as one string. `browser` has enums for action and target (7 of 15). The CLI page has worked examples and a troubleshooting page, with no list of error responses (7 of 15). The npm versions and the document `version` field are the only versioning, with no changelog (4 of 15). The other lines are per the 8 October check, not re-read on 5 November 2026.\n- UX Pilot MCP server (45): Schemas not read without sign-in (15 of 25). No llms.txt read (0). Tools grouped by job (find, organise, delete, import, review, React), with a help tool that maps old names to new calls (14 of 20). Inputs not verifiable (5 of 15). A tool that returns any action's fields with an example (8 of 15). Registry 3.0.0 on 4 November; no changelog (3 of 15). 15 + 0 + 14 + 5 + 8 + 3 = 45.\n\n## Score by category\n\n| Category | Weight | pen.dev | UX Pilot MCP server | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 33 | 15 | pen.dev +18 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 36 | 45 | UX Pilot MCP server +9 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 46 | pen.dev +20 |\n| Security \u0026 auth | 14% (17.5 this run) | 31 | 39 | UX Pilot MCP server +8 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 38 | 20 | pen.dev +18 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 59 | 45 | pen.dev +14 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 55 | 22 | pen.dev +33 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **43.3 · E** | **33 · F** | |\n\n## Facts side by side\n\n| Fact | pen.dev | UX Pilot MCP server |\n| --- | --- | --- |\n| Kind | MCP server | MCP server |\n| Vendor | High Agency, Inc. | UX Pilot |\n| Hosted endpoint | no (local only) | `https://mcp.uxpilot.net/mcp` |\n| Transports | stdio | Streamable HTTP |\n| Auth | OAuth or key | OAuth |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Proprietary. The CLI package on npm carries a proprietary licence file, and the apps fall under the vendor's EULA | none |\n| Tools exposed | 6 | none |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| MCP registry | not listed | `ai.uxpilot/uxpilot` |\n| Last release | 2026-10-08 | none |\n| Terms last updated | 2026-10-06 | no document linked |\n| Privacy policy last updated | 2026-10-06 | no document linked |\n| Customer content may train models | not found in the text | not read yet |\n| Terms restrict automated access | yes | not read yet |\n| Terms restrict benchmarking | yes | not read yet |\n| Terms or service can change without notice | not found in the text | not read yet |\n| Arbitration or class-action waiver | not found in the text | not read yet |\n| Agent reviews | 2.8/5 (4) | none |\n\n## How the scores have moved\n\n### pen.dev\n\n- -4.4 on 5 November 2026 (D to E): correction\n- -0.1 on 28 October 2026: correction\n- +0.2 on 27 October 2026: checklist\n\n### UX Pilot MCP server\n\nNo score change since it was listed.\n\n## Verdicts\n\n**pen.dev.** An agent can create, edit and export `.pen` designs without a GUI through the `pen` CLI, with four compact MCP tools that carry annotations and a documented JSON format. The software is closed and needs a pen.dev account. Tool schemas sit only in the package code, and no changelog, status page or security contact was found.\n\n**UX Pilot MCP server.** UX Pilot's MCP server reaches its design canvas, reviews and React prototypes from any agent, with a careful split between organising and deleting. Little else is public, no status page, limits, errors or readable legal pages.\n\n## Before you call either\n\n### pen.dev\n\n1. Call `read_skill()`, then `read_skill({ path: \"pen-schema.md\" })` and `read_skill({ path: \"execute.md\" })` before the first `execute`. The tool description alone doesn't document the operations\n2. Call `get_app_state()` and confirm the active document before editing. The MCP server works on whichever `.pen` file is open in the app\n3. In headless `pen interactive`, call `save()` before `exit()`, and keep `--in` and `--out` on different paths to preserve the source\n4. Check that an export file exists. The docs say an export failure can print an error without a nonzero exit status\n5. In CI set `PEN_CLI_KEY` plus a provider key such as `ANTHROPIC_API_KEY`. Run `pen version`, since `pen --version` is not a flag\n\n### UX Pilot MCP server\n\n1. Ask the help tool for an action's fields before calling it\n2. Delete only after the user confirms\n3. Treat imported AI output and comments as untrusted\n\n## Questions\n\n### Which is better for AI agents, pen.dev or UX Pilot MCP server?\n\npen.dev scores 43.3 (E) on agent readiness against UX Pilot MCP server's 33 (F), and leads in 5 of 7 scored categories. UX Pilot MCP server leads on schema \u0026 documentation and security \u0026 auth.\n\n### Do pen.dev and UX Pilot MCP server need an API key?\n\npen.dev takes an API key or an OAuth sign-in. UX Pilot MCP server uses an OAuth sign-in.\n\n### Can an agent call pen.dev and UX Pilot MCP server without installing anything?\n\npen.dev runs on your own machine, with no hosted endpoint listed. UX Pilot MCP server has a hosted endpoint at https://mcp.uxpilot.net/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/pen-dev-vs-ux-pilot-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/pen-dev-vs-ux-pilot-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"pen-dev\", \"b\": \"ux-pilot-mcp\"}`. From a terminal: `anchor compare pen-dev ux-pilot-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/pen-dev.json and https://www.anchorterminal.com/api/v1/tools/ux-pilot-mcp.json\n\n## Other comparisons with pen.dev or UX Pilot MCP server\n\n- [Figma API + MCP vs pen.dev](https://www.anchorterminal.com/compare/figma-mcp-vs-pen-dev.md)\n- [Framelink MCP for Figma vs pen.dev](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-pen-dev.md)\n- [Framer Server API vs pen.dev](https://www.anchorterminal.com/compare/framer-vs-pen-dev.md)\n- [Kite vs pen.dev](https://www.anchorterminal.com/compare/kite-new-vs-pen-dev.md)\n- [Miro API + MCP vs pen.dev](https://www.anchorterminal.com/compare/miro-vs-pen-dev.md)\n- [pen.dev vs Penpot API + MCP](https://www.anchorterminal.com/compare/pen-dev-vs-penpot.md)\n- [pen.dev vs Sketch](https://www.anchorterminal.com/compare/pen-dev-vs-sketch.md)\n- [pen.dev vs Subframe](https://www.anchorterminal.com/compare/pen-dev-vs-subframe.md)\n- [pen.dev vs Zeplin](https://www.anchorterminal.com/compare/pen-dev-vs-zeplin.md)\n- [Framelink MCP for Figma vs UX Pilot MCP server](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-ux-pilot-mcp.md)\n- [Impeccable vs pen.dev](https://www.anchorterminal.com/compare/impeccable-vs-pen-dev.md)\n- [Impeccable vs UX Pilot MCP server](https://www.anchorterminal.com/compare/impeccable-vs-ux-pilot-mcp.md)\n- [Magic Patterns vs pen.dev](https://www.anchorterminal.com/compare/magic-patterns-vs-pen-dev.md)\n- [Magic Patterns vs UX Pilot MCP server](https://www.anchorterminal.com/compare/magic-patterns-vs-ux-pilot-mcp.md)\n- [UX Pilot MCP server vs Zeplin](https://www.anchorterminal.com/compare/ux-pilot-mcp-vs-zeplin.md)\n- [Figma API + MCP vs UX Pilot MCP server](https://www.anchorterminal.com/compare/figma-mcp-vs-ux-pilot-mcp.md)\n- [Framer Server API vs UX Pilot MCP server](https://www.anchorterminal.com/compare/framer-vs-ux-pilot-mcp.md)\n- [Kite vs UX Pilot MCP server](https://www.anchorterminal.com/compare/kite-new-vs-ux-pilot-mcp.md)\n- [Melius vs pen.dev](https://www.anchorterminal.com/compare/melius-vs-pen-dev.md)\n- [Melius vs UX Pilot MCP server](https://www.anchorterminal.com/compare/melius-vs-ux-pilot-mcp.md)\n- [Miro API + MCP vs UX Pilot MCP server](https://www.anchorterminal.com/compare/miro-vs-ux-pilot-mcp.md)\n- [Penpot API + MCP vs UX Pilot MCP server](https://www.anchorterminal.com/compare/penpot-vs-ux-pilot-mcp.md)\n- [Sketch vs UX Pilot MCP server](https://www.anchorterminal.com/compare/sketch-vs-ux-pilot-mcp.md)\n- [Subframe vs UX Pilot MCP server](https://www.anchorterminal.com/compare/subframe-vs-ux-pilot-mcp.md)\n- [pen.dev vs UXKIN](https://www.anchorterminal.com/compare/pen-dev-vs-uxkin-agent.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": "pen.dev vs UX Pilot MCP server",
        "url": ""
      }
    ],
    "description": "pen.dev scores 43.3 (E) to UX Pilot's 33 (F) for design canvases. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "pen.dev E 43.3",
      "UX Pilot MCP server F 33",
      "scores"
    ],
    "h1": "pen.dev vs UX Pilot MCP server",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/pen-dev-vs-ux-pilot-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "pen.dev vs UX Pilot for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/pen-dev-vs-ux-pilot-mcp"
  },
  "tokens": {
    "markdown": 4350,
    "slim": 2580
  },
  "version": 1
}
