{
  "data": {
    "a": {
      "slug": "prismic",
      "name": "Prismic",
      "vendor": "Prismic.io Inc.",
      "vendorUrl": "https://prismic.io",
      "kind": "http-api",
      "category": "cms",
      "summary": "Prismic is a hosted headless CMS and page builder. Agents write to it through the official hosted MCP server (16 tools that stage changes in releases) or the Migration, Asset and Types APIs with a write token.",
      "url": "https://www.anchorterminal.com/tools/prismic",
      "markdownUrl": "https://www.anchorterminal.com/tools/prismic.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/prismic.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/prismic.json",
      "repo": "https://github.com/prismicio/prismic-client",
      "license": "Proprietary service under Prismic's Master Services Agreement. The JavaScript clients, the CLI and the agent skill on GitHub are Apache-2.0",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.prismic.io/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@prismicio/client"
        },
        {
          "registry": "npm",
          "name": "@prismicio/migrate"
        },
        {
          "registry": "npm",
          "name": "prismic"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. The MCP server signs a person in through browser OAuth (authorisation code with PKCE and dynamic client registration) and works with that person's repository role. A repository Administrator or Owner must activate Prismic MCP first. Sign-ins expire after 90 days. The Migration, Asset and Types APIs take a repository write token as a Bearer header with a `repository` header. A person creates the token in Settings, API \u0026 Security, Write APIs, or with `npx prismic token create --write`. No scopes or expiry for write tokens were found in the reviewed documentation. No app review or sales approval is needed.",
      "pricing": "freemium",
      "pricingNotes": "Free is $0 per repository and includes the Migration API, 1 user, 2 locales and 4 million API calls a month, with no card on file needed. Starter is $10, Small $25, Medium $150 and Platinum $675 a month per repository, billed annually. Enterprise is sold through sales. The launch note says Prismic MCP is currently free on every plan (https://prismic.io/pricing, checked 2026-10-09).",
      "priceSummary": "$10 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the MCP docs, the write API references or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 16,
      "popularity": {
        "githubStars": 177,
        "npmWeekly": 236949,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://prismic.io/docs/mcp",
      "llmsTxt": "https://prismic.io/docs/llms.txt",
      "capabilities": [
        "cms.content",
        "cms.publish",
        "cms.assets",
        "cms.localisation",
        "cms.schema"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "oauth",
        "closed-source",
        "no-card",
        "free-tier",
        "llms-txt",
        "webhooks",
        "typescript",
        "cli",
        "graphql",
        "status-page"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61.9,
        "grade": "C",
        "agentReady": false,
        "rank": 410,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 79,
          "payments": 35,
          "reliability": 78,
          "schema": 60,
          "security": 50,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "The hosted MCP server stages every write as a draft in a release, cannot delete, and publishes only when a user with the Publisher role asks. Write tokens for the Migration, Asset and Types APIs have no scopes, no OpenAPI file was found, writes are limited to one request a second, and the acceptable use policy forbids access by scripts.",
        "bestFor": "Teams already on Prismic who want an agent to bulk-edit, localise or migrate pages into releases for human review.",
        "strengths": [
          "Official hosted MCP server at `https://mcp.prismic.io/mcp` with 16 tools, free on every plan per the 8 June 2026 launch note",
          "MCP writes land as drafts in a release, the server has no delete tool, and `publish_release` needs the Publisher role",
          "OAuth on the MCP server with PKCE S256, dynamic client registration, refresh tokens and a revocation endpoint",
          "Free plan at $0 with the Migration API, 4 million API calls a month and unlimited documents, types and assets",
          "Root and docs `llms.txt`, and every docs page served as Markdown at the same URL plus `.md`"
        ],
        "weaknesses": [
          "No OpenAPI file for the Migration, Asset or Types APIs in the reviewed documentation. The Types API links a Postman collection",
          "Write tokens cover the whole repository with no scopes or expiry in the reviewed documentation, and the docs say they carry many privileges",
          "The Migration and Asset APIs each take one item a request at one request a second, with no idempotency keys",
          "The acceptable use policy forbids accessing the Solution by bots, programs or scripts, and the terms bar benchmarking without written consent",
          "Writer and Publisher roles start on the Medium plan ($150 a month). On Starter and Small every user is an Administrator"
        ],
        "agentNotes": [
          "Ask a repository Administrator to activate Prismic MCP in Settings first. Activation can take several minutes, and each environment has its own setting",
          "Call `list_repositories`, then `get_custom_type` or `get_shared_slice` for the empty content template before `create_document`",
          "Create a release with `create_release` and write into it. Call `publish_release` only on an explicit request, because a publish cannot be undone through MCP",
          "For the Migration API send `Authorization: Bearer \u003cwrite token\u003e` and a `repository` header, one page a request, one request a second, and keep each returned `id` for later PUT calls",
          "Upload media first (`upload_asset` or POST to `https://asset-api.prismic.io/assets`) and reference the asset `id` in image and media link fields"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61.9
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 79,
          "payments": 35,
          "reliability": 78,
          "schema": 60,
          "security": 50,
          "transparency": 59
        },
        "provenanceScore": 85
      },
      "connect": {
        "install": "npm install @prismicio/client @prismicio/migrate",
        "http": "curl --location --request GET 'https://customtypes.prismic.io/customtypes' \\\n  --header 'repository: your-repo-name' \\\n  --header 'Authorization: Bearer \u003ctoken\u003e'",
        "config": {
          "mcpServers": {
            "Prismic": {
              "url": "https://mcp.prismic.io/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/cms.content",
        "tool": "https://letme.dev/prismic"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 10,
          "note": "per repository, billed annually, 3 users and 3 locales"
        },
        {
          "item": "Small",
          "unit": "month",
          "usd": 25,
          "note": "per repository, billed annually, 7 users and 4 locales"
        },
        {
          "item": "Medium",
          "unit": "month",
          "usd": 150,
          "note": "per repository, billed annually, 25 users, 5 million API calls, user roles"
        },
        {
          "item": "Platinum",
          "unit": "month",
          "usd": 675,
          "note": "per repository, billed annually, unlimited users, 10 million API calls"
        },
        {
          "item": "CDN bandwidth overage",
          "unit": "gb",
          "usd": 0.3,
          "note": "Starter, Small and Medium. $0.25 on Platinum"
        }
      ],
      "provenance": {
        "legalEntity": "Prismic.io Inc.",
        "domain": "prismic.io",
        "domainRegistered": "2013-06-05",
        "endpointOnVendorDomain": true,
        "terms": "https://prismic.io/legal/terms-of-service",
        "privacy": "https://prismic.io/legal/privacy",
        "statusPage": "https://status.prismic.io",
        "changelog": "https://prismic.io/updates",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The terms page is a Master Services Agreement, last updated 1 December 2025, between the customer and Prismic.io Inc., with notices to 185 Alewife Brook Parkway, Suite 210, Cambridge, Massachusetts 02138, USA. The legal page gives 9 rue de la Pierre Levée, 75011 Paris, France.",
          "The privacy policy, last updated 8 April 2026, covers the website and the Prismic Services, has a section on Prismic MCP, and links a self-service DPA and a sub-processor list, both PDFs we did not read.",
          "The AI Terms of Service (4 February 2026) name Prismic, Inc. and apply to AI functions.",
          "The MCP server answers at mcp.prismic.io and the write APIs at migration.prismic.io, asset-api.prismic.io and customtypes.prismic.io. The MCP docs name prismic-auth.eu.auth0.com as the sign-in server.",
          "prismic.io/.well-known/security.txt and prismic.io/security.txt return 404. The security page gives security@prismic.io.",
          "RDAP for prismic.io gives a registration date of 2013-06-05.",
          "robots.txt on prismic.io carries Content-Signal ai-train=no, search=yes, ai-input=yes."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/prismic.json",
      "live": {
        "slug": "prismic",
        "probe": {
          "target": "https://mcp.prismic.io/mcp",
          "method": "get",
          "lastAt": "2026-10-09T10:42:53.540899126Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 382,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 337,
          "p95ms24h": 390,
          "samples24h": 33,
          "samples30d": 33,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 33,
              "ok": 33
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.prismic.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T10:42:00.249405282Z"
        },
        "updatedAt": "2026-10-09T10:42:53.540899126Z"
      }
    },
    "answer": "Sanity scores 73.7 (BB) on agent readiness against Prismic's 61.9 (C), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "sanity",
      "name": "Sanity",
      "vendor": "Sanity US Inc. and Sanity AS",
      "vendorUrl": "https://www.sanity.io",
      "kind": "http-api",
      "category": "cms",
      "summary": "Sanity is a hosted headless CMS. Content is stored as JSON documents in the Content Lake, queried with GROQ and edited in the open-source Sanity Studio. Agents reach it through the HTTP API or the hosted MCP server at mcp.sanity.io.",
      "url": "https://www.anchorterminal.com/tools/sanity",
      "markdownUrl": "https://www.anchorterminal.com/tools/sanity.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sanity.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sanity.json",
      "repo": "https://github.com/sanity-io/sanity",
      "license": "Proprietary hosted service under Sanity's terms of service. Sanity Studio, the CLI, `@sanity/client` and the agent toolkit on GitHub are MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.sanity.io",
      "packages": [
        {
          "registry": "npm",
          "name": "@sanity/client"
        },
        {
          "registry": "npm",
          "name": "sanity"
        },
        {
          "registry": "packagist",
          "name": "sanity/sanity-php"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. The HTTP API takes a Bearer token. Robot tokens are created in sanity.io/manage, with the CLI or through the Access API, carry a role (Viewer and Editor tokens on every plan), last until deleted unless given an expiry, and are shown once. Personal tokens last a year and act as the user. The MCP server at mcp.sanity.io uses OAuth with PKCE and dynamic client registration by default, with one scope named `global` and sessions of about 7 days, or accepts a token in the `Authorization` header. Custom roles that limit a token to a dataset or document type are Enterprise only. No app review or sales approval is needed.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at $0 with no card, 20 seats, 10,000 documents, 250,000 API requests and 1 million API CDN requests a month, and hard caps that answer 402 when reached. Growth is $15 a seat a month with overage billed per unit. Enterprise is priced by sales. New projects get a Growth trial with Free plan quotas. An agent can start on the Free plan once a person has created the account (checked 2026-10-07).",
      "priceSummary": "$15 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the documentation (llms-full.txt) or on the pricing page (checked 2026-10-07).",
        "endpoints": []
      },
      "toolCount": 53,
      "popularity": {
        "githubStars": 6352,
        "npmWeekly": 4069926,
        "pypiWeekly": null,
        "asOf": "2026-10-07"
      },
      "docsUrl": "https://www.sanity.io/docs",
      "llmsTxt": "https://www.sanity.io/docs/llms.txt",
      "openapi": "https://www.sanity.io/docs/api/openapi",
      "registryName": "io.sanity.www/mcp",
      "capabilities": [
        "cms.content",
        "cms.publish",
        "cms.assets",
        "cms.schema",
        "cms.localisation"
      ],
      "tags": [
        "hosted",
        "headless-cms",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "groq",
        "graphql",
        "javascript",
        "php",
        "free-tier",
        "status-page",
        "soc2",
        "open-source-studio"
      ],
      "lastRelease": "2026-10-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 73.7,
        "grade": "BB",
        "agentReady": true,
        "rank": 81,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 89,
          "payments": 40,
          "reliability": 77,
          "schema": 87,
          "security": 67,
          "transparency": 87
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-07"
        },
        "negative": 0,
        "verdict": "Sanity publishes 26 OpenAPI specs covering 225 operations, and its hosted MCP server saves edits to drafts or release versions, with publishing as a separate call. The Content Lake does not run schema validation on API writes, and custom roles that limit a token to one dataset or document type are sold only on Enterprise plans.",
        "bestFor": "Teams that model content as structured documents and want an agent to draft, patch and stage changes in releases for a person to publish.",
        "strengths": [
          "26 public OpenAPI specs covering 225 operations at www.sanity.io/docs/api/openapi, plus llms.txt and a Markdown copy of every documentation page",
          "MCP `patch_documents` saves to a draft or release version, never to published content, and `publish_documents` is a separate tool",
          "Mutations and actions accept `dryRun`, a caller-set `transactionId` and `ifRevisionID` for optimistic locking",
          "Free plan with 10,000 documents and 250,000 API requests a month, with Growth overage rates published per unit",
          "MCP server listed in the official MCP registry as io.sanity.www/mcp, with 30 versions published there between 15 July and 2 October 2026"
        ],
        "weaknesses": [
          "Schema validation rules run only in Sanity Studio. The HTTP mutation API accepts a document without checking them",
          "Custom roles scoped to a dataset or document type are an Enterprise feature. Robot tokens on other plans take a built-in role across the project",
          "The MCP OAuth server lists one scope, `global`, and the server documents 53 tools with no toolset or read-only mode",
          "A status incident on 22 July 2026, marked major on api.sanity.io, stayed open for 6 hours 20 minutes with two recurrences",
          "The vulnerability disclosure page says the bug bounty pilot has closed and no rewards are paid"
        ],
        "agentNotes": [
          "Pin a static dated version in every URL, such as `v2025-02-19`. Omitting `apiVersion` in `@sanity/client` falls back to `v1`.",
          "Validate documents against the schema yourself before an HTTP write, or run `sanity documents validate` afterwards. The Content Lake does not enforce schema rules.",
          "Back off on 429 for mutations yourself. `@sanity/client` retries queries five times but never retries mutations. The limit is 25 mutations a second per IP.",
          "Over MCP, call `create_version` before `patch_documents` when editing inside a release, then patch the returned version ID with the same `releaseId`.",
          "Use GROQ projections and slices to size results. MCP query responses are limited to 64 KiB, and a blocked Free project answers 402 with `plan_limit_reached`."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 73.7
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 89,
          "payments": 40,
          "reliability": 77,
          "schema": 87,
          "security": 67,
          "transparency": 79
        },
        "provenanceScore": 95
      },
      "connect": {
        "install": "npx sanity@latest mcp configure",
        "http": "curl -H \"Authorization: Bearer \u003ctoken\u003e\" \"https://\u003cproject\u003e.api.sanity.io/v2021-06-07/data/query/production?query=*\"",
        "claudeCode": "claude mcp add Sanity -t http https://mcp.sanity.io --scope user",
        "config": {
          "mcpServers": {
            "Sanity": {
              "type": "http",
              "url": "https://mcp.sanity.io"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/cms.content",
        "tool": "https://letme.dev/sanity"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Growth",
          "unit": "seat-month",
          "usd": 15,
          "note": "up to 50 seats"
        },
        {
          "item": "API requests over quota (Growth)",
          "unit": "1k-requests",
          "usd": 0.04,
          "note": "$1 per 25,000, after 250,000 a month included"
        },
        {
          "item": "API CDN requests over quota (Growth)",
          "unit": "1k-requests",
          "usd": 0.004,
          "note": "$1 per 250,000, after 1 million a month included"
        },
        {
          "item": "Bandwidth over quota (Growth)",
          "unit": "gb",
          "usd": 0.3,
          "note": "after 100 GB a month included"
        },
        {
          "item": "Increased quota add-on (Growth)",
          "unit": "month",
          "usd": 299,
          "note": "50,000 documents, 1 million API requests, 5 million API CDN requests"
        },
        {
          "item": "Extra dataset (Growth)",
          "unit": "month",
          "usd": 999,
          "note": "per dataset"
        }
      ],
      "provenance": {
        "legalEntity": "Sanity US Inc. (with Sanity AS)",
        "domain": "sanity.io",
        "domainRegistered": "2015-01-07",
        "endpointOnVendorDomain": true,
        "terms": "https://www.sanity.io/legal/tos",
        "privacy": "https://www.sanity.io/legal/privacy",
        "statusPage": "https://www.sanity-status.com",
        "changelog": "https://www.sanity.io/docs/changelog",
        "securityTxt": "valid",
        "checked": "2026-10-07",
        "notes": [
          "The terms of service dated 12 August 2026 are entered into with Sanity US Inc. The privacy policy dated 4 May 2026 is that of Sanity AS and Sanity US Inc. Growth has its own terms at sanity.io/legal/tos-growth, dated 26 March 2026.",
          "The API answers at https://\u003cprojectId\u003e.api.sanity.io and https://api.sanity.io, and the MCP server at https://mcp.sanity.io.",
          "www.sanity.io/.well-known/security.txt names security@sanity.io and the disclosure policy at sanity.io/responsible-disclosure, and has no Expires field.",
          "status.sanity.io answers with the same Statuspage as www.sanity-status.com.",
          "RDAP for sanity.io gives a registration date of 2015-01-07."
        ],
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/sanity.json",
      "live": {
        "slug": "sanity",
        "probe": {
          "target": "https://api.sanity.io",
          "method": "get",
          "lastAt": "2026-10-09T10:42:55.501856997Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 35,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 34,
          "p95ms24h": 64,
          "samples24h": 207,
          "samples30d": 207,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 114,
              "ok": 114
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.sanity-status.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T10:42:02.851430197Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "sanity-io/sanity",
            "version": "v6.18.0",
            "released": "2026-10-06",
            "seenAt": "2026-10-08T16:28:11.279439468Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.sanity.www/mcp",
            "version": "2.40.0",
            "seenAt": "2026-10-09T02:57:46.004536428Z"
          },
          {
            "registry": "npm",
            "name": "@sanity/client",
            "version": "8.9.0",
            "seenAt": "2026-10-08T16:28:08.05519452Z"
          },
          {
            "registry": "npm",
            "name": "sanity",
            "version": "6.18.0",
            "seenAt": "2026-10-08T16:28:09.308419229Z"
          }
        ],
        "githubStars": 6352,
        "npmWeekly": 4069926,
        "securityTxt": {
          "url": "https://sanity.io/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-08T15:38:50.777207368Z"
        },
        "pages": [
          {
            "url": "https://www.sanity.io/docs/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:11.065534137Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "906020038702"
          },
          {
            "url": "https://www.sanity.io/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:14.320679574Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f0a780309f28"
          },
          {
            "url": "https://www.sanity.io/legal/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:15.452818667Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "68f22ec5d44d"
          }
        ],
        "updatedAt": "2026-10-09T10:42:55.501856997Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Prismic.io Inc.",
        "b": "Sanity US Inc. and Sanity AS",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.prismic.io/mcp",
        "b": "https://api.sanity.io",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Prismic's Master Services Agreement. The JavaScript clients, the CLI and the agent skill on GitHub are Apache-2.0",
        "b": "Proprietary hosted service under Sanity's terms of service. Sanity Studio, the CLI, `@sanity/client` and the agent toolkit on GitHub are MIT",
        "name": "Licence"
      },
      {
        "a": "16",
        "b": "53",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.sanity.www/mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-08",
        "b": "2026-10-02",
        "name": "Last release"
      },
      {
        "a": "2025-12-01",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-04-08",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "177 stars, 237k npm/wk",
        "b": "6.4k stars, 4.1M npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Sanity scores 73.7 (BB) on agent readiness against Prismic's 61.9 (C), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Prismic or Sanity?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Prismic and Sanity need an API key?"
      },
      {
        "answer": "Yes. Prismic has a hosted endpoint at https://mcp.prismic.io/mcp and Sanity at https://api.sanity.io.",
        "question": "Can an agent call Prismic and Sanity without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Teams already on Prismic who want an agent to bulk-edit, localise or migrate pages into releases for human review.",
        "slug": "prismic",
        "watchFor": "No OpenAPI file for the Migration, Asset or Types APIs in the reviewed documentation. The Types API links a Postman collection"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 87 against 60",
          "Agent ergonomics, 74 against 63",
          "Security \u0026 auth, 67 against 50",
          "Payments \u0026 pricing, 40 against 35",
          "Maintenance \u0026 community, 89 against 79",
          "Transparency \u0026 trust, 87 against 72"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "goodFor": "Teams that model content as structured documents and want an agent to draft, patch and stage changes in releases for a person to publish.",
        "slug": "sanity",
        "watchFor": "Schema validation rules run only in Sanity Studio. The HTTP mutation API accepts a document without checking them"
      }
    ],
    "job": {
      "capability": "cms.content",
      "name": "Cms content"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/contentstack-vs-prismic.json",
        "title": "Contentstack vs Prismic",
        "url": "https://www.anchorterminal.com/compare/contentstack-vs-prismic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/contentstack-vs-sanity.json",
        "title": "Contentstack vs Sanity",
        "url": "https://www.anchorterminal.com/compare/contentstack-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/datocms-vs-prismic.json",
        "title": "DatoCMS vs Prismic",
        "url": "https://www.anchorterminal.com/compare/datocms-vs-prismic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/datocms-vs-sanity.json",
        "title": "DatoCMS vs Sanity",
        "url": "https://www.anchorterminal.com/compare/datocms-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-prismic.json",
        "title": "Directus vs Prismic",
        "url": "https://www.anchorterminal.com/compare/directus-vs-prismic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-sanity.json",
        "title": "Directus vs Sanity",
        "url": "https://www.anchorterminal.com/compare/directus-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ghost-vs-prismic.json",
        "title": "Ghost vs Prismic",
        "url": "https://www.anchorterminal.com/compare/ghost-vs-prismic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ghost-vs-sanity.json",
        "title": "Ghost vs Sanity",
        "url": "https://www.anchorterminal.com/compare/ghost-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hygraph-vs-prismic.json",
        "title": "Hygraph vs Prismic",
        "url": "https://www.anchorterminal.com/compare/hygraph-vs-prismic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hygraph-vs-sanity.json",
        "title": "Hygraph vs Sanity",
        "url": "https://www.anchorterminal.com/compare/hygraph-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/payload-vs-prismic.json",
        "title": "Payload vs Prismic",
        "url": "https://www.anchorterminal.com/compare/payload-vs-prismic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/payload-vs-sanity.json",
        "title": "Payload vs Sanity",
        "url": "https://www.anchorterminal.com/compare/payload-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prismic-vs-storyblok.json",
        "title": "Prismic vs Storyblok",
        "url": "https://www.anchorterminal.com/compare/prismic-vs-storyblok"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prismic-vs-strapi.json",
        "title": "Prismic vs Strapi",
        "url": "https://www.anchorterminal.com/compare/prismic-vs-strapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prismic-vs-webflow.json",
        "title": "Prismic vs Webflow",
        "url": "https://www.anchorterminal.com/compare/prismic-vs-webflow"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prismic-vs-wordpress.json",
        "title": "Prismic vs WordPress",
        "url": "https://www.anchorterminal.com/compare/prismic-vs-wordpress"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sanity-vs-storyblok.json",
        "title": "Sanity vs Storyblok",
        "url": "https://www.anchorterminal.com/compare/sanity-vs-storyblok"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sanity-vs-strapi.json",
        "title": "Sanity vs Strapi",
        "url": "https://www.anchorterminal.com/compare/sanity-vs-strapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sanity-vs-webflow.json",
        "title": "Sanity vs Webflow",
        "url": "https://www.anchorterminal.com/compare/sanity-vs-webflow"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sanity-vs-wordpress.json",
        "title": "Sanity vs WordPress",
        "url": "https://www.anchorterminal.com/compare/sanity-vs-wordpress"
      }
    ],
    "scores": [
      {
        "by": 1,
        "edge": "prismic",
        "key": "reliability",
        "name": "Reliability",
        "prismic": 78,
        "sanity": 77,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 27,
        "edge": "sanity",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "prismic": 60,
        "sanity": 87,
        "weight": 13
      },
      {
        "by": 11,
        "edge": "sanity",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "prismic": 63,
        "sanity": 74,
        "weight": 13
      },
      {
        "by": 17,
        "edge": "sanity",
        "key": "security",
        "name": "Security \u0026 auth",
        "prismic": 50,
        "sanity": 67,
        "weight": 14
      },
      {
        "by": 5,
        "edge": "sanity",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "prismic": 35,
        "sanity": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "edge": "sanity",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "prismic": 79,
        "sanity": 89,
        "weight": 7
      },
      {
        "by": 15,
        "edge": "sanity",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "prismic": 72,
        "sanity": 87,
        "weight": 7
      }
    ],
    "summary": "Sanity scores 73.7 (BB) on agent readiness against Prismic's 61.9 (C), and leads in 6 of 7 scored categories. Both do cms content.",
    "verdicts": {
      "prismic": "The hosted MCP server stages every write as a draft in a release, cannot delete, and publishes only when a user with the Publisher role asks. Write tokens for the Migration, Asset and Types APIs have no scopes, no OpenAPI file was found, writes are limited to one request a second, and the acceptable use policy forbids access by scripts.",
      "sanity": "Sanity publishes 26 OpenAPI specs covering 225 operations, and its hosted MCP server saves edits to drafts or release versions, with publishing as a separate call. The Content Lake does not run schema validation on API writes, and custom roles that limit a token to one dataset or document type are sold only on Enterprise plans."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/prismic-vs-sanity",
    "json": "https://www.anchorterminal.com/compare/prismic-vs-sanity.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/prismic-vs-sanity.md",
    "slim": "https://www.anchorterminal.com/compare/prismic-vs-sanity.min.md"
  },
  "markdown": "Sanity scores 73.7 (BB) on agent readiness against Prismic's 61.9 (C), and leads in 6 of 7 scored categories. Both do cms content.\n\n- Prismic: grade C, 61.9/100, rank #410 of 842. Markdown https://www.anchorterminal.com/tools/prismic.md · JSON https://www.anchorterminal.com/api/v1/tools/prismic.json\n- Sanity: grade BB, 73.7/100, rank #81 of 842. Markdown https://www.anchorterminal.com/tools/sanity.md · JSON https://www.anchorterminal.com/api/v1/tools/sanity.json\n\n## Which one, for what\n\n### Prismic (C)\n\nGood for: Teams already on Prismic who want an agent to bulk-edit, localise or migrate pages into releases for human review.\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: No OpenAPI file for the Migration, Asset or Types APIs in the reviewed documentation. The Types API links a Postman collection\n\n### Sanity (BB)\n\nGood for: Teams that model content as structured documents and want an agent to draft, patch and stage changes in releases for a person to publish.\n\nAhead on:\n- Schema \u0026 documentation, 87 against 60\n- Agent ergonomics, 74 against 63\n- Security \u0026 auth, 67 against 50\n- Payments \u0026 pricing, 40 against 35\n- Maintenance \u0026 community, 89 against 79\n- Transparency \u0026 trust, 87 against 72\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: Schema validation rules run only in Sanity Studio. The HTTP mutation API accepts a document without checking them\n\n\n## Score by category\n\n| Category | Weight | Prismic | Sanity | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 78 | 77 | Prismic +1 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 60 | 87 | Sanity +27 |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 74 | Sanity +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 50 | 67 | Sanity +17 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 40 | Sanity +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 79 | 89 | Sanity +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 72 | 87 | Sanity +15 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **61.9 · C** | **73.7 · BB** | |\n\n## Facts side by side\n\n| Fact | Prismic | Sanity |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Prismic.io Inc. | Sanity US Inc. and Sanity AS |\n| Hosted endpoint | `https://mcp.prismic.io/mcp` | `https://api.sanity.io` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under Prismic's Master Services Agreement. The JavaScript clients, the CLI and the agent skill on GitHub are Apache-2.0 | Proprietary hosted service under Sanity's terms of service. Sanity Studio, the CLI, `@sanity/client` and the agent toolkit on GitHub are MIT |\n| Tools exposed | 16 | 53 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.sanity.www/mcp` |\n| Last release | 2026-10-08 | 2026-10-02 |\n| Terms last updated | 2025-12-01 | no date given |\n| Privacy policy last updated | 2026-04-08 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 177 stars, 237k npm/wk | 6.4k stars, 4.1M npm/wk |\n\n## Verdicts\n\n**Prismic.** The hosted MCP server stages every write as a draft in a release, cannot delete, and publishes only when a user with the Publisher role asks. Write tokens for the Migration, Asset and Types APIs have no scopes, no OpenAPI file was found, writes are limited to one request a second, and the acceptable use policy forbids access by scripts.\n\n**Sanity.** Sanity publishes 26 OpenAPI specs covering 225 operations, and its hosted MCP server saves edits to drafts or release versions, with publishing as a separate call. The Content Lake does not run schema validation on API writes, and custom roles that limit a token to one dataset or document type are sold only on Enterprise plans.\n\n## Before you call either\n\n### Prismic\n\n1. Ask a repository Administrator to activate Prismic MCP in Settings first. Activation can take several minutes, and each environment has its own setting\n2. Call `list_repositories`, then `get_custom_type` or `get_shared_slice` for the empty content template before `create_document`\n3. Create a release with `create_release` and write into it. Call `publish_release` only on an explicit request, because a publish cannot be undone through MCP\n4. For the Migration API send `Authorization: Bearer \u003cwrite token\u003e` and a `repository` header, one page a request, one request a second, and keep each returned `id` for later PUT calls\n5. Upload media first (`upload_asset` or POST to `https://asset-api.prismic.io/assets`) and reference the asset `id` in image and media link fields\n\n### Sanity\n\n1. Pin a static dated version in every URL, such as `v2025-02-19`. Omitting `apiVersion` in `@sanity/client` falls back to `v1`.\n2. Validate documents against the schema yourself before an HTTP write, or run `sanity documents validate` afterwards. The Content Lake does not enforce schema rules.\n3. Back off on 429 for mutations yourself. `@sanity/client` retries queries five times but never retries mutations. The limit is 25 mutations a second per IP.\n4. Over MCP, call `create_version` before `patch_documents` when editing inside a release, then patch the returned version ID with the same `releaseId`.\n5. Use GROQ projections and slices to size results. MCP query responses are limited to 64 KiB, and a blocked Free project answers 402 with `plan_limit_reached`.\n\n## Questions\n\n### Which is better for AI agents, Prismic or Sanity?\n\nSanity scores 73.7 (BB) on agent readiness against Prismic's 61.9 (C), and leads in 6 of 7 scored categories.\n\n### Do Prismic and Sanity need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Prismic and Sanity without installing anything?\n\nYes. Prismic has a hosted endpoint at https://mcp.prismic.io/mcp and Sanity at https://api.sanity.io.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/prismic-vs-sanity.json, and with the fewest tokens: https://www.anchorterminal.com/compare/prismic-vs-sanity.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"prismic\", \"b\": \"sanity\"}`. From a terminal: `anchor compare prismic sanity`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/prismic.json and https://www.anchorterminal.com/api/v1/tools/sanity.json\n\n## Other comparisons with Prismic or Sanity\n\n- [Contentstack vs Prismic](https://www.anchorterminal.com/compare/contentstack-vs-prismic.md)\n- [Contentstack vs Sanity](https://www.anchorterminal.com/compare/contentstack-vs-sanity.md)\n- [DatoCMS vs Prismic](https://www.anchorterminal.com/compare/datocms-vs-prismic.md)\n- [DatoCMS vs Sanity](https://www.anchorterminal.com/compare/datocms-vs-sanity.md)\n- [Directus vs Prismic](https://www.anchorterminal.com/compare/directus-vs-prismic.md)\n- [Directus vs Sanity](https://www.anchorterminal.com/compare/directus-vs-sanity.md)\n- [Ghost vs Prismic](https://www.anchorterminal.com/compare/ghost-vs-prismic.md)\n- [Ghost vs Sanity](https://www.anchorterminal.com/compare/ghost-vs-sanity.md)\n- [Hygraph vs Prismic](https://www.anchorterminal.com/compare/hygraph-vs-prismic.md)\n- [Hygraph vs Sanity](https://www.anchorterminal.com/compare/hygraph-vs-sanity.md)\n- [Payload vs Prismic](https://www.anchorterminal.com/compare/payload-vs-prismic.md)\n- [Payload vs Sanity](https://www.anchorterminal.com/compare/payload-vs-sanity.md)\n- [Prismic vs Storyblok](https://www.anchorterminal.com/compare/prismic-vs-storyblok.md)\n- [Prismic vs Strapi](https://www.anchorterminal.com/compare/prismic-vs-strapi.md)\n- [Prismic vs Webflow](https://www.anchorterminal.com/compare/prismic-vs-webflow.md)\n- [Prismic vs WordPress](https://www.anchorterminal.com/compare/prismic-vs-wordpress.md)\n- [Sanity vs Storyblok](https://www.anchorterminal.com/compare/sanity-vs-storyblok.md)\n- [Sanity vs Strapi](https://www.anchorterminal.com/compare/sanity-vs-strapi.md)\n- [Sanity vs Webflow](https://www.anchorterminal.com/compare/sanity-vs-webflow.md)\n- [Sanity vs WordPress](https://www.anchorterminal.com/compare/sanity-vs-wordpress.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Prismic vs Sanity",
        "url": ""
      }
    ],
    "description": "Sanity scores 73.7 (BB) on agent readiness against Prismic's 61.9 (C), and leads in 6 of 7 scored categories. Both do cms content. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Prismic C 61.9",
      "Sanity BB 73.7",
      "scores"
    ],
    "h1": "Prismic vs Sanity",
    "image": "https://www.anchorterminal.com/assets/og/compare-prismic-vs-sanity.png",
    "path": "/compare/prismic-vs-sanity",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Prismic vs Sanity for AI agents, C 61.9 vs BB 73.7 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/prismic-vs-sanity"
  },
  "tokens": {
    "markdown": 2350,
    "slim": 630
  },
  "version": 1
}
