{
  "data": {
    "a": {
      "slug": "dotcms",
      "name": "dotCMS",
      "vendor": "dotCMS LLC",
      "vendorUrl": "https://www.dotcms.com",
      "kind": "mcp",
      "category": "cms",
      "summary": "dotCMS is an enterprise CMS with headless REST APIs, workflows and push publishing, run as dotCMS Cloud or self-hosted. Agents use the @dotcms/mcp-server package, which searches the instance's OpenAPI spec and runs API calls in a sandbox.",
      "url": "https://www.anchorterminal.com/tools/dotcms",
      "markdownUrl": "https://www.anchorterminal.com/tools/dotcms.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/dotcms.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/dotcms.json",
      "dns": "dotcms.grade.anchorterminal.com",
      "repo": "https://github.com/dotCMS/core",
      "license": "BUSL-1.1",
      "transports": [
        "stdio"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@dotcms/mcp-server"
        }
      ],
      "auth": "api-key",
      "authNotes": "The MCP server reads DOTCMS_URL and AUTH_TOKEN. API tokens are JWTs issued for a dotCMS user, carry that user's role permissions, take an expiry in days, and are created by administrators in the user manager or through /api/v1/authentication/api-token. The docs recommend a separate user and role per application; the MCP server needs write permission for content types, content and workflows. Tokens are injected outside the sandbox, so sandboxed code never sees them.",
      "pricing": "freemium",
      "pricingNotes": "dotCMS is free with every capability for companies under $5 million in revenue under its BSL licence, self-hosted. Cloud plans (Starter, Professional, Business, Enterprise) are priced on request, with monthly request and bandwidth allowances and SLAs of 99.5 to 99.9 per cent.",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the MCP README, the dev docs or the pricing page (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": 7,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 43,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://dev.dotcms.com/docs/build/integrations/dotai/mcp-server",
      "llmsTxt": "https://dev.dotcms.com/llms.txt",
      "capabilities": [
        "cms.content",
        "cms.publish",
        "cms.assets",
        "cms.schema",
        "cms.localisation"
      ],
      "tags": [
        "official",
        "mcp",
        "stdio",
        "self-hosted",
        "hosted",
        "source-available",
        "llms-txt",
        "sales-led",
        "sla",
        "typescript"
      ],
      "lastRelease": "2026-09-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.7,
        "grade": "C",
        "agentReady": false,
        "rank": 784,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 12,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 75,
          "payments": 35,
          "reliability": 47,
          "schema": 65,
          "security": 63,
          "transparency": 54
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "dotCMS's MCP server keeps the tool list to seven by letting the agent search the instance's OpenAPI spec and run API calls in a sandbox that never sees the token. It is a pre-1.0 package that needs a write token, and cloud prices are on request.",
        "bestFor": "Enterprises already on dotCMS who want an agent to manage content and pages.",
        "strengths": [
          "Seven tools in code mode, with the instance's OpenAPI spec searchable from the sandbox",
          "The API token stays outside the sandbox, which only receives results",
          "JWT tokens per user with role permissions and an expiry",
          "security.txt with PGP, a bounty-backed disclosure policy and LTS security backports",
          "Free with every capability for organisations under $5 million in revenue"
        ],
        "weaknesses": [
          "Pre-1.0 package, with the dev docs still pointing at the beta tag",
          "The server needs a token with write permission for content types, content and workflows",
          "execute can call any endpoint, and no read-only mode or annotations were found",
          "Cloud prices are on request only",
          "Source-available under the BSL, not an OSI licence"
        ],
        "agentNotes": [
          "Search the spec with `search` before writing an `execute` call, and return only the fields you need",
          "Use a token for a dedicated user and role, not an administrator's",
          "Confirm with the user before execute calls that publish, archive or delete content",
          "Keep results small with pick and first, since output is capped at about 25,000 characters",
          "Use download_assets for theme folders so files land on disk instead of in context"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57.7
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 75,
          "payments": 35,
          "reliability": 47,
          "schema": 65,
          "security": 63,
          "transparency": 51
        },
        "provenanceScore": 57,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npx -y @dotcms/mcp-server",
        "config": {
          "mcpServers": {
            "dotcms": {
              "args": [
                "-y",
                "@dotcms/mcp-server"
              ],
              "command": "npx",
              "env": {
                "AUTH_TOKEN": "your-api-token",
                "DOTCMS_URL": "https://your-dotcms-instance.com"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/cms.content",
        "tool": "https://letme.dev/dotcms"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "dotCMS LLC",
        "domain": "dotcms.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": false,
        "terms": "https://github.com/dotCMS/core/blob/main/LICENSE",
        "privacy": "https://dev.dotcms.com/docs/manage/access-and-security/security-and-privacy/privacy-policy",
        "statusPage": "",
        "changelog": "https://dev.dotcms.com/docs/reference/releases/product-versions/changelogs",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "The MCP server runs locally and calls the customer's own dotCMS instance, so the endpoint isn't on a dotCMS domain.",
          "The privacy policy, last updated 8 September 2026, covers dotCMS's websites only and names dotCMS Holdings, LLC, dotCMS Services LLC and dotCMS LLC.",
          "www.dotcms.com/robots.txt disallows /docs/ and /utils/; dev.dotcms.com allows all with Content-Signal ai-train=yes, search=yes, ai-input=yes.",
          "www.dotcms.com/terms-of-service and /privacy-policy returned 404; no cloud terms of service were found, so the licence stands in for terms.",
          "No status page answered (status.dotcms.com refused the connection)."
        ],
        "score": 57
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/dotcms.json",
      "live": {
        "slug": "dotcms",
        "versions": [
          {
            "registry": "github",
            "name": "dotCMS/core",
            "version": "dotcms-cli-26.11.06-03",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:22:22.409374032Z"
          },
          {
            "registry": "npm",
            "name": "@dotcms/mcp-server",
            "version": "0.1.1",
            "seenAt": "2026-11-06T23:22:21.577680774Z"
          }
        ],
        "githubStars": 971,
        "npmWeekly": 43,
        "securityTxt": {
          "url": "https://dotcms.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-06-09T23:59:59.000Z",
          "checkedAt": "2026-11-07T16:00:46.289271049Z"
        },
        "llmsTxt": {
          "url": "https://dev.dotcms.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:19.058875451Z"
        },
        "pages": [
          {
            "url": "https://dev.dotcms.com/docs/reference/releases/product-versions/changelogs",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:02:43.439634709Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "14706a7e3d20"
          },
          {
            "url": "https://dev.dotcms.com/docs/manage/access-and-security/security-and-privacy/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:02:39.904485204Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b8fe703d4258"
          },
          {
            "url": "https://raw.githubusercontent.com/dotCMS/core/main/LICENSE",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:20:41.976083247Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1dd3baa6b46f"
          }
        ],
        "updatedAt": "2026-11-07T16:00:46.289271049Z"
      }
    },
    "answer": "Hygraph scores 67.4 (B) on agent readiness against dotCMS's 57.7 (C), and leads in 4 of 7 scored categories. dotCMS leads on maintenance \u0026 community.",
    "b": {
      "slug": "hygraph",
      "name": "Hygraph",
      "vendor": "Hygraph GmbH",
      "vendorUrl": "https://hygraph.com",
      "kind": "http-api",
      "category": "cms",
      "summary": "Hygraph is a hosted headless CMS from Hygraph GmbH in Berlin. Agents read and write entries, assets and localisations through a GraphQL Content API, change schema through a Management API and SDK, or connect through a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/hygraph",
      "markdownUrl": "https://www.anchorterminal.com/tools/hygraph.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/hygraph.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/hygraph.json",
      "dns": "hygraph.grade.anchorterminal.com",
      "repo": "https://github.com/hygraph/management-sdk",
      "license": "Proprietary service under Hygraph GmbH's Terms of Service. The `@hygraph/management-sdk` package is MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.hygraph.com/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@hygraph/management-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. The Content API and Management API take a Permanent Auth Token as a Bearer header. A person creates the token in Project Settings and sets its content permissions (by model, stage, locale, environment and action) and its Management API permissions. A new token has none enabled. Deleting a token invalidates it, and no expiry or rotation was found. The project MCP endpoint takes the same token. The global MCP endpoint uses a browser login through auth.hygraph.com and follows the user's own permissions. OAuth for third-party apps needs a client ID from Hygraph support. No app review or sales approval is needed for tokens.",
      "pricing": "freemium",
      "pricingNotes": "The Hobby plan is free with no card and includes 500,000 API calls a month, 1,000 entries, 2 locales and 3 API tokens. Usage past the limit is blocked until the next period. Growth is $199 a month with 1,000,000 API calls, and overage of $0.20 per 10,000 API operations and per GB of asset traffic. Enterprise is sold through sales, with a 30-day trial that needs no card (https://hygraph.com/pricing, checked 2026-10-08).",
      "priceSummary": "$199 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API reference, the MCP server docs or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 17,
      "popularity": {
        "githubStars": 52,
        "npmWeekly": 8645,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://hygraph.com/docs/api-reference",
      "llmsTxt": "https://hygraph.com/llms.txt",
      "capabilities": [
        "cms.content",
        "cms.publish",
        "cms.assets",
        "cms.localisation",
        "cms.schema"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "graphql",
        "closed-source",
        "no-card",
        "free-tier",
        "llms-txt",
        "webhooks",
        "typescript",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.4,
        "grade": "B",
        "agentReady": false,
        "rank": 324,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 7,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 64,
          "payments": 35,
          "reliability": 83,
          "schema": 78,
          "security": 63,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": 0,
        "verdict": "Tokens are limited by model, stage, locale and action, the GraphQL schema is typed and introspectable, and a hosted MCP server rejects delete and unpublish operations. Error bodies carry a message without a machine code, there are no idempotency keys, audit logs are Enterprise only, and no data processing agreement, sub-processor list or security.txt was found.",
        "bestFor": "Teams on Hygraph who want an agent to create, localise and publish entries, upload assets or change schema, with delete and unpublish kept out of reach on MCP.",
        "strengths": [
          "Permanent Auth Tokens are limited by model, stage, locale, environment and action, and a new token starts with no permissions enabled",
          "The hosted MCP server rejects `delete*` and `unpublish*` operations, and `submit_batch_migration` takes `dry_run` and applies schema changes in one transaction",
          "GraphQL field selection, `first`, `skip` and cursor arguments and typed filters size every response. The default page is 10 entries and the maximum 100",
          "The Hobby plan needs no card and includes 500,000 API calls a month, 1,000 entries and 3 API tokens",
          "`llms.txt` links a Markdown copy of every documentation section, and the changelog has dated entries for 31 August and 30 September 2026"
        ],
        "weaknesses": [
          "GraphQL error bodies carry a message and a `requestId` with no machine-readable code, and only asset transformation 429 responses are documented with `Retry-After`",
          "No idempotency keys in the reviewed documentation. Safe retries rest on `upsert` mutations keyed on a unique field",
          "Audit logs, backups with recovery and an uptime SLA are Enterprise only, and version history is absent on Hobby and 14 days on Growth",
          "No data processing agreement, named sub-processor list, security.txt or disclosure policy was found on hygraph.com. The privacy policy names categories of service provider only",
          "The only official SDK is `@hygraph/management-sdk` for JavaScript and TypeScript, and its public GitHub repository was last pushed on 13 September 2024"
        ],
        "agentNotes": [
          "Send the Permanent Auth Token as `Authorization: Bearer \u003ctoken\u003e` to `https://\u003cregion\u003e.hygraph.com/v2/\u003cprojectId\u003e/\u003cenvironment\u003e`. Read the schema by introspection first, because every type is generated from the project's models",
          "Mutations write to DRAFT. Call `publish\u003cModel\u003e` with `to: [PUBLISHED]` as a separate mutation, and pass `locales` to write or publish a localisation",
          "Stay under the plan's limit for uncached requests (5 a second on Hobby, 25 on Growth) and its concurrent mutations (5 and 10). Back off exponentially on 429",
          "Upload an asset with `createAsset`, then POST the file to the returned pre-signed URL, or pass `uploadUrl` for a remote file. The asset stays `ASSET_CREATE_PENDING` until processed",
          "Schema changes go to the Management API through `@hygraph/management-sdk` or the MCP tool `submit_batch_migration`. Version restore has no documented mutation, so read `\u003cmodel\u003eVersion` and write the old values back"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.4
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 64,
          "payments": 35,
          "reliability": 83,
          "schema": 78,
          "security": 63,
          "transparency": 45
        },
        "provenanceScore": 78,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-11-01",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install @hygraph/management-sdk",
        "claudeCode": "claude mcp add hygraph https://mcp-{REGION}.hygraph.com/{PROJECT_ID}/{ENVIRONMENT}/mcp \\\n  --transport http \\\n  --header \"Authorization: Bearer ${HYGRAPH_TOKEN}\"",
        "config": {
          "mcpServers": {
            "hygraph": {
              "args": [
                "mcp-remote",
                "https://mcp-{REGION}.hygraph.com/{PROJECT_ID}/master/mcp",
                "--header",
                "Authorization: Bearer ${HYGRAPH_TOKEN}"
              ],
              "command": "npx",
              "env": {
                "HYGRAPH_TOKEN": "token_here"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/cms.content",
        "tool": "https://letme.dev/hygraph"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Growth",
          "unit": "month",
          "usd": 199,
          "note": "10 seats, 1,000,000 API calls and 500 GB of asset traffic included"
        },
        {
          "item": "Additional API operations on Growth",
          "unit": "1k-requests",
          "usd": 0.02,
          "note": "sold as $0.20 per 10,000 API operations"
        },
        {
          "item": "Additional asset traffic on Growth",
          "unit": "gb",
          "usd": 0.2,
          "note": "per GB past the plan's 500 GB"
        }
      ],
      "provenance": {
        "legalEntity": "Hygraph GmbH",
        "domain": "hygraph.com",
        "domainRegistered": "2022-03-04",
        "endpointOnVendorDomain": true,
        "terms": "https://hygraph.com/terms",
        "privacy": "https://hygraph.com/privacy",
        "statusPage": "https://status.hygraph.com",
        "changelog": "https://hygraph.com/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The imprint and the privacy policy name Hygraph GmbH, Dircksenstraße 47, 10178 Berlin, registered at Amtsgericht Berlin Charlottenburg under HRB 250696 B.",
          "The Terms of Service define the Hygraph Services to include the cloud platform and the Hygraph API. The pricing page lists them as the online terms for Hobby and Growth, with custom terms on Enterprise.",
          "The privacy policy has a section on use of the Hygraph service and was last updated on 19 March 2025. It names categories of service provider and no companies. No data processing agreement was found on hygraph.com.",
          "The Content API answers at \u003cregion\u003e.hygraph.com, the Management API at management.hygraph.com, the MCP server at mcp.hygraph.com and the OAuth server at auth.hygraph.com.",
          "https://hygraph.com/.well-known/security.txt answered 404 on 8 October 2026.",
          "RDAP for hygraph.com gives a registration date of 2022-03-04. The product was named GraphCMS before that, and the older SDK is still on npm as `@graphcms/management`."
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/hygraph.json",
      "live": {
        "slug": "hygraph",
        "probe": {
          "target": "https://mcp.hygraph.com/mcp",
          "method": "get",
          "lastAt": "2026-11-07T22:56:02.415472337Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 130,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 84,
          "p95ms24h": 172,
          "samples24h": 244,
          "samples30d": 7335,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 233,
              "ok": 233
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.hygraph.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T22:57:03.465985205Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "hygraph/management-sdk",
            "version": "v1.6.1",
            "released": "2022-07-12",
            "seenAt": "2026-11-06T23:33:45.983282732Z"
          },
          {
            "registry": "npm",
            "name": "@hygraph/management-sdk",
            "version": "1.6.1",
            "seenAt": "2026-11-06T23:33:45.494613478Z"
          }
        ],
        "githubStars": 52,
        "npmWeekly": 8506,
        "securityTxt": {
          "url": "https://hygraph.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:38.083782324Z"
        },
        "llmsTxt": {
          "url": "https://hygraph.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:43.620279737Z"
        },
        "domain": {
          "domain": "hygraph.com",
          "registered": "2022-03-04",
          "source": "https://rdap.verisign.com/com/v1/domain/hygraph.com",
          "checkedAt": "2026-11-01T14:13:36.604689646Z"
        },
        "pages": [
          {
            "url": "https://hygraph.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:11:18.292616533Z",
            "changedAt": "2026-11-04T08:25:16.362105863Z",
            "fingerprint": "3527953c9d59"
          },
          {
            "url": "https://hygraph.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-07T14:11:21.460123953Z",
            "changedAt": "2026-10-28T04:19:18.115624781Z",
            "fingerprint": "a3279fa87009"
          },
          {
            "url": "https://hygraph.com/privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:11:22.538584231Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cf4fb9d76bd8"
          },
          {
            "url": "https://hygraph.com/terms",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:11:24.36183068Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "48b302df4eb6"
          }
        ],
        "github": {
          "repo": "hygraph/management-sdk",
          "checkedAt": "2026-11-02T08:55:24.162312188Z",
          "stars": 52,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2024-09-13T18:56:48Z",
          "openIssues": 7,
          "openPRs": 2,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 0,
          "replies": {
            "sampled": 11,
            "unanswered": 7,
            "medianDays": 6.2
          }
        },
        "updatedAt": "2026-11-07T22:57:03.465985205Z"
      }
    },
    "edges": [
      {
        "by": 36,
        "category": "reliability",
        "leads": "hygraph",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the local-software lines, since the MCP server is a stdio package the owner runs against their own instance. Official npm package with Node 20 or later and Bun stated (20). The monorepo has CI and the MCP app has vitest tests and smoke tests; whether they pass on main wasn't read (12 of 25). Open issues weren't read because the GitHub API refused us for its rate limit (10 of 25). 0.1.0 and 0.1.1 without release notes for the package (5 of 15). Pre-1.0, and the dev docs still call it beta (0). 20+12+10+5+0 = 47.",
          "b": "Graded on the GraphQL Content and Management APIs, with the hosted MCP server noted. Public status page at status.hygraph.com, now on incident.io, with the API, the Content API cache and the asset CDN for 11 regions (20). In the 90 days to 1 November 2026 its feed lists two incidents, both partial outages. On 7 August new sign-ups were unavailable for 36 minutes (11:38 to 12:14 UTC) with existing users unaffected, and on 16 October cache invalidation for the Content API in the AP South 1 shared region was delayed for 1 hour 47 minutes (09:13 to 11:01 UTC). Each hit one function or one region, so both read as minor (20 of 30). Rate limits published by plan as uncached requests a second (5, 25, up to 500) and concurrent operations (15). The docs give exponential backoff guidance with sample code. `Retry-After` is documented only for asset transformation limits, and there are no idempotency keys (10). The pricing page lists an Enterprise uptime SLA of up to 99.95%. The SLA document was not found (8). The APIs and the MCP server carry no beta label (10)."
        },
        "scores": {
          "a": 47,
          "b": 83
        }
      },
      {
        "by": 13,
        "category": "schema",
        "leads": "hygraph",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "The search tool exposes the instance's own OpenAPI spec, so the contract is machine-readable, though the tools themselves take JavaScript code (20 of 25). llms.txt and Markdown pages on dev.dotcms.com (10). The README says what each tool is for and gives examples; when not to use them isn't stated (12 of 20). Code strings rather than typed parameters for search and execute (4 of 15). Examples for both tools; error behaviour of the sandbox isn't documented (9 of 15). dotCMS changelogs are dated; the MCP package has no changelog (10 of 15). 20+10+12+4+9+10 = 65.",
          "b": "GraphQL introspection is on by default for each project's Content API, so the contract is machine-readable and specific to the project. The Management API answered 401 to an introspection query without a token, and no static schema file was found (20 of 25). A root `llms.txt` with a Markdown copy of every docs section under `/llms-full/` (10). The Management SDK page states when to use it and when not to, and the MCP tools reference gives each of 19 tools one line with a warning on `execute_graphql` (15). Inputs are typed per model with enums and required fields. Rich Text takes an AST and JSON fields are free-form (13). Request and response examples throughout, and an errors page for nine HTTP statuses. Error bodies carry a message only, with no code list (10). The endpoint path carries `/v2/` and the changelog is public and dated. No API versioning policy was found (10)."
        },
        "scores": {
          "a": 65,
          "b": 78
        }
      },
      {
        "by": 11,
        "category": "maintenance",
        "leads": "dotcms",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "dotCMS core tagged v26.11.06-03 on 6 November 2026; the MCP package's last release was 0.1.1 on 2 September (30). Core tags several times a week (20). GitHub issues and a community forum; response times weren't read because the GitHub API refused us for its rate limit (10 of 25). Not in the official MCP registry; official JavaScript client libraries (8 of 15). The MCP package's dependencies and CI state weren't read (7 of 10). 30+20+10+8+7 = 75.",
          "b": "The changelog's newest entry is still 30 September 2026, 32 days before 1 November, and no newer dated change was found (20). In the 90 days from 3 August, entries on 31 August and 30 September and `@hygraph/management-sdk` 1.6.1 on 19 August, per the 8 October check of npm, not re-read on 1 November (20). Public changelog, a community Slack, in-app chat and email support on Growth. The SDK's GitHub repository shows no commit since 13 September 2024 (9 of 15). The Management SDK was current on npm on 8 October. The official MCP registry still returns no Hygraph entry (11). The public repository does not carry the 2026 npm releases, so CI could not be seen (4)."
        },
        "scores": {
          "a": 75,
          "b": 64
        }
      },
      {
        "by": 8,
        "category": "transparency",
        "leads": "hygraph",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "dotCMS core is under the Business Source License 1.1, source-available rather than OSI, with an additional use grant under $5 million; the MCP package is GPL-3.0 on npm (20 of 30). The privacy policy of 8 September 2026 covers website visitors only; no cloud data-handling terms were found (10 of 30). A deprecations page, an LTS lifecycle and dated changelogs (16 of 20). Telemetry and sub-processors weren't established (5 of 20). 20+10+16+5 = 51.",
          "b": "Closed service under published Terms of Service from Hygraph GmbH, with the Management SDK under MIT (15 of 30). The privacy policy, last updated 19 March 2025, covers the service and lists six categories of service provider without naming them. Retention is stated only as the legal period, the terms disclaim liability for deleted content, and no data processing agreement was found (12). Dated notices for the 2025 move off the legacy asset system and a statement that the old `@graphcms/management` SDK is deprecated. The terms allow the service to change without prior notice (10). The status page and pricing page name 11 hosting regions. Sub-processors are not named (8)."
        },
        "scores": {
          "a": 54,
          "b": 62
        }
      }
    ],
    "facts": [
      {
        "a": "MCP server",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "dotCMS LLC",
        "b": "Hygraph GmbH",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://mcp.hygraph.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "BUSL-1.1",
        "b": "Proprietary service under Hygraph GmbH's Terms of Service. The `@hygraph/management-sdk` package is MIT",
        "name": "Licence"
      },
      {
        "a": "7",
        "b": "17",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-02",
        "b": "2026-09-30",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-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": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "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": "43 npm/wk",
        "b": "52 stars, 8.6k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Hygraph scores 67.4 (B) on agent readiness against dotCMS's 57.7 (C), and leads in 4 of 7 scored categories. dotCMS leads on maintenance \u0026 community.",
        "question": "Which is better for AI agents, dotCMS or Hygraph?"
      },
      {
        "answer": "dotCMS needs an API key. Hygraph takes an API key or an OAuth sign-in.",
        "question": "Do dotCMS and Hygraph need an API key?"
      },
      {
        "answer": "dotCMS runs on your own machine, with no hosted endpoint listed. Hygraph has a hosted endpoint at https://mcp.hygraph.com/mcp.",
        "question": "Can an agent call dotCMS and Hygraph without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Maintenance \u0026 community, 75 against 64"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "Enterprises already on dotCMS who want an agent to manage content and pages.",
        "slug": "dotcms",
        "watchFor": "Pre-1.0 package, with the dev docs still pointing at the beta tag"
      },
      {
        "aheadOn": [
          "Reliability, 83 against 47",
          "Schema \u0026 documentation, 78 against 65",
          "Transparency \u0026 trust, 62 against 54"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Free to start without a card"
        ],
        "goodFor": "Teams on Hygraph who want an agent to create, localise and publish entries, upload assets or change schema, with delete and unpublish kept out of reach on MCP.",
        "slug": "hygraph",
        "watchFor": "GraphQL error bodies carry a message and a `requestId` with no machine-readable code, and only asset transformation 429 responses are documented with `Retry-After`"
      }
    ],
    "history": {
      "dotcms": null,
      "hygraph": [
        {
          "causes": [
            "reliability",
            "time"
          ],
          "date": "2026-11-01",
          "delta": -2.1,
          "from": 69.5,
          "fromGrade": "B",
          "to": 67.4,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 69.3,
          "fromGrade": "B",
          "to": 69.5,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "cms.content",
      "name": "Content management"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/bcms-vs-dotcms.json",
        "title": "BCMS vs dotCMS",
        "url": "https://www.anchorterminal.com/compare/bcms-vs-dotcms"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bcms-vs-hygraph.json",
        "title": "BCMS vs Hygraph",
        "url": "https://www.anchorterminal.com/compare/bcms-vs-hygraph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-dotcms.json",
        "title": "ButterCMS vs dotCMS",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-dotcms"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-hygraph.json",
        "title": "ButterCMS vs Hygraph",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-hygraph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/contentstack-vs-dotcms.json",
        "title": "Contentstack vs dotCMS",
        "url": "https://www.anchorterminal.com/compare/contentstack-vs-dotcms"
      },
      {
        "json": "https://www.anchorterminal.com/compare/contentstack-vs-hygraph.json",
        "title": "Contentstack vs Hygraph",
        "url": "https://www.anchorterminal.com/compare/contentstack-vs-hygraph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cosmic-vs-dotcms.json",
        "title": "Cosmic vs dotCMS",
        "url": "https://www.anchorterminal.com/compare/cosmic-vs-dotcms"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cosmic-vs-hygraph.json",
        "title": "Cosmic vs Hygraph",
        "url": "https://www.anchorterminal.com/compare/cosmic-vs-hygraph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/datocms-vs-dotcms.json",
        "title": "DatoCMS vs dotCMS",
        "url": "https://www.anchorterminal.com/compare/datocms-vs-dotcms"
      },
      {
        "json": "https://www.anchorterminal.com/compare/datocms-vs-hygraph.json",
        "title": "DatoCMS vs Hygraph",
        "url": "https://www.anchorterminal.com/compare/datocms-vs-hygraph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-dotcms.json",
        "title": "Directus vs dotCMS",
        "url": "https://www.anchorterminal.com/compare/directus-vs-dotcms"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-hygraph.json",
        "title": "Directus vs Hygraph",
        "url": "https://www.anchorterminal.com/compare/directus-vs-hygraph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dotcms-vs-ghost.json",
        "title": "dotCMS vs Ghost",
        "url": "https://www.anchorterminal.com/compare/dotcms-vs-ghost"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dotcms-vs-kontent-ai.json",
        "title": "dotCMS vs Kontent.ai",
        "url": "https://www.anchorterminal.com/compare/dotcms-vs-kontent-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dotcms-vs-payload.json",
        "title": "dotCMS vs Payload",
        "url": "https://www.anchorterminal.com/compare/dotcms-vs-payload"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dotcms-vs-prismic.json",
        "title": "dotCMS vs Prismic",
        "url": "https://www.anchorterminal.com/compare/dotcms-vs-prismic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dotcms-vs-sanity.json",
        "title": "dotCMS vs Sanity",
        "url": "https://www.anchorterminal.com/compare/dotcms-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dotcms-vs-storyblok.json",
        "title": "dotCMS vs Storyblok",
        "url": "https://www.anchorterminal.com/compare/dotcms-vs-storyblok"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dotcms-vs-strapi.json",
        "title": "dotCMS vs Strapi",
        "url": "https://www.anchorterminal.com/compare/dotcms-vs-strapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dotcms-vs-webflow.json",
        "title": "dotCMS vs Webflow",
        "url": "https://www.anchorterminal.com/compare/dotcms-vs-webflow"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dotcms-vs-wordpress.json",
        "title": "dotCMS vs WordPress",
        "url": "https://www.anchorterminal.com/compare/dotcms-vs-wordpress"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ghost-vs-hygraph.json",
        "title": "Ghost vs Hygraph",
        "url": "https://www.anchorterminal.com/compare/ghost-vs-hygraph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hygraph-vs-kontent-ai.json",
        "title": "Hygraph vs Kontent.ai",
        "url": "https://www.anchorterminal.com/compare/hygraph-vs-kontent-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hygraph-vs-payload.json",
        "title": "Hygraph vs Payload",
        "url": "https://www.anchorterminal.com/compare/hygraph-vs-payload"
      },
      {
        "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/hygraph-vs-storyblok.json",
        "title": "Hygraph vs Storyblok",
        "url": "https://www.anchorterminal.com/compare/hygraph-vs-storyblok"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hygraph-vs-strapi.json",
        "title": "Hygraph vs Strapi",
        "url": "https://www.anchorterminal.com/compare/hygraph-vs-strapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hygraph-vs-webflow.json",
        "title": "Hygraph vs Webflow",
        "url": "https://www.anchorterminal.com/compare/hygraph-vs-webflow"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hygraph-vs-wordpress.json",
        "title": "Hygraph vs WordPress",
        "url": "https://www.anchorterminal.com/compare/hygraph-vs-wordpress"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 36,
        "dotcms": 47,
        "edge": "hygraph",
        "hygraph": 83,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 13,
        "dotcms": 65,
        "edge": "hygraph",
        "hygraph": 78,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 4,
        "dotcms": 68,
        "edge": "hygraph",
        "hygraph": 72,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 0,
        "dotcms": 63,
        "edge": "",
        "hygraph": 63,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 0,
        "dotcms": 35,
        "edge": "",
        "hygraph": 35,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 11,
        "dotcms": 75,
        "edge": "dotcms",
        "hygraph": 64,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 8,
        "dotcms": 54,
        "edge": "hygraph",
        "hygraph": 62,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Hygraph scores 67.4 (B) on agent readiness against dotCMS's 57.7 (C), and leads in 4 of 7 scored categories. dotCMS leads on maintenance \u0026 community. Both do content management.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "dotcms": "dotCMS's MCP server keeps the tool list to seven by letting the agent search the instance's OpenAPI spec and run API calls in a sandbox that never sees the token. It is a pre-1.0 package that needs a write token, and cloud prices are on request.",
      "hygraph": "Tokens are limited by model, stage, locale and action, the GraphQL schema is typed and introspectable, and a hosted MCP server rejects delete and unpublish operations. Error bodies carry a message without a machine code, there are no idempotency keys, audit logs are Enterprise only, and no data processing agreement, sub-processor list or security.txt was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/dotcms-vs-hygraph",
    "json": "https://www.anchorterminal.com/compare/dotcms-vs-hygraph.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/dotcms-vs-hygraph.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/dotcms-vs-hygraph.min.md"
  },
  "markdown": "Hygraph scores 67.4 (B) on agent readiness against dotCMS's 57.7 (C), and leads in 4 of 7 scored categories. dotCMS leads on maintenance \u0026 community. Both do content management.\n\n- dotCMS: grade C, 57.7/100, rank #784 of 1510. Markdown https://www.anchorterminal.com/tools/dotcms.md · JSON https://www.anchorterminal.com/api/v1/tools/dotcms.json\n- Hygraph: grade B, 67.4/100, rank #324 of 1510. Markdown https://www.anchorterminal.com/tools/hygraph.md · JSON https://www.anchorterminal.com/api/v1/tools/hygraph.json\n- Best headless CMS and website publishing for AI agents: https://www.anchorterminal.com/best/cms/index.md\n- All 136 cms comparisons: https://www.anchorterminal.com/compare/cms/index.md\n\n## Which one, for what\n\n### dotCMS (C)\n\nGood for: Enterprises already on dotCMS who want an agent to manage content and pages.\n\nAhead on:\n- Maintenance \u0026 community, 75 against 64\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: Pre-1.0 package, with the dev docs still pointing at the beta tag\n\n### Hygraph (B)\n\nGood for: Teams on Hygraph who want an agent to create, localise and publish entries, upload assets or change schema, with delete and unpublish kept out of reach on MCP.\n\nAhead on:\n- Reliability, 83 against 47\n- Schema \u0026 documentation, 78 against 65\n- Transparency \u0026 trust, 62 against 54\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Free to start without a card\n\nWatch for: GraphQL error bodies carry a message and a `requestId` with no machine-readable code, and only asset transformation 429 responses are documented with `Retry-After`\n\n\n## Why the edge\n\n### Reliability: Hygraph +36\n\n- dotCMS (47): Read with the local-software lines, since the MCP server is a stdio package the owner runs against their own instance. Official npm package with Node 20 or later and Bun stated (20). The monorepo has CI and the MCP app has vitest tests and smoke tests; whether they pass on main wasn't read (12 of 25). Open issues weren't read because the GitHub API refused us for its rate limit (10 of 25). 0.1.0 and 0.1.1 without release notes for the package (5 of 15). Pre-1.0, and the dev docs still call it beta (0). 20+12+10+5+0 = 47.\n- Hygraph (83): Graded on the GraphQL Content and Management APIs, with the hosted MCP server noted. Public status page at status.hygraph.com, now on incident.io, with the API, the Content API cache and the asset CDN for 11 regions (20). In the 90 days to 1 November 2026 its feed lists two incidents, both partial outages. On 7 August new sign-ups were unavailable for 36 minutes (11:38 to 12:14 UTC) with existing users unaffected, and on 16 October cache invalidation for the Content API in the AP South 1 shared region was delayed for 1 hour 47 minutes (09:13 to 11:01 UTC). Each hit one function or one region, so both read as minor (20 of 30). Rate limits published by plan as uncached requests a second (5, 25, up to 500) and concurrent operations (15). The docs give exponential backoff guidance with sample code. `Retry-After` is documented only for asset transformation limits, and there are no idempotency keys (10). The pricing page lists an Enterprise uptime SLA of up to 99.95%. The SLA document was not found (8). The APIs and the MCP server carry no beta label (10).\n\n### Schema \u0026 documentation: Hygraph +13\n\n- dotCMS (65): The search tool exposes the instance's own OpenAPI spec, so the contract is machine-readable, though the tools themselves take JavaScript code (20 of 25). llms.txt and Markdown pages on dev.dotcms.com (10). The README says what each tool is for and gives examples; when not to use them isn't stated (12 of 20). Code strings rather than typed parameters for search and execute (4 of 15). Examples for both tools; error behaviour of the sandbox isn't documented (9 of 15). dotCMS changelogs are dated; the MCP package has no changelog (10 of 15). 20+10+12+4+9+10 = 65.\n- Hygraph (78): GraphQL introspection is on by default for each project's Content API, so the contract is machine-readable and specific to the project. The Management API answered 401 to an introspection query without a token, and no static schema file was found (20 of 25). A root `llms.txt` with a Markdown copy of every docs section under `/llms-full/` (10). The Management SDK page states when to use it and when not to, and the MCP tools reference gives each of 19 tools one line with a warning on `execute_graphql` (15). Inputs are typed per model with enums and required fields. Rich Text takes an AST and JSON fields are free-form (13). Request and response examples throughout, and an errors page for nine HTTP statuses. Error bodies carry a message only, with no code list (10). The endpoint path carries `/v2/` and the changelog is public and dated. No API versioning policy was found (10).\n\n### Maintenance \u0026 community: dotCMS +11\n\n- dotCMS (75): dotCMS core tagged v26.11.06-03 on 6 November 2026; the MCP package's last release was 0.1.1 on 2 September (30). Core tags several times a week (20). GitHub issues and a community forum; response times weren't read because the GitHub API refused us for its rate limit (10 of 25). Not in the official MCP registry; official JavaScript client libraries (8 of 15). The MCP package's dependencies and CI state weren't read (7 of 10). 30+20+10+8+7 = 75.\n- Hygraph (64): The changelog's newest entry is still 30 September 2026, 32 days before 1 November, and no newer dated change was found (20). In the 90 days from 3 August, entries on 31 August and 30 September and `@hygraph/management-sdk` 1.6.1 on 19 August, per the 8 October check of npm, not re-read on 1 November (20). Public changelog, a community Slack, in-app chat and email support on Growth. The SDK's GitHub repository shows no commit since 13 September 2024 (9 of 15). The Management SDK was current on npm on 8 October. The official MCP registry still returns no Hygraph entry (11). The public repository does not carry the 2026 npm releases, so CI could not be seen (4).\n\n### Transparency \u0026 trust: Hygraph +8\n\n- dotCMS (54): dotCMS core is under the Business Source License 1.1, source-available rather than OSI, with an additional use grant under $5 million; the MCP package is GPL-3.0 on npm (20 of 30). The privacy policy of 8 September 2026 covers website visitors only; no cloud data-handling terms were found (10 of 30). A deprecations page, an LTS lifecycle and dated changelogs (16 of 20). Telemetry and sub-processors weren't established (5 of 20). 20+10+16+5 = 51.\n- Hygraph (62): Closed service under published Terms of Service from Hygraph GmbH, with the Management SDK under MIT (15 of 30). The privacy policy, last updated 19 March 2025, covers the service and lists six categories of service provider without naming them. Retention is stated only as the legal period, the terms disclaim liability for deleted content, and no data processing agreement was found (12). Dated notices for the 2025 move off the legacy asset system and a statement that the old `@graphcms/management` SDK is deprecated. The terms allow the service to change without prior notice (10). The status page and pricing page name 11 hosting regions. Sub-processors are not named (8).\n\n## Score by category\n\n| Category | Weight | dotCMS | Hygraph | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 47 | 83 | Hygraph +36 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 65 | 78 | Hygraph +13 |\n| Agent ergonomics | 13% (16.2 this run) | 68 | 72 | Hygraph +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 63 | 63 | even |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 35 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 75 | 64 | dotCMS +11 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 54 | 62 | Hygraph +8 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **57.7 · C** | **67.4 · B** | |\n\n## Facts side by side\n\n| Fact | dotCMS | Hygraph |\n| --- | --- | --- |\n| Kind | MCP server | HTTP API |\n| Vendor | dotCMS LLC | Hygraph GmbH |\n| Hosted endpoint | no (local only) | `https://mcp.hygraph.com/mcp` |\n| Transports | stdio | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | BUSL-1.1 | Proprietary service under Hygraph GmbH's Terms of Service. The `@hygraph/management-sdk` package is MIT |\n| Tools exposed | 7 | 17 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-02 | 2026-09-30 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | 2026-09-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 | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 43 npm/wk | 52 stars, 8.6k npm/wk |\n| Agent reviews | none | 3.5/5 (4) |\n\n## How the scores have moved\n\n### dotCMS\n\nNo score change since it was listed.\n\n### Hygraph\n\n- -2.1 on 1 November 2026: reliability, time\n- +0.2 on 27 October 2026: checklist\n\n## Verdicts\n\n**dotCMS.** dotCMS's MCP server keeps the tool list to seven by letting the agent search the instance's OpenAPI spec and run API calls in a sandbox that never sees the token. It is a pre-1.0 package that needs a write token, and cloud prices are on request.\n\n**Hygraph.** Tokens are limited by model, stage, locale and action, the GraphQL schema is typed and introspectable, and a hosted MCP server rejects delete and unpublish operations. Error bodies carry a message without a machine code, there are no idempotency keys, audit logs are Enterprise only, and no data processing agreement, sub-processor list or security.txt was found.\n\n## Before you call either\n\n### dotCMS\n\n1. Search the spec with `search` before writing an `execute` call, and return only the fields you need\n2. Use a token for a dedicated user and role, not an administrator's\n3. Confirm with the user before execute calls that publish, archive or delete content\n4. Keep results small with pick and first, since output is capped at about 25,000 characters\n5. Use download_assets for theme folders so files land on disk instead of in context\n\n### Hygraph\n\n1. Send the Permanent Auth Token as `Authorization: Bearer \u003ctoken\u003e` to `https://\u003cregion\u003e.hygraph.com/v2/\u003cprojectId\u003e/\u003cenvironment\u003e`. Read the schema by introspection first, because every type is generated from the project's models\n2. Mutations write to DRAFT. Call `publish\u003cModel\u003e` with `to: [PUBLISHED]` as a separate mutation, and pass `locales` to write or publish a localisation\n3. Stay under the plan's limit for uncached requests (5 a second on Hobby, 25 on Growth) and its concurrent mutations (5 and 10). Back off exponentially on 429\n4. Upload an asset with `createAsset`, then POST the file to the returned pre-signed URL, or pass `uploadUrl` for a remote file. The asset stays `ASSET_CREATE_PENDING` until processed\n5. Schema changes go to the Management API through `@hygraph/management-sdk` or the MCP tool `submit_batch_migration`. Version restore has no documented mutation, so read `\u003cmodel\u003eVersion` and write the old values back\n\n## Questions\n\n### Which is better for AI agents, dotCMS or Hygraph?\n\nHygraph scores 67.4 (B) on agent readiness against dotCMS's 57.7 (C), and leads in 4 of 7 scored categories. dotCMS leads on maintenance \u0026 community.\n\n### Do dotCMS and Hygraph need an API key?\n\ndotCMS needs an API key. Hygraph takes an API key or an OAuth sign-in.\n\n### Can an agent call dotCMS and Hygraph without installing anything?\n\ndotCMS runs on your own machine, with no hosted endpoint listed. Hygraph has a hosted endpoint at https://mcp.hygraph.com/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/dotcms-vs-hygraph.json, and with the fewest tokens: https://www.anchorterminal.com/compare/dotcms-vs-hygraph.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"dotcms\", \"b\": \"hygraph\"}`. From a terminal: `anchor compare dotcms hygraph`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/dotcms.json and https://www.anchorterminal.com/api/v1/tools/hygraph.json\n\n## Other comparisons with dotCMS or Hygraph\n\n- [BCMS vs dotCMS](https://www.anchorterminal.com/compare/bcms-vs-dotcms.md)\n- [BCMS vs Hygraph](https://www.anchorterminal.com/compare/bcms-vs-hygraph.md)\n- [ButterCMS vs dotCMS](https://www.anchorterminal.com/compare/buttercms-vs-dotcms.md)\n- [ButterCMS vs Hygraph](https://www.anchorterminal.com/compare/buttercms-vs-hygraph.md)\n- [Contentstack vs dotCMS](https://www.anchorterminal.com/compare/contentstack-vs-dotcms.md)\n- [Contentstack vs Hygraph](https://www.anchorterminal.com/compare/contentstack-vs-hygraph.md)\n- [Cosmic vs dotCMS](https://www.anchorterminal.com/compare/cosmic-vs-dotcms.md)\n- [Cosmic vs Hygraph](https://www.anchorterminal.com/compare/cosmic-vs-hygraph.md)\n- [DatoCMS vs dotCMS](https://www.anchorterminal.com/compare/datocms-vs-dotcms.md)\n- [DatoCMS vs Hygraph](https://www.anchorterminal.com/compare/datocms-vs-hygraph.md)\n- [Directus vs dotCMS](https://www.anchorterminal.com/compare/directus-vs-dotcms.md)\n- [Directus vs Hygraph](https://www.anchorterminal.com/compare/directus-vs-hygraph.md)\n- [dotCMS vs Ghost](https://www.anchorterminal.com/compare/dotcms-vs-ghost.md)\n- [dotCMS vs Kontent.ai](https://www.anchorterminal.com/compare/dotcms-vs-kontent-ai.md)\n- [dotCMS vs Payload](https://www.anchorterminal.com/compare/dotcms-vs-payload.md)\n- [dotCMS vs Prismic](https://www.anchorterminal.com/compare/dotcms-vs-prismic.md)\n- [dotCMS vs Sanity](https://www.anchorterminal.com/compare/dotcms-vs-sanity.md)\n- [dotCMS vs Storyblok](https://www.anchorterminal.com/compare/dotcms-vs-storyblok.md)\n- [dotCMS vs Strapi](https://www.anchorterminal.com/compare/dotcms-vs-strapi.md)\n- [dotCMS vs Webflow](https://www.anchorterminal.com/compare/dotcms-vs-webflow.md)\n- [dotCMS vs WordPress](https://www.anchorterminal.com/compare/dotcms-vs-wordpress.md)\n- [Ghost vs Hygraph](https://www.anchorterminal.com/compare/ghost-vs-hygraph.md)\n- [Hygraph vs Kontent.ai](https://www.anchorterminal.com/compare/hygraph-vs-kontent-ai.md)\n- [Hygraph vs Payload](https://www.anchorterminal.com/compare/hygraph-vs-payload.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- [Hygraph vs Storyblok](https://www.anchorterminal.com/compare/hygraph-vs-storyblok.md)\n- [Hygraph vs Strapi](https://www.anchorterminal.com/compare/hygraph-vs-strapi.md)\n- [Hygraph vs Webflow](https://www.anchorterminal.com/compare/hygraph-vs-webflow.md)\n- [Hygraph vs WordPress](https://www.anchorterminal.com/compare/hygraph-vs-wordpress.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "dotCMS vs Hygraph",
        "url": ""
      }
    ],
    "description": "Hygraph scores 67.4 (B) to dotCMS's 57.7 (C) for content management. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "dotCMS C 57.7",
      "Hygraph B 67.4",
      "scores"
    ],
    "h1": "dotCMS vs Hygraph",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/dotcms-vs-hygraph",
    "published": "2026-10-01",
    "section": "tools",
    "title": "dotCMS vs Hygraph for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/dotcms-vs-hygraph"
  },
  "tokens": {
    "markdown": 3950,
    "slim": 2030
  },
  "version": 1
}
