{
  "data": {
    "a": {
      "slug": "framefields",
      "name": "framefields",
      "vendor": "Gatewai",
      "vendorUrl": "https://framefields.dev",
      "kind": "sdk",
      "category": "video-generation",
      "summary": "framefields is an open-source TypeScript library from Gatewai that renders motion graphics, text, charts, 3D and audio to MP4 on the GPU through WebGPU in Node.js, with an optional paid AI gateway and cloud rendering.",
      "url": "https://www.anchorterminal.com/tools/framefields",
      "markdownUrl": "https://www.anchorterminal.com/tools/framefields.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/framefields.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/framefields.json",
      "dns": "framefields.grade.anchorterminal.com",
      "repo": "https://github.com/gatewai-dev/framefields",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "framefields"
        }
      ],
      "auth": "none",
      "authNotes": "No account or key for local rendering with the npm library. The optional AI gateway and cloud renders need `FRAMEFIELDS_API_KEY`, made at framefields.dev/dashboard after a browser sign-in and stored hashed with a per-key monthly limit. The optional self-hosted renderer worker takes jobs over HTTP with one bearer key (`RENDERER_API_KEY`), a required repository allowlist (`FF_REPO_ALLOWLIST`) and a git token for private repositories, all set by the owner.",
      "pricing": "freemium",
      "pricingNotes": "The library is free under Apache-2.0 and renders on the owner's machine with no account. Gatewai's optional AI gateway (since 2.4.0) and cloud renders (since 2.11.0) run on prepaid credits topped up through Dodo Payments, charged at the model catalogue's price, which is drawn by script, or per GPU time, estimated before a render. The self-hosted renderer worker runs on the owner's GPU host.",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the llms.txt files or the repository source (checked 2026-10-20). There is nothing to pay Gatewai for.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 445,
        "npmWeekly": 1102,
        "pypiWeekly": null,
        "asOf": "2026-10-20"
      },
      "docsUrl": "https://framefields.dev/docs/",
      "llmsTxt": "https://framefields.dev/llms.txt",
      "capabilities": [
        "video.generate",
        "video.render",
        "video.edit",
        "video.audio"
      ],
      "tags": [
        "open-source",
        "apache-2.0",
        "typescript",
        "local",
        "self-hosted",
        "free",
        "no-card",
        "beta",
        "new"
      ],
      "lastRelease": "2026-11-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.9,
        "grade": "D",
        "agentReady": false,
        "rank": 930,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 89,
          "payments": 20,
          "reliability": 61,
          "schema": 77,
          "security": 45,
          "transparency": 46
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": -5,
        "negativeNotes": [
          "20 October 2026, still true on 2 November. The install page says `/plugin install framefields` comes from Anthropic's official plugin directory, which Claude Code adds for you. The directory's public marketplace file (last commit 30 October 2026) lists 315 plugins and no framefields entry, so the command as documented would not find the plugin. The deduction lapses if the entry appears. Sources https://framefields.dev/docs/agents/install/ and https://github.com/anthropics/claude-plugins-official (-2)",
          "28 October 2026. 2.7.0, a minor release, removed TextReveal's `track` enter and exit style from `framefields/components` (\"Breaking for anyone who used it\"), shipped in 2.5.0 to 2.6.2, with no pre-release or earlier notice found. Source https://github.com/gatewai-dev/framefields/blob/main/packages/framefields/CHANGELOG.md (-3)"
        ],
        "verdict": "A free Apache-2.0 library that renders video from TypeScript on the GPU, with lint and QA codes an agent can act on. It ships several versions a week, a minor release removed a documented style without notice, its paid AI gateway and cloud prices aren't readable, and its Claude Code install names a directory entry that doesn't exist.",
        "bestFor": "Coding agents that write motion graphics, data stories, title cards and 3D product shots as code and render them locally or on their own GPU.",
        "strengths": [
          "Apache-2.0 library that renders locally with no account or card",
          "`comp.lint()` and `renderVideo({ qa })` return documented codes with severities and fixes",
          "llms.txt with a Markdown version of every docs page",
          "Self-hosted worker jobs take an idempotency key and report retryable errors",
          "Privacy policy and terms for the hosted parts name sub-processors and say content isn't used for training"
        ],
        "weaknesses": [
          "First published on 5 October 2026 and still badged beta at 2.12.0",
          "2.7.0, a minor release, removed TextReveal's `track` style with no notice",
          "No security policy, security.txt or published security contact for the code",
          "Public CI runs the worker's tests, not the library's Vitest suite",
          "AI gateway and cloud render prices aren't published in readable form"
        ],
        "agentNotes": [
          "Add the plugin with `/plugin marketplace add gatewai-dev/framefields` first; the official-directory install was not found on 2 November 2026.",
          "Approve only the skia-canvas install script, as the getting-started page shows, or imports fail with a missing `skia.node`.",
          "Check with `comp.lint()` and `renderFrameGrid` before a full `renderVideo` encode.",
          "Run `framefields render \u003cname\u003e --cloud --plan` before a cloud render; it prints workers, time and an estimated charge without spending credits.",
          "Pin `framefields` to an exact version; minor releases have removed component styles."
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.9
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 89,
          "payments": 20,
          "reliability": 61,
          "schema": 77,
          "security": 45,
          "transparency": 66
        },
        "provenanceScore": 26,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install framefields",
        "claudeCode": "/plugin marketplace add gatewai-dev/framefields\n/plugin install framefields@framefields-plugins"
      },
      "letme": {
        "capability": "https://letme.dev/video.generate",
        "tool": "https://letme.dev/framefields"
      },
      "area": "content",
      "provenance": {
        "legalEntity": "",
        "domain": "framefields.dev",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "https://framefields.dev/terms/",
        "privacy": "https://framefields.dev/privacy/",
        "statusPage": "",
        "changelog": "https://github.com/gatewai-dev/framefields/blob/main/packages/framefields/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-11-02",
        "notes": [
          "The terms and privacy policy (effective 26 October 2026) name the operator as Gatewai, with support@gatewai.studio, and give no company form, registration number or address, so no legal entity is recorded.",
          "framefields.dev/.well-known/security.txt answers 403 and /security.txt 404 on 2 November 2026, and the repository has no SECURITY.md.",
          "The Apache-2.0 LICENCE governs the software; the terms cover the hosted dashboard, API keys, credits and AI gateway."
        ],
        "score": 26
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/framefields.json",
      "live": {
        "slug": "framefields",
        "versions": [
          {
            "registry": "npm",
            "name": "framefields",
            "version": "2.14.0",
            "seenAt": "2026-11-08T00:56:29.083655393Z"
          }
        ],
        "githubStars": 511,
        "npmWeekly": 1759,
        "securityTxt": {
          "url": "https://framefields.dev/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-11-07T16:01:38.885146982Z"
        },
        "llmsTxt": {
          "url": "https://framefields.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:32.433545212Z"
        },
        "domain": {
          "domain": "framefields.dev",
          "registered": "2026-10-05",
          "source": "https://pubapi.registry.google/rdap/domain/framefields.dev",
          "checkedAt": "2026-11-01T14:08:18.808881221Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/gatewai-dev/framefields/main/packages/framefields/CHANGELOG.md",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-07T14:20:57.906209072Z",
            "changedAt": "2026-11-05T13:05:10.245744495Z",
            "fingerprint": "af5f463c5012"
          },
          {
            "url": "https://framefields.dev/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:10:10.54763171Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f3bfc7da8075"
          },
          {
            "url": "https://framefields.dev/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:10:12.612574916Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "efdc0e91369e"
          },
          {
            "url": "https://raw.githubusercontent.com/gatewai-dev/framefields/main/LICENCE",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-02T07:26:19.777410289Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "839fbbcddc72"
          }
        ],
        "github": {
          "repo": "gatewai-dev/framefields",
          "checkedAt": "2026-11-02T08:25:13.955020855Z",
          "stars": 505,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-02T08:03:57Z",
          "openIssues": 0,
          "openPRs": 2,
          "issuesOpened90d": 10,
          "issuesClosed90d": 10,
          "prsMerged90d": 65,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 49,
            "failure": 1,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-11-02T08:15:36Z"
          },
          "replies": {
            "sampled": 10,
            "unanswered": 0,
            "medianDays": 0.3
          }
        },
        "updatedAt": "2026-11-08T00:56:29.849071029Z"
      }
    },
    "answer": "framefields scores 53.9 (D) on agent readiness against Magic Hour MCP's 50.7 (D), and leads in 4 of 7 scored categories. Magic Hour MCP leads on schema \u0026 documentation and transparency \u0026 trust.",
    "b": {
      "slug": "magic-hour-mcp",
      "name": "Magic Hour MCP",
      "vendor": "Magic Hour AI, Inc.",
      "vendorUrl": "https://magichour.ai",
      "kind": "mcp",
      "category": "video-generation",
      "summary": "Magic Hour MCP is a hosted server with 50 tools that create and edit images and video, from text-to-video, lip sync and face swap to upscaling, subtitles and music, billed in Magic Hour credits.",
      "url": "https://www.anchorterminal.com/tools/magic-hour-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/magic-hour-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/magic-hour-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/magic-hour-mcp.json",
      "dns": "magic-hour-mcp.grade.anchorterminal.com",
      "repo": "https://github.com/magichourhq/magic-hour-mcp",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.magichour.ai/",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Tool discovery is public. Calls need a Magic Hour API key as a Bearer token (Claude Code, Codex CLI, Manus), or OAuth sign-in through the Claude and ChatGPT connectors.",
      "pricing": "freemium",
      "pricingNotes": "Paid plans from $12 a month billed yearly ($19 monthly) with 144,000 credits a year and API access; one-time credit packs without a subscription. A free account gets 400 sign-up credits, and some public tools work without an account; API access is listed on paid plans (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": 50,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-07"
      },
      "docsUrl": "https://docs.magichour.ai/integration/model-context-protocol",
      "llmsTxt": "https://docs.magichour.ai/llms.txt",
      "registryName": "io.github.magichourhq/magic-hour",
      "capabilities": [
        "video.generate",
        "video.image-to-video",
        "video.edit",
        "image.generate",
        "image.edit",
        "image.upscale",
        "music.generate"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "remote-mcp",
        "api-key",
        "oauth",
        "freemium",
        "status-page",
        "llms-txt",
        "mcp-registry",
        "annotated-tools"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.7,
        "grade": "D",
        "agentReady": false,
        "rank": 1053,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 55,
          "maintenance": 75,
          "payments": 15,
          "reliability": 35,
          "schema": 82,
          "security": 45,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-07"
        },
        "negative": 0,
        "verdict": "Magic Hour's MCP server exposes its whole image and video toolkit, lip sync, face swap, upscaling and text-to-video, with typed schemas built from its OpenAPI file and every tool annotated. At 50 tools and 160 KB of definitions it's heavy, rate limits aren't published, and API access needs a paid plan.",
        "bestFor": "Agents making short-form video and images, from talking photos and ads to lip-synced translations, on a credit plan.",
        "strengths": [
          "50 tools with typed JSON Schema built from the OpenAPI specification",
          "Every tool annotated; deletes marked destructive",
          "A workflow guide and wait tools for long generation jobs",
          "Prompts, uploads and outputs aren't used for training",
          "Tool discovery works without a key"
        ],
        "weaknesses": [
          "About 160 KB of tool definitions",
          "No published rate limits or error docs",
          "API access sits on paid plans",
          "Face swap and head swap tools need care with consent"
        ],
        "agentNotes": [
          "Call get_workflow_guide first to pick the right tool",
          "Use the wait_for_* tools instead of polling project status yourself",
          "Check credits with get_account_info before long video jobs",
          "Only swap faces or voices of people who consented"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.7
          }
        ],
        "editorialScores": {
          "ergonomics": 55,
          "maintenance": 75,
          "payments": 15,
          "reliability": 35,
          "schema": 82,
          "security": 45,
          "transparency": 50
        },
        "provenanceScore": 65,
        "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 magic-hour --transport http https://mcp.magichour.ai/ --header \"Authorization: Bearer $MAGIC_HOUR_API_KEY\"",
        "config": {
          "mcpServers": {
            "magic-hour": {
              "headers": {
                "Authorization": "Bearer YOUR_MAGIC_HOUR_API_KEY"
              },
              "url": "https://mcp.magichour.ai/"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/video.generate",
        "tool": "https://letme.dev/magic-hour-mcp"
      },
      "area": "content",
      "provenance": {
        "legalEntity": "Magic Hour AI, Inc.",
        "domain": "magichour.ai",
        "domainRegistered": "",
        "domainNote": "Not looked up: RDAP isn't requested under the 1 November 2026 rules.",
        "endpointOnVendorDomain": true,
        "terms": "https://magichour.ai/terms-of-service",
        "privacy": "https://magichour.ai/privacy-policy",
        "statusPage": "https://status.magichour.ai",
        "changelog": "https://docs.magichour.ai/changelog",
        "securityTxt": "none",
        "checked": "2026-11-07",
        "notes": [
          "Terms revised 3 October 2026 naming Magic Hour AI, Inc."
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/magic-hour-mcp.json",
      "live": {
        "slug": "magic-hour-mcp",
        "probe": {
          "target": "https://mcp.magichour.ai/",
          "method": "mcp-initialize",
          "lastAt": "2026-11-08T00:55:50.057619643Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 133,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 163,
          "p95ms24h": 240,
          "samples24h": 63,
          "samples30d": 63,
          "days": [
            {
              "date": "2026-11-07",
              "probes": 53,
              "ok": 53
            },
            {
              "date": "2026-11-08",
              "probes": 10,
              "ok": 10
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.magichour.ai",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-08T00:31:36.150831428Z"
        },
        "updatedAt": "2026-11-08T00:55:50.057619643Z"
      }
    },
    "edges": [
      {
        "by": 26,
        "category": "reliability",
        "leads": "framefields",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the local-software lines, because the library and the renderer worker run on the owner's machines. Official npm package `framefields` with Node.js 22 or later stated in the README and getting-started page, though not in `engines` (20). The one public CI workflow still builds, typechecks and tests only the renderer worker on pushes to main, with GPU tests skipped, and the library's own Vitest suite isn't run in CI. Its pass state on 2 November couldn't be read (GitHub's pages and API refused); the last ten runs passed per the 20 October check (10). Seven bug issues filed on 13 October 2026 by an outside reporter were closed with fixes within a day, per the 20 October check. 2.9.3 (31 October) fixed prompted tracking that failed for every npm user since 2.9.0 the same day, because a peer package was never published (18). Changesets changelog with major, minor and patch entries, but 2.7.0, a minor release, removed TextReveal's `track` style, and 2.2.0 removed exports from `@framefields/client-utils`, a companion package (8). Version 2.12.0, but the README badge still says beta, so 5 of 15 (5). 20 + 10 + 18 + 8 + 5 = 61.",
          "b": "Status page at status.magichour.ai, all services online, with maintenance and previous incidents sections; no MCP component read (15). Incident history not read (5). No API rate limits found (0). No retry guidance found; wait_for_* tools poll long jobs (5 of 15). No SLA found (0). Not labelled beta (10). 15 + 5 + 0 + 5 + 0 + 10 = 35."
        },
        "scores": {
          "a": 61,
          "b": 35
        }
      },
      {
        "by": 19,
        "category": "ergonomics",
        "leads": "framefields",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "A library with no tool definitions to load. The four skills are 88 KB of Markdown and load only when a task matches (16). Output can be sized to the check, by one frame, a contact-sheet grid with a step, a frame range, a quality level, and on the worker an LFS include list (16). `comp.lint()` returns `{ severity, code, message, layerId }`, `renderVideo({ qa })` returns measured issues with times, and worker jobs fail with `{ code, message, phase, retryable, hint }` (18). Frames are a function of the frame number; worker jobs take an `idempotencyKey` and a `source.commit` pin, and renders accept an AbortSignal (16). Setup needs Node.js 22, an ES module project and an approved skia-canvas install script; TypeScript only (8).",
          "b": "50 tools totalling about 160 KB of definitions (5). list_saved_items and project getters; limited size controls (10 of 20). Error handling not documented (5 of 20). Every tool annotated, 14 read-only and the three deletes marked destructive (20). Few required inputs and SDKs (Python, Node and others listed in the docs) (15). 5 + 10 + 5 + 20 + 15 = 55."
        },
        "scores": {
          "a": 74,
          "b": 55
        }
      },
      {
        "by": 14,
        "category": "maintenance",
        "leads": "framefields",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Version 2.12.0 on 2 November 2026, the day of the check, per the repository's version bumps; npm wasn't readable (30). 19 version bumps from 2.4.0 to 2.12.0 in the 14 days since 20 October, 42 since 5 October, five of them betas (20). Outside bug reports of 13 October 2026 were fixed and closed within a day, per the 20 October check; issue and pull request reply times weren't re-read, and pull requests #39 to #52 and #64 to #77, all from the vendor's own branches, were merged between 21 October and 2 November (18). It is Gatewai's own package, current with the skills, which follow its version (15). Dependencies are current (zod 4, mediabunny 1.61.6 as a stated minimum), but CI covers only the worker and the GPU backend depends on `webgpu` 0.4, a pre-1.0 package (6). 30 + 20 + 18 + 15 + 6 = 89.",
          "b": "Changelog entries on 3, 4 and 5 November 2026 (30). More than three dated entries in 90 days (20). Changelog and support; issues on the public MCP repository not read (10 of 25). Registry entry io.github.magichourhq/magic-hour (0.1.1, 4 November) (15). No package health read (0). 30 + 20 + 10 + 15 + 0 = 75. 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": 89,
          "b": 75
        }
      },
      {
        "by": 12,
        "category": "transparency",
        "leads": "magic-hour-mcp",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Apache-2.0, an OSI licence, in LICENCE and the npm metadata (30). A privacy policy and terms of service for the hosted parts, effective 26 October 2026, say what the dashboard and gateway collect, that request bodies aren't kept, that output files are kept while the account is open and deleted on request, that content isn't used to train models, and that sharing goes to Cloudflare, fal, Dodo Payments, GitHub and Google. Retention has no periods in days and there is no DPA. NOTICE.md now states that vision models download on first use (18). No deprecation policy; the changelog names removed styles and exports without notice periods (3). The privacy policy names sub-processors and says data may be processed in the United States and Asia, and states no analytics trackers on the site; no telemetry was found in the library's source, which has no statement either way (15). 30 + 18 + 3 + 15 = 66.",
          "b": "Closed service under terms naming Magic Hour AI, Inc., revised 3 October 2026 (15). The privacy policy says prompts, uploads and outputs aren't sold or used to train models, for free and paid accounts, and MCP requests are handled the same way; retention periods aren't given (20 of 30). No deprecation policy found (5 of 20). Subprocessors not read (10 of 20, model providers named in tool docs). 15 + 20 + 5 + 10 = 50."
        },
        "scores": {
          "a": 46,
          "b": 58
        }
      },
      {
        "by": 5,
        "category": "schema",
        "leads": "magic-hour-mcp",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Read as a library. No OpenAPI or other formal contract; the package ships TypeScript declarations for every export and validates with zod, counted as 15 of 25 as for other SDKs (15). llms.txt at framefields.dev and a docs index at /docs/llms.txt with a Markdown version of every page and full and compact text files (10). Authoring rules, a workflow page and four skills say what to do and in what order, cheapest check first (15). Options are typed with enums, such as `quality` (very_low, low, high, very_high) and `codec` (h264, vp9, vp8), and job fields have defaults (12). Examples on every guide page; lint and QA codes, troubleshooting and worker error codes are each catalogued with a fix (14). Semantic versions with a changesets CHANGELOG.md in the repository, 2.4.0 to 2.12.0 added since 20 October; no GitHub releases and no changelog page on the site (11).",
          "b": "All 50 tools read from tools/list with JSON Schema inputs and 29 enums, built from Magic Hour's OpenAPI specification (25). llms.txt (10). Long descriptions with a get_workflow_guide tool for choosing between them (17 of 20). Typed inputs with enums and no free-form objects (15). Worked examples; error responses not documented (5 of 15). Dated changelog with entries on 3 to 5 November 2026 (10 of 15, product changelog rather than MCP versions). 25 + 10 + 17 + 15 + 5 + 10 = 82."
        },
        "scores": {
          "a": 77,
          "b": 82
        }
      },
      {
        "by": 5,
        "category": "payments",
        "leads": "framefields",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Open-source software with a hosted option, so pricing is scored on the hosted parts, as lightpanda's was. Since 2.4.0 (21 October) the package calls Gatewai's AI gateway, billed in prepaid credits, and since 2.11.0 (2 November) it renders on Gatewai's cloud GPUs. No x402, MPP or L402; an empty balance answers HTTP 402 with no machine payment scheme (0). The docs charge credits \"based on model usage plus margin\" at the price in the model catalogue, which framefields.dev/models draws by script, and no cloud GPU rate is published (`--plan` prints only an estimate), so no per-unit price could be read (0). The engine itself still renders locally for free with no account or card, and no free credit for the gateway was found (20). The gateway and cloud need a sign-in at framefields.dev/dashboard, a top-up through Dodo Payments and a key made there (0). 0 + 0 + 20 + 0 = 20.",
          "b": "No machine payment protocol (0). Plan and credit-pack prices public, per-tool credit costs not read (10). 400 sign-up credits with no card, but API access sits on paid plans (5 of 20). A person signs up for a key in a browser (0). Tool discovery is open, but calls need a key (0). 0 + 10 + 5 + 0 = 15."
        },
        "scores": {
          "a": 20,
          "b": 15
        }
      }
    ],
    "facts": [
      {
        "a": "SDK + MCP",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Gatewai",
        "b": "Magic Hour AI, Inc.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://mcp.magichour.ai/",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "50",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.magichourhq/magic-hour",
        "name": "MCP registry"
      },
      {
        "a": "2026-11-02",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "445 stars, 1.1k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "framefields scores 53.9 (D) on agent readiness against Magic Hour MCP's 50.7 (D), and leads in 4 of 7 scored categories. Magic Hour MCP leads on schema \u0026 documentation and transparency \u0026 trust.",
        "question": "Which is better for AI agents, framefields or Magic Hour MCP?"
      },
      {
        "answer": "No hosted endpoint is listed for framefields. Magic Hour MCP has a hosted endpoint at https://mcp.magichour.ai/.",
        "question": "Can an agent call framefields and Magic Hour MCP without installing anything?"
      },
      {
        "answer": "framefields is open source (Apache-2.0). No open-source release is listed for Magic Hour MCP.",
        "question": "Are framefields and Magic Hour MCP open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 61 against 35",
          "Agent ergonomics, 74 against 55",
          "Payments \u0026 pricing, 20 against 15",
          "Maintenance \u0026 community, 89 against 75"
        ],
        "also": [
          "No key needed to call it",
          "Free to start without a card",
          "Open source"
        ],
        "goodFor": "Coding agents that write motion graphics, data stories, title cards and 3D product shots as code and render them locally or on their own GPU.",
        "slug": "framefields",
        "watchFor": "First published on 5 October 2026 and still badged beta at 2.12.0"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 82 against 77",
          "Transparency \u0026 trust, 58 against 46"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "No incidents deducted, where framefields loses 5 points for them"
        ],
        "goodFor": "Agents making short-form video and images, from talking photos and ads to lip-synced translations, on a credit plan.",
        "slug": "magic-hour-mcp",
        "watchFor": "About 160 KB of tool definitions"
      }
    ],
    "history": {
      "framefields": [
        {
          "causes": [
            "terms",
            "product",
            "event"
          ],
          "date": "2026-11-02",
          "delta": -7.4,
          "from": 61.3,
          "fromGrade": "C",
          "to": 53.9,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-30",
          "delta": -0.2,
          "from": 61.5,
          "fromGrade": "C",
          "to": 61.3,
          "toGrade": "C"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 61.3,
          "fromGrade": "C",
          "to": 61.5,
          "toGrade": "C"
        }
      ],
      "magic-hour-mcp": null
    },
    "job": {
      "capability": "video.generate",
      "name": "Video generation"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/alibaba-wan-vs-framefields.json",
        "title": "Alibaba Wan (Model Studio) vs framefields",
        "url": "https://www.anchorterminal.com/compare/alibaba-wan-vs-framefields"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alibaba-wan-vs-magic-hour-mcp.json",
        "title": "Alibaba Wan (Model Studio) vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/alibaba-wan-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fal-video-vs-framefields.json",
        "title": "fal video models vs framefields",
        "url": "https://www.anchorterminal.com/compare/fal-video-vs-framefields"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fal-video-vs-magic-hour-mcp.json",
        "title": "fal video models vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/fal-video-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-google-veo.json",
        "title": "framefields vs Google Veo",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-google-veo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-higgsfield.json",
        "title": "framefields vs Higgsfield API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-higgsfield"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-hyperframes.json",
        "title": "framefields vs HyperFrames",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-hyperframes"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-kling.json",
        "title": "framefields vs Kling AI API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-kling"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-luma.json",
        "title": "framefields vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-minimax-video.json",
        "title": "framefields vs MiniMax Video API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-minimax-video"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-openai-sora.json",
        "title": "framefields vs OpenAI Sora API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-openai-sora"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-pika.json",
        "title": "framefields vs Pika API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-pika"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-pixverse.json",
        "title": "framefields vs PixVerse API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-pixverse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-popcraft-mcp.json",
        "title": "framefields vs Popcraft MCP",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-popcraft-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-replicate-video.json",
        "title": "framefields vs Replicate video models",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-replicate-video"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-runway.json",
        "title": "framefields vs Runway API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-runway"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-seedance-on-byteplus-modelark.json",
        "title": "framefields vs Seedance on BytePlus ModelArk",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-seedance-on-byteplus-modelark"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-vidu.json",
        "title": "framefields vs Vidu API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-vidu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-veo-vs-magic-hour-mcp.json",
        "title": "Google Veo vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/google-veo-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/higgsfield-vs-magic-hour-mcp.json",
        "title": "Higgsfield API vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/higgsfield-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperframes-vs-magic-hour-mcp.json",
        "title": "HyperFrames vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/hyperframes-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kling-vs-magic-hour-mcp.json",
        "title": "Kling AI API vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/kling-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-magic-hour-mcp.json",
        "title": "Luma AI API vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/luma-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-minimax-video.json",
        "title": "Magic Hour MCP vs MiniMax Video API",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-minimax-video"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-openai-sora.json",
        "title": "Magic Hour MCP vs OpenAI Sora API",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-openai-sora"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-pika.json",
        "title": "Magic Hour MCP vs Pika API",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-pika"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-pixverse.json",
        "title": "Magic Hour MCP vs PixVerse API",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-pixverse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-popcraft-mcp.json",
        "title": "Magic Hour MCP vs Popcraft MCP",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-popcraft-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-replicate-video.json",
        "title": "Magic Hour MCP vs Replicate video models",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-replicate-video"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-runway.json",
        "title": "Magic Hour MCP vs Runway API",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-runway"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-seedance-on-byteplus-modelark.json",
        "title": "Magic Hour MCP vs Seedance on BytePlus ModelArk",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-seedance-on-byteplus-modelark"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-vidu.json",
        "title": "Magic Hour MCP vs Vidu API",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-vidu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clueso-video-vs-framefields.json",
        "title": "Clueso vs framefields",
        "url": "https://www.anchorterminal.com/compare/clueso-video-vs-framefields"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clueso-video-vs-magic-hour-mcp.json",
        "title": "Clueso vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/clueso-video-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-sync-labs-mcp.json",
        "title": "framefields vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-sync-labs-mcp.json",
        "title": "Magic Hour MCP vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-sync-labs-mcp"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 26,
        "edge": "framefields",
        "framefields": 61,
        "key": "reliability",
        "magic-hour-mcp": 35,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 5,
        "edge": "magic-hour-mcp",
        "framefields": 77,
        "key": "schema",
        "magic-hour-mcp": 82,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 19,
        "edge": "framefields",
        "framefields": 74,
        "key": "ergonomics",
        "magic-hour-mcp": 55,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 0,
        "edge": "",
        "framefields": 45,
        "key": "security",
        "magic-hour-mcp": 45,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 5,
        "edge": "framefields",
        "framefields": 20,
        "key": "payments",
        "magic-hour-mcp": 15,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 14,
        "edge": "framefields",
        "framefields": 89,
        "key": "maintenance",
        "magic-hour-mcp": 75,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 12,
        "edge": "magic-hour-mcp",
        "framefields": 46,
        "key": "transparency",
        "magic-hour-mcp": 58,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "framefields scores 53.9 (D) on agent readiness against Magic Hour MCP's 50.7 (D), and leads in 4 of 7 scored categories. Magic Hour MCP leads on schema \u0026 documentation and transparency \u0026 trust. Both do video generation.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "framefields": "A free Apache-2.0 library that renders video from TypeScript on the GPU, with lint and QA codes an agent can act on. It ships several versions a week, a minor release removed a documented style without notice, its paid AI gateway and cloud prices aren't readable, and its Claude Code install names a directory entry that doesn't exist.",
      "magic-hour-mcp": "Magic Hour's MCP server exposes its whole image and video toolkit, lip sync, face swap, upscaling and text-to-video, with typed schemas built from its OpenAPI file and every tool annotated. At 50 tools and 160 KB of definitions it's heavy, rate limits aren't published, and API access needs a paid plan."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/framefields-vs-magic-hour-mcp",
    "json": "https://www.anchorterminal.com/compare/framefields-vs-magic-hour-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/framefields-vs-magic-hour-mcp.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/framefields-vs-magic-hour-mcp.min.md"
  },
  "markdown": "framefields scores 53.9 (D) on agent readiness against Magic Hour MCP's 50.7 (D), and leads in 4 of 7 scored categories. Magic Hour MCP leads on schema \u0026 documentation and transparency \u0026 trust. Both do video generation.\n\n- framefields: grade D, 53.9/100, rank #930 of 1510. Markdown https://www.anchorterminal.com/tools/framefields.md · JSON https://www.anchorterminal.com/api/v1/tools/framefields.json\n- Magic Hour MCP: grade D, 50.7/100, rank #1053 of 1510. Markdown https://www.anchorterminal.com/tools/magic-hour-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/magic-hour-mcp.json\n- Best video generation for AI agents: https://www.anchorterminal.com/best/video-generation/index.md\n- All 183 video comparisons: https://www.anchorterminal.com/compare/video-generation/index.md\n\n## Which one, for what\n\n### framefields (D)\n\nGood for: Coding agents that write motion graphics, data stories, title cards and 3D product shots as code and render them locally or on their own GPU.\n\nAhead on:\n- Reliability, 61 against 35\n- Agent ergonomics, 74 against 55\n- Payments \u0026 pricing, 20 against 15\n- Maintenance \u0026 community, 89 against 75\n\nAlso in its favour:\n- No key needed to call it\n- Free to start without a card\n- Open source\n\nWatch for: First published on 5 October 2026 and still badged beta at 2.12.0\n\n### Magic Hour MCP (D)\n\nGood for: Agents making short-form video and images, from talking photos and ads to lip-synced translations, on a credit plan.\n\nAhead on:\n- Schema \u0026 documentation, 82 against 77\n- Transparency \u0026 trust, 58 against 46\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- No incidents deducted, where framefields loses 5 points for them\n\nWatch for: About 160 KB of tool definitions\n\n\n## Why the edge\n\n### Reliability: framefields +26\n\n- framefields (61): Read with the local-software lines, because the library and the renderer worker run on the owner's machines. Official npm package `framefields` with Node.js 22 or later stated in the README and getting-started page, though not in `engines` (20). The one public CI workflow still builds, typechecks and tests only the renderer worker on pushes to main, with GPU tests skipped, and the library's own Vitest suite isn't run in CI. Its pass state on 2 November couldn't be read (GitHub's pages and API refused); the last ten runs passed per the 20 October check (10). Seven bug issues filed on 13 October 2026 by an outside reporter were closed with fixes within a day, per the 20 October check. 2.9.3 (31 October) fixed prompted tracking that failed for every npm user since 2.9.0 the same day, because a peer package was never published (18). Changesets changelog with major, minor and patch entries, but 2.7.0, a minor release, removed TextReveal's `track` style, and 2.2.0 removed exports from `@framefields/client-utils`, a companion package (8). Version 2.12.0, but the README badge still says beta, so 5 of 15 (5). 20 + 10 + 18 + 8 + 5 = 61.\n- Magic Hour MCP (35): Status page at status.magichour.ai, all services online, with maintenance and previous incidents sections; no MCP component read (15). Incident history not read (5). No API rate limits found (0). No retry guidance found; wait_for_* tools poll long jobs (5 of 15). No SLA found (0). Not labelled beta (10). 15 + 5 + 0 + 5 + 0 + 10 = 35.\n\n### Agent ergonomics: framefields +19\n\n- framefields (74): A library with no tool definitions to load. The four skills are 88 KB of Markdown and load only when a task matches (16). Output can be sized to the check, by one frame, a contact-sheet grid with a step, a frame range, a quality level, and on the worker an LFS include list (16). `comp.lint()` returns `{ severity, code, message, layerId }`, `renderVideo({ qa })` returns measured issues with times, and worker jobs fail with `{ code, message, phase, retryable, hint }` (18). Frames are a function of the frame number; worker jobs take an `idempotencyKey` and a `source.commit` pin, and renders accept an AbortSignal (16). Setup needs Node.js 22, an ES module project and an approved skia-canvas install script; TypeScript only (8).\n- Magic Hour MCP (55): 50 tools totalling about 160 KB of definitions (5). list_saved_items and project getters; limited size controls (10 of 20). Error handling not documented (5 of 20). Every tool annotated, 14 read-only and the three deletes marked destructive (20). Few required inputs and SDKs (Python, Node and others listed in the docs) (15). 5 + 10 + 5 + 20 + 15 = 55.\n\n### Maintenance \u0026 community: framefields +14\n\n- framefields (89): Version 2.12.0 on 2 November 2026, the day of the check, per the repository's version bumps; npm wasn't readable (30). 19 version bumps from 2.4.0 to 2.12.0 in the 14 days since 20 October, 42 since 5 October, five of them betas (20). Outside bug reports of 13 October 2026 were fixed and closed within a day, per the 20 October check; issue and pull request reply times weren't re-read, and pull requests #39 to #52 and #64 to #77, all from the vendor's own branches, were merged between 21 October and 2 November (18). It is Gatewai's own package, current with the skills, which follow its version (15). Dependencies are current (zod 4, mediabunny 1.61.6 as a stated minimum), but CI covers only the worker and the GPU backend depends on `webgpu` 0.4, a pre-1.0 package (6). 30 + 20 + 18 + 15 + 6 = 89.\n- Magic Hour MCP (75): Changelog entries on 3, 4 and 5 November 2026 (30). More than three dated entries in 90 days (20). Changelog and support; issues on the public MCP repository not read (10 of 25). Registry entry io.github.magichourhq/magic-hour (0.1.1, 4 November) (15). No package health read (0). 30 + 20 + 10 + 15 + 0 = 75. 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### Transparency \u0026 trust: Magic Hour MCP +12\n\n- framefields (46): Apache-2.0, an OSI licence, in LICENCE and the npm metadata (30). A privacy policy and terms of service for the hosted parts, effective 26 October 2026, say what the dashboard and gateway collect, that request bodies aren't kept, that output files are kept while the account is open and deleted on request, that content isn't used to train models, and that sharing goes to Cloudflare, fal, Dodo Payments, GitHub and Google. Retention has no periods in days and there is no DPA. NOTICE.md now states that vision models download on first use (18). No deprecation policy; the changelog names removed styles and exports without notice periods (3). The privacy policy names sub-processors and says data may be processed in the United States and Asia, and states no analytics trackers on the site; no telemetry was found in the library's source, which has no statement either way (15). 30 + 18 + 3 + 15 = 66.\n- Magic Hour MCP (58): Closed service under terms naming Magic Hour AI, Inc., revised 3 October 2026 (15). The privacy policy says prompts, uploads and outputs aren't sold or used to train models, for free and paid accounts, and MCP requests are handled the same way; retention periods aren't given (20 of 30). No deprecation policy found (5 of 20). Subprocessors not read (10 of 20, model providers named in tool docs). 15 + 20 + 5 + 10 = 50.\n\n### Schema \u0026 documentation: Magic Hour MCP +5\n\n- framefields (77): Read as a library. No OpenAPI or other formal contract; the package ships TypeScript declarations for every export and validates with zod, counted as 15 of 25 as for other SDKs (15). llms.txt at framefields.dev and a docs index at /docs/llms.txt with a Markdown version of every page and full and compact text files (10). Authoring rules, a workflow page and four skills say what to do and in what order, cheapest check first (15). Options are typed with enums, such as `quality` (very_low, low, high, very_high) and `codec` (h264, vp9, vp8), and job fields have defaults (12). Examples on every guide page; lint and QA codes, troubleshooting and worker error codes are each catalogued with a fix (14). Semantic versions with a changesets CHANGELOG.md in the repository, 2.4.0 to 2.12.0 added since 20 October; no GitHub releases and no changelog page on the site (11).\n- Magic Hour MCP (82): All 50 tools read from tools/list with JSON Schema inputs and 29 enums, built from Magic Hour's OpenAPI specification (25). llms.txt (10). Long descriptions with a get_workflow_guide tool for choosing between them (17 of 20). Typed inputs with enums and no free-form objects (15). Worked examples; error responses not documented (5 of 15). Dated changelog with entries on 3 to 5 November 2026 (10 of 15, product changelog rather than MCP versions). 25 + 10 + 17 + 15 + 5 + 10 = 82.\n\n### Payments \u0026 pricing: framefields +5\n\n- framefields (20): Open-source software with a hosted option, so pricing is scored on the hosted parts, as lightpanda's was. Since 2.4.0 (21 October) the package calls Gatewai's AI gateway, billed in prepaid credits, and since 2.11.0 (2 November) it renders on Gatewai's cloud GPUs. No x402, MPP or L402; an empty balance answers HTTP 402 with no machine payment scheme (0). The docs charge credits \"based on model usage plus margin\" at the price in the model catalogue, which framefields.dev/models draws by script, and no cloud GPU rate is published (`--plan` prints only an estimate), so no per-unit price could be read (0). The engine itself still renders locally for free with no account or card, and no free credit for the gateway was found (20). The gateway and cloud need a sign-in at framefields.dev/dashboard, a top-up through Dodo Payments and a key made there (0). 0 + 0 + 20 + 0 = 20.\n- Magic Hour MCP (15): No machine payment protocol (0). Plan and credit-pack prices public, per-tool credit costs not read (10). 400 sign-up credits with no card, but API access sits on paid plans (5 of 20). A person signs up for a key in a browser (0). Tool discovery is open, but calls need a key (0). 0 + 10 + 5 + 0 = 15.\n\n## Score by category\n\n| Category | Weight | framefields | Magic Hour MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 61 | 35 | framefields +26 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 82 | Magic Hour MCP +5 |\n| Agent ergonomics | 13% (16.2 this run) | 74 | 55 | framefields +19 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 45 | even |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 15 | framefields +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 89 | 75 | framefields +14 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 46 | 58 | Magic Hour MCP +12 |\n| Negative events | ≤15 | -5 | 0 | |\n| **Total** | | **53.9 · D** | **50.7 · D** | |\n\n## Facts side by side\n\n| Fact | framefields | Magic Hour MCP |\n| --- | --- | --- |\n| Kind | SDK + MCP | MCP server |\n| Vendor | Gatewai | Magic Hour AI, Inc. |\n| Hosted endpoint | no (local only) | `https://mcp.magichour.ai/` |\n| Transports |  | Streamable HTTP |\n| Auth | None | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 | none |\n| Tools exposed | none | 50 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.magichourhq/magic-hour` |\n| Last release | 2026-11-02 | none |\n| Popularity | 445 stars, 1.1k npm/wk | none |\n| Agent reviews | 3.5/5 (4) | none |\n\n## How the scores have moved\n\n### framefields\n\n- -7.4 on 2 November 2026 (C to D): terms, product, negative event\n- -0.2 on 30 October 2026: checklist\n- +0.2 on 27 October 2026: checklist\n\n### Magic Hour MCP\n\nNo score change since it was listed.\n\n## Verdicts\n\n**framefields.** A free Apache-2.0 library that renders video from TypeScript on the GPU, with lint and QA codes an agent can act on. It ships several versions a week, a minor release removed a documented style without notice, its paid AI gateway and cloud prices aren't readable, and its Claude Code install names a directory entry that doesn't exist.\n\n**Magic Hour MCP.** Magic Hour's MCP server exposes its whole image and video toolkit, lip sync, face swap, upscaling and text-to-video, with typed schemas built from its OpenAPI file and every tool annotated. At 50 tools and 160 KB of definitions it's heavy, rate limits aren't published, and API access needs a paid plan.\n\n## Before you call either\n\n### framefields\n\n1. Add the plugin with `/plugin marketplace add gatewai-dev/framefields` first; the official-directory install was not found on 2 November 2026.\n2. Approve only the skia-canvas install script, as the getting-started page shows, or imports fail with a missing `skia.node`.\n3. Check with `comp.lint()` and `renderFrameGrid` before a full `renderVideo` encode.\n4. Run `framefields render \u003cname\u003e --cloud --plan` before a cloud render; it prints workers, time and an estimated charge without spending credits.\n5. Pin `framefields` to an exact version; minor releases have removed component styles.\n\n### Magic Hour MCP\n\n1. Call get_workflow_guide first to pick the right tool\n2. Use the wait_for_* tools instead of polling project status yourself\n3. Check credits with get_account_info before long video jobs\n4. Only swap faces or voices of people who consented\n\n## Questions\n\n### Which is better for AI agents, framefields or Magic Hour MCP?\n\nframefields scores 53.9 (D) on agent readiness against Magic Hour MCP's 50.7 (D), and leads in 4 of 7 scored categories. Magic Hour MCP leads on schema \u0026 documentation and transparency \u0026 trust.\n\n### Can an agent call framefields and Magic Hour MCP without installing anything?\n\nNo hosted endpoint is listed for framefields. Magic Hour MCP has a hosted endpoint at https://mcp.magichour.ai/.\n\n### Are framefields and Magic Hour MCP open source?\n\nframefields is open source (Apache-2.0). No open-source release is listed for Magic Hour MCP.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/framefields-vs-magic-hour-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/framefields-vs-magic-hour-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"framefields\", \"b\": \"magic-hour-mcp\"}`. From a terminal: `anchor compare framefields magic-hour-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/framefields.json and https://www.anchorterminal.com/api/v1/tools/magic-hour-mcp.json\n\n## Other comparisons with framefields or Magic Hour MCP\n\n- [Alibaba Wan (Model Studio) vs framefields](https://www.anchorterminal.com/compare/alibaba-wan-vs-framefields.md)\n- [Alibaba Wan (Model Studio) vs Magic Hour MCP](https://www.anchorterminal.com/compare/alibaba-wan-vs-magic-hour-mcp.md)\n- [fal video models vs framefields](https://www.anchorterminal.com/compare/fal-video-vs-framefields.md)\n- [fal video models vs Magic Hour MCP](https://www.anchorterminal.com/compare/fal-video-vs-magic-hour-mcp.md)\n- [framefields vs Google Veo](https://www.anchorterminal.com/compare/framefields-vs-google-veo.md)\n- [framefields vs Higgsfield API](https://www.anchorterminal.com/compare/framefields-vs-higgsfield.md)\n- [framefields vs HyperFrames](https://www.anchorterminal.com/compare/framefields-vs-hyperframes.md)\n- [framefields vs Kling AI API](https://www.anchorterminal.com/compare/framefields-vs-kling.md)\n- [framefields vs Luma AI API](https://www.anchorterminal.com/compare/framefields-vs-luma.md)\n- [framefields vs MiniMax Video API](https://www.anchorterminal.com/compare/framefields-vs-minimax-video.md)\n- [framefields vs OpenAI Sora API](https://www.anchorterminal.com/compare/framefields-vs-openai-sora.md)\n- [framefields vs Pika API](https://www.anchorterminal.com/compare/framefields-vs-pika.md)\n- [framefields vs PixVerse API](https://www.anchorterminal.com/compare/framefields-vs-pixverse.md)\n- [framefields vs Popcraft MCP](https://www.anchorterminal.com/compare/framefields-vs-popcraft-mcp.md)\n- [framefields vs Replicate video models](https://www.anchorterminal.com/compare/framefields-vs-replicate-video.md)\n- [framefields vs Runway API](https://www.anchorterminal.com/compare/framefields-vs-runway.md)\n- [framefields vs Seedance on BytePlus ModelArk](https://www.anchorterminal.com/compare/framefields-vs-seedance-on-byteplus-modelark.md)\n- [framefields vs Vidu API](https://www.anchorterminal.com/compare/framefields-vs-vidu.md)\n- [Google Veo vs Magic Hour MCP](https://www.anchorterminal.com/compare/google-veo-vs-magic-hour-mcp.md)\n- [Higgsfield API vs Magic Hour MCP](https://www.anchorterminal.com/compare/higgsfield-vs-magic-hour-mcp.md)\n- [HyperFrames vs Magic Hour MCP](https://www.anchorterminal.com/compare/hyperframes-vs-magic-hour-mcp.md)\n- [Kling AI API vs Magic Hour MCP](https://www.anchorterminal.com/compare/kling-vs-magic-hour-mcp.md)\n- [Luma AI API vs Magic Hour MCP](https://www.anchorterminal.com/compare/luma-vs-magic-hour-mcp.md)\n- [Magic Hour MCP vs MiniMax Video API](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-minimax-video.md)\n- [Magic Hour MCP vs OpenAI Sora API](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-openai-sora.md)\n- [Magic Hour MCP vs Pika API](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-pika.md)\n- [Magic Hour MCP vs PixVerse API](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-pixverse.md)\n- [Magic Hour MCP vs Popcraft MCP](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-popcraft-mcp.md)\n- [Magic Hour MCP vs Replicate video models](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-replicate-video.md)\n- [Magic Hour MCP vs Runway API](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-runway.md)\n- [Magic Hour MCP vs Seedance on BytePlus ModelArk](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-seedance-on-byteplus-modelark.md)\n- [Magic Hour MCP vs Vidu API](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-vidu.md)\n- [Clueso vs framefields](https://www.anchorterminal.com/compare/clueso-video-vs-framefields.md)\n- [Clueso vs Magic Hour MCP](https://www.anchorterminal.com/compare/clueso-video-vs-magic-hour-mcp.md)\n- [framefields vs sync. labs MCP server](https://www.anchorterminal.com/compare/framefields-vs-sync-labs-mcp.md)\n- [Magic Hour MCP vs sync. labs MCP server](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-sync-labs-mcp.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-08",
    "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": "framefields vs Magic Hour MCP",
        "url": ""
      }
    ],
    "description": "framefields scores 53.9 (D) to Magic Hour MCP's 50.7 (D) for video generation. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "framefields D 53.9",
      "Magic Hour MCP D 50.7",
      "scores"
    ],
    "h1": "framefields vs Magic Hour MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/framefields-vs-magic-hour-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "framefields vs Magic Hour MCP for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/framefields-vs-magic-hour-mcp"
  },
  "tokens": {
    "markdown": 4800,
    "slim": 2680
  },
  "version": 1
}
