{
  "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 sync. labs MCP server's 51.5 (D), and leads in 5 of 7 scored categories. sync. labs MCP server leads on payments \u0026 pricing.",
    "b": {
      "slug": "sync-labs-mcp",
      "name": "sync. labs MCP server",
      "vendor": "Synchronicity Labs (sync.)",
      "vendorUrl": "https://sync.so",
      "kind": "mcp",
      "category": "video-generation",
      "summary": "sync. labs' open-source MCP server lets an agent lip-sync video to new audio or a script, dub it into other languages with matching lips, and manage generations, hosted with OAuth for web clients or run locally with an API key.",
      "url": "https://www.anchorterminal.com/tools/sync-labs-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/sync-labs-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sync-labs-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sync-labs-mcp.json",
      "dns": "sync-labs-mcp.grade.anchorterminal.com",
      "repo": "https://github.com/synchronicity-labs/mcp-server",
      "license": "MIT",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.sync.so/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "OAuth for Claude Web and ChatGPT, tied to the active sync. organisation. Local and editor setups run @sync.so/mcp-server with a SYNC_API_KEY.",
      "pricing": "paid",
      "pricingNotes": "Plans from $5 a month (hobbyist) to $49 and up, plus usage per second of video (for example $5 a month plus $0.05 a second); dubbing audio $0.10 a second, text-to-speech $0.004 a second. A free try for videos up to a minute (checked 2026-11-07).",
      "priceSummary": "Paid",
      "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://sync.so/docs/plugins-and-extensions/mcp-server",
      "llmsTxt": "https://sync.so/llms.txt",
      "registryName": "io.github.synchronicity-labs/mcp-server",
      "capabilities": [
        "video.edit",
        "video.audio",
        "translation.dubbing"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "remote-mcp",
        "oauth",
        "api-key",
        "paid",
        "status-page",
        "open-source",
        "llms-txt",
        "mcp-registry"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 51.5,
        "grade": "D",
        "agentReady": false,
        "rank": 1026,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 10,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 55,
          "maintenance": 75,
          "payments": 30,
          "reliability": 43,
          "schema": 81,
          "security": 38,
          "transparency": 44
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-07"
        },
        "negative": 0,
        "verdict": "sync. labs' MCP server is open source, generated from its API spec with workflow tools on top, and released often, with clear per-second prices for lip sync and dubbing. Security and data handling are thinly documented, and there's no read-only mode.",
        "bestFor": "Agents that lip-sync or dub video into other languages.",
        "strengths": [
          "Open source under MIT, with tests and CI",
          "Tools generated from the public API spec, so they track the API",
          "Per-second prices published",
          "OAuth for web clients, API key locally",
          "Frequent tagged releases"
        ],
        "weaknesses": [
          "No read-only mode",
          "Data handling and security programme not documented in the pages read",
          "Only a short free try"
        ],
        "agentNotes": [
          "Get an estimate before long generations",
          "Dub or lip-sync only voices and faces the user has the right to use",
          "Check the active organisation before connecting with OAuth"
        ],
        "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": 51.5
          }
        ],
        "editorialScores": {
          "ergonomics": 55,
          "maintenance": 75,
          "payments": 30,
          "reliability": 43,
          "schema": 81,
          "security": 38,
          "transparency": 40
        },
        "provenanceScore": 48,
        "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 sync-labs --transport http https://mcp.sync.so/mcp",
        "config": {
          "mcpServers": {
            "sync-labs": {
              "url": "https://mcp.sync.so/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/video.edit",
        "tool": "https://letme.dev/sync-labs-mcp"
      },
      "area": "content",
      "unitPrices": [
        {
          "item": "Lip sync video (hobbyist)",
          "unit": "video-second",
          "usd": 0.05,
          "note": "Plus $5 a month plan"
        },
        {
          "item": "Dubbing audio",
          "unit": "video-second",
          "usd": 0.1
        }
      ],
      "provenance": {
        "legalEntity": "Synchronicity Labs",
        "domain": "sync.so",
        "domainRegistered": "",
        "domainNote": "Not looked up: RDAP isn't requested under the 1 November 2026 rules.",
        "endpointOnVendorDomain": true,
        "terms": "",
        "privacy": "",
        "statusPage": "https://status.sync.so",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-07",
        "notes": [
          "The repository is MIT. Terms and privacy weren't read."
        ],
        "score": 48
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/sync-labs-mcp.json",
      "live": {
        "slug": "sync-labs-mcp",
        "probe": {
          "target": "https://mcp.sync.so/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-11-08T00:56:07.887985939Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 321,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 362,
          "p95ms24h": 437,
          "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.sync.so",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-08T00:32:26.812315776Z"
        },
        "updatedAt": "2026-11-08T00:56:07.887985939Z"
      }
    },
    "edges": [
      {
        "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": "A generated catalogue filtered by client profile, curated for ChatGPT (15). Project history and estimates (12 of 20). Recovery tools; errors not documented (8 of 20). Annotations not read (5 of 20). OAuth or a key, npm package and library use (15). 15 + 12 + 8 + 5 + 15 = 55."
        },
        "scores": {
          "a": 74,
          "b": 55
        }
      },
      {
        "by": 18,
        "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.sync.so with maintenance and previous incidents (20). History not read (5). No MCP limits found (0). The source has abort-signal handling and recovery guidance for long jobs (8 of 15). No SLA found (0). Version 0.2.4, not labelled beta (10). 20 + 5 + 0 + 8 + 0 + 10 = 43."
        },
        "scores": {
          "a": 61,
          "b": 43
        }
      },
      {
        "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": "v0.2.4 and commits on 7 November 2026 (30). Three tags in recent weeks (20). Issues not read (0). Official registry entry io.github.synchronicity-labs/mcp-server (15). CI with verify, publish and review workflows (10). 30 + 20 + 0 + 15 + 10 = 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": 10,
        "category": "payments",
        "leads": "sync-labs-mcp",
        "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). Per-second prices published (20). A free try for short videos (10 of 20). A person signs up (0). 0 + 20 + 10 + 0 = 30."
        },
        "scores": {
          "a": 20,
          "b": 30
        }
      },
      {
        "by": 7,
        "category": "security",
        "leads": "framefields",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Read with the framework lines. The library takes no credentials for local rendering. The optional AI gateway and cloud renders take a `FRAMEFIELDS_API_KEY` from the dashboard, stored hashed with a per-key monthly spending limit, and the self-hosted worker uses one bearer key for all jobs plus a git token (15). The worker refuses repositories outside a required `FF_REPO_ALLOWLIST`, removes secrets from the environment before project code runs, shares node_modules read-only, and its README warns that allowed repositories' code runs in the worker's process. The getting-started page has the owner deny five of six dependency install scripts (12). It renders the owner's assets and returns no third-party text, apart from preview notes a person writes for the agent (10). Worker results report the rendered commit SHA, timings and GPU; no audit log (5). No SECURITY.md in the repository and no security.txt on 2 November (403 at /.well-known/, 404 at the root); OSV holds no advisory for `framefields`. npm provenance per the 20 October check (none on 2.3.2), not re-read. Vision models are fetched from pinned Hugging Face revisions with a SHA-256 check (3).",
          "b": "OAuth per organisation, or an API key in the environment (22 of 30). No read-only mode (3 of 20). Media in and out, no third-party text (10). No audit log found (0). No security programme found (3 of 20). 22 + 3 + 10 + 0 + 3 = 38."
        },
        "scores": {
          "a": 45,
          "b": 38
        }
      }
    ],
    "facts": [
      {
        "a": "SDK + MCP",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Gatewai",
        "b": "Synchronicity Labs (sync.)",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://mcp.sync.so/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.synchronicity-labs/mcp-server",
        "name": "MCP registry"
      },
      {
        "a": "2026-11-02",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "not read yet",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "not read yet",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "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 sync. labs MCP server's 51.5 (D), and leads in 5 of 7 scored categories. sync. labs MCP server leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, framefields or sync. labs MCP server?"
      },
      {
        "answer": "No hosted endpoint is listed for framefields. sync. labs MCP server has a hosted endpoint at https://mcp.sync.so/mcp.",
        "question": "Can an agent call framefields and sync. labs MCP server without installing anything?"
      },
      {
        "answer": "Yes. framefields is open source (Apache-2.0). sync. labs MCP server is open source (MIT).",
        "question": "Are framefields and sync. labs MCP server open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 61 against 43",
          "Agent ergonomics, 74 against 55",
          "Security \u0026 auth, 45 against 38",
          "Maintenance \u0026 community, 89 against 75"
        ],
        "also": [
          "No key needed to call it",
          "Free to start without a card"
        ],
        "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": [
          "Payments \u0026 pricing, 30 against 20"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "No incidents deducted, where framefields loses 5 points for them"
        ],
        "goodFor": "Agents that lip-sync or dub video into other languages.",
        "slug": "sync-labs-mcp",
        "watchFor": "No read-only mode"
      }
    ],
    "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"
        }
      ],
      "sync-labs-mcp": null
    },
    "job": {
      "capability": "video.edit",
      "name": "Video edit"
    },
    "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/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/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-magic-hour-mcp.json",
        "title": "framefields vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-magic-hour-mcp"
      },
      {
        "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/alibaba-wan-vs-sync-labs-mcp.json",
        "title": "Alibaba Wan (Model Studio) vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/alibaba-wan-vs-sync-labs-mcp"
      },
      {
        "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-sync-labs-mcp.json",
        "title": "Clueso vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/clueso-video-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fal-video-vs-sync-labs-mcp.json",
        "title": "fal video models vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/fal-video-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/higgsfield-vs-sync-labs-mcp.json",
        "title": "Higgsfield API vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/higgsfield-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kling-vs-sync-labs-mcp.json",
        "title": "Kling AI API vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/kling-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-sync-labs-mcp.json",
        "title": "Luma AI API vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/luma-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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-video-vs-sync-labs-mcp.json",
        "title": "MiniMax Video API vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/minimax-video-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pika-vs-sync-labs-mcp.json",
        "title": "Pika API vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/pika-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pixverse-vs-sync-labs-mcp.json",
        "title": "PixVerse API vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/pixverse-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/replicate-video-vs-sync-labs-mcp.json",
        "title": "Replicate video models vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/replicate-video-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/runway-vs-sync-labs-mcp.json",
        "title": "Runway API vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/runway-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/seedance-on-byteplus-modelark-vs-sync-labs-mcp.json",
        "title": "Seedance on BytePlus ModelArk vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/seedance-on-byteplus-modelark-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-veo-vs-sync-labs-mcp.json",
        "title": "Google Veo vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/google-veo-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-sora-vs-sync-labs-mcp.json",
        "title": "OpenAI Sora API vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/openai-sora-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sync-labs-mcp-vs-vidu.json",
        "title": "sync. labs MCP server vs Vidu API",
        "url": "https://www.anchorterminal.com/compare/sync-labs-mcp-vs-vidu"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 18,
        "edge": "framefields",
        "framefields": 61,
        "key": "reliability",
        "name": "Reliability",
        "sync-labs-mcp": 43,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "sync-labs-mcp",
        "framefields": 77,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "sync-labs-mcp": 81,
        "weight": 13
      },
      {
        "by": 19,
        "edge": "framefields",
        "framefields": 74,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "sync-labs-mcp": 55,
        "weight": 13
      },
      {
        "by": 7,
        "edge": "framefields",
        "framefields": 45,
        "key": "security",
        "name": "Security \u0026 auth",
        "sync-labs-mcp": 38,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "sync-labs-mcp",
        "framefields": 20,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "sync-labs-mcp": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 14,
        "edge": "framefields",
        "framefields": 89,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "sync-labs-mcp": 75,
        "weight": 7
      },
      {
        "by": 2,
        "edge": "framefields",
        "framefields": 46,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "sync-labs-mcp": 44,
        "weight": 7
      }
    ],
    "summary": "framefields scores 53.9 (D) on agent readiness against sync. labs MCP server's 51.5 (D), and leads in 5 of 7 scored categories. sync. labs MCP server leads on payments \u0026 pricing. Both do video edit.",
    "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.",
      "sync-labs-mcp": "sync. labs' MCP server is open source, generated from its API spec with workflow tools on top, and released often, with clear per-second prices for lip sync and dubbing. Security and data handling are thinly documented, and there's no read-only mode."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/framefields-vs-sync-labs-mcp",
    "json": "https://www.anchorterminal.com/compare/framefields-vs-sync-labs-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/framefields-vs-sync-labs-mcp.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/framefields-vs-sync-labs-mcp.min.md"
  },
  "markdown": "framefields scores 53.9 (D) on agent readiness against sync. labs MCP server's 51.5 (D), and leads in 5 of 7 scored categories. sync. labs MCP server leads on payments \u0026 pricing. Both do video edit.\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- sync. labs MCP server: grade D, 51.5/100, rank #1026 of 1510. Markdown https://www.anchorterminal.com/tools/sync-labs-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/sync-labs-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 43\n- Agent ergonomics, 74 against 55\n- Security \u0026 auth, 45 against 38\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\nWatch for: First published on 5 October 2026 and still badged beta at 2.12.0\n\n### sync. labs MCP server (D)\n\nGood for: Agents that lip-sync or dub video into other languages.\n\nAhead on:\n- Payments \u0026 pricing, 30 against 20\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: No read-only mode\n\n\n## Why the edge\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- sync. labs MCP server (55): A generated catalogue filtered by client profile, curated for ChatGPT (15). Project history and estimates (12 of 20). Recovery tools; errors not documented (8 of 20). Annotations not read (5 of 20). OAuth or a key, npm package and library use (15). 15 + 12 + 8 + 5 + 15 = 55.\n\n### Reliability: framefields +18\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- sync. labs MCP server (43): Status page at status.sync.so with maintenance and previous incidents (20). History not read (5). No MCP limits found (0). The source has abort-signal handling and recovery guidance for long jobs (8 of 15). No SLA found (0). Version 0.2.4, not labelled beta (10). 20 + 5 + 0 + 8 + 0 + 10 = 43.\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- sync. labs MCP server (75): v0.2.4 and commits on 7 November 2026 (30). Three tags in recent weeks (20). Issues not read (0). Official registry entry io.github.synchronicity-labs/mcp-server (15). CI with verify, publish and review workflows (10). 30 + 20 + 0 + 15 + 10 = 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### Payments \u0026 pricing: sync. labs MCP server +10\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- sync. labs MCP server (30): No machine payment protocol (0). Per-second prices published (20). A free try for short videos (10 of 20). A person signs up (0). 0 + 20 + 10 + 0 = 30.\n\n### Security \u0026 auth: framefields +7\n\n- framefields (45): Read with the framework lines. The library takes no credentials for local rendering. The optional AI gateway and cloud renders take a `FRAMEFIELDS_API_KEY` from the dashboard, stored hashed with a per-key monthly spending limit, and the self-hosted worker uses one bearer key for all jobs plus a git token (15). The worker refuses repositories outside a required `FF_REPO_ALLOWLIST`, removes secrets from the environment before project code runs, shares node_modules read-only, and its README warns that allowed repositories' code runs in the worker's process. The getting-started page has the owner deny five of six dependency install scripts (12). It renders the owner's assets and returns no third-party text, apart from preview notes a person writes for the agent (10). Worker results report the rendered commit SHA, timings and GPU; no audit log (5). No SECURITY.md in the repository and no security.txt on 2 November (403 at /.well-known/, 404 at the root); OSV holds no advisory for `framefields`. npm provenance per the 20 October check (none on 2.3.2), not re-read. Vision models are fetched from pinned Hugging Face revisions with a SHA-256 check (3).\n- sync. labs MCP server (38): OAuth per organisation, or an API key in the environment (22 of 30). No read-only mode (3 of 20). Media in and out, no third-party text (10). No audit log found (0). No security programme found (3 of 20). 22 + 3 + 10 + 0 + 3 = 38.\n\n## Score by category\n\n| Category | Weight | framefields | sync. labs MCP server | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 61 | 43 | framefields +18 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 81 | sync. labs MCP server +4 |\n| Agent ergonomics | 13% (16.2 this run) | 74 | 55 | framefields +19 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 38 | framefields +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 30 | sync. labs MCP server +10 |\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 | 44 | framefields +2 |\n| Negative events | ≤15 | -5 | 0 | |\n| **Total** | | **53.9 · D** | **51.5 · D** | |\n\n## Facts side by side\n\n| Fact | framefields | sync. labs MCP server |\n| --- | --- | --- |\n| Kind | SDK + MCP | MCP server |\n| Vendor | Gatewai | Synchronicity Labs (sync.) |\n| Hosted endpoint | no (local only) | `https://mcp.sync.so/mcp` |\n| Transports |  | Streamable HTTP |\n| Auth | None | OAuth or key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | Apache-2.0 | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.synchronicity-labs/mcp-server` |\n| Last release | 2026-11-02 | none |\n| Terms last updated | not read yet | no document linked |\n| Privacy policy last updated | not read yet | no document linked |\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### sync. labs MCP server\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**sync. labs MCP server.** sync. labs' MCP server is open source, generated from its API spec with workflow tools on top, and released often, with clear per-second prices for lip sync and dubbing. Security and data handling are thinly documented, and there's no read-only mode.\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### sync. labs MCP server\n\n1. Get an estimate before long generations\n2. Dub or lip-sync only voices and faces the user has the right to use\n3. Check the active organisation before connecting with OAuth\n\n## Questions\n\n### Which is better for AI agents, framefields or sync. labs MCP server?\n\nframefields scores 53.9 (D) on agent readiness against sync. labs MCP server's 51.5 (D), and leads in 5 of 7 scored categories. sync. labs MCP server leads on payments \u0026 pricing.\n\n### Can an agent call framefields and sync. labs MCP server without installing anything?\n\nNo hosted endpoint is listed for framefields. sync. labs MCP server has a hosted endpoint at https://mcp.sync.so/mcp.\n\n### Are framefields and sync. labs MCP server open source?\n\nYes. framefields is open source (Apache-2.0). sync. labs MCP server is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/framefields-vs-sync-labs-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/framefields-vs-sync-labs-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"framefields\", \"b\": \"sync-labs-mcp\"}`. From a terminal: `anchor compare framefields sync-labs-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/framefields.json and https://www.anchorterminal.com/api/v1/tools/sync-labs-mcp.json\n\n## Other comparisons with framefields or sync. labs MCP server\n\n- [Alibaba Wan (Model Studio) vs framefields](https://www.anchorterminal.com/compare/alibaba-wan-vs-framefields.md)\n- [fal video models vs framefields](https://www.anchorterminal.com/compare/fal-video-vs-framefields.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 Magic Hour MCP](https://www.anchorterminal.com/compare/framefields-vs-magic-hour-mcp.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- [Alibaba Wan (Model Studio) vs sync. labs MCP server](https://www.anchorterminal.com/compare/alibaba-wan-vs-sync-labs-mcp.md)\n- [Clueso vs framefields](https://www.anchorterminal.com/compare/clueso-video-vs-framefields.md)\n- [Clueso vs sync. labs MCP server](https://www.anchorterminal.com/compare/clueso-video-vs-sync-labs-mcp.md)\n- [fal video models vs sync. labs MCP server](https://www.anchorterminal.com/compare/fal-video-vs-sync-labs-mcp.md)\n- [Higgsfield API vs sync. labs MCP server](https://www.anchorterminal.com/compare/higgsfield-vs-sync-labs-mcp.md)\n- [Kling AI API vs sync. labs MCP server](https://www.anchorterminal.com/compare/kling-vs-sync-labs-mcp.md)\n- [Luma AI API vs sync. labs MCP server](https://www.anchorterminal.com/compare/luma-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- [MiniMax Video API vs sync. labs MCP server](https://www.anchorterminal.com/compare/minimax-video-vs-sync-labs-mcp.md)\n- [Pika API vs sync. labs MCP server](https://www.anchorterminal.com/compare/pika-vs-sync-labs-mcp.md)\n- [PixVerse API vs sync. labs MCP server](https://www.anchorterminal.com/compare/pixverse-vs-sync-labs-mcp.md)\n- [Replicate video models vs sync. labs MCP server](https://www.anchorterminal.com/compare/replicate-video-vs-sync-labs-mcp.md)\n- [Runway API vs sync. labs MCP server](https://www.anchorterminal.com/compare/runway-vs-sync-labs-mcp.md)\n- [Seedance on BytePlus ModelArk vs sync. labs MCP server](https://www.anchorterminal.com/compare/seedance-on-byteplus-modelark-vs-sync-labs-mcp.md)\n- [Google Veo vs sync. labs MCP server](https://www.anchorterminal.com/compare/google-veo-vs-sync-labs-mcp.md)\n- [OpenAI Sora API vs sync. labs MCP server](https://www.anchorterminal.com/compare/openai-sora-vs-sync-labs-mcp.md)\n- [sync. labs MCP server vs Vidu API](https://www.anchorterminal.com/compare/sync-labs-mcp-vs-vidu.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 sync. labs MCP server",
        "url": ""
      }
    ],
    "description": "framefields scores 53.9 (D) to sync. labs's 51.5 (D) for video edit. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "framefields D 53.9",
      "sync. labs MCP server D 51.5",
      "scores"
    ],
    "h1": "framefields vs sync. labs MCP server",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/framefields-vs-sync-labs-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "framefields vs sync. labs for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/framefields-vs-sync-labs-mcp"
  },
  "tokens": {
    "markdown": 4300,
    "slim": 2280
  },
  "version": 1
}
