{
  "data": {
    "a": {
      "slug": "commercetools",
      "name": "commercetools",
      "vendor": "commercetools GmbH",
      "vendorUrl": "https://commercetools.com",
      "kind": "http-api",
      "category": "commerce",
      "summary": "Headless commerce platform from commercetools GmbH in Munich, with HTTP and GraphQL APIs for catalogue, carts, checkout, orders and customers. Agents reach it through the API, four SDKs or a managed MCP server per project.",
      "url": "https://www.anchorterminal.com/tools/commercetools",
      "markdownUrl": "https://www.anchorterminal.com/tools/commercetools.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/commercetools.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/commercetools.json",
      "dns": "commercetools.grade.anchorterminal.com",
      "repo": "https://github.com/commercetools/commercetools-api-reference",
      "license": "Proprietary service under the commercetools Master Service Agreement. The API specifications are public, the SDKs are MIT (TypeScript, PHP) or Apache 2.0 (Java, .NET) and Commerce MCP is MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.{region}.commercetools.com/{projectKey}",
      "packages": [
        {
          "registry": "npm",
          "name": "@commercetools/platform-sdk"
        },
        {
          "registry": "npm",
          "name": "@commercetools/commerce-mcp"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0. A person creates an API Client in the Merchant Centre (or through the API Clients API) with chosen scopes, and the secret is shown once. The client credentials flow at https://auth.{region}.commercetools.com/oauth/token returns a Bearer token valid for 48 hours by default. Scopes are view or manage per resource and per store, and `manage_project` grants everything. Password, anonymous-session and refresh flows exist for shoppers. A managed MCP server takes a token scoped to `mcp:{projectKey}:{mcpServerKey}` (30 days at most), OAuth client credentials discovery, or a browser sign-in with an Identity account. Access is self-serve through the trial sign-up form.",
      "pricing": "paid",
      "pricingNotes": "No public prices. The pricing page describes order-based pricing and sends buyers to sales, and the product is also sold through the AWS and Google Cloud marketplaces. A 60-day trial has every core commerce API and the Merchant Centre, needs no card and does not convert automatically, so an agent can start without a contract. InStore, Frontend and the agent products are not in the trial (https://commercetools.com/free-trial, checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, llms.txt or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 221261,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.commercetools.com/api/",
      "llmsTxt": "https://docs.commercetools.com/llms.txt",
      "openapi": "https://raw.githubusercontent.com/commercetools/commercetools-api-reference/main/oas/api/openapi.yaml",
      "capabilities": [
        "commerce.products",
        "commerce.cart",
        "commerce.checkout",
        "commerce.orders",
        "commerce.headless"
      ],
      "tags": [
        "hosted",
        "enterprise",
        "closed-source",
        "mcp",
        "oauth",
        "openapi",
        "graphql",
        "llms-txt",
        "typescript",
        "java",
        "php",
        "dotnet",
        "webhooks",
        "sales-led",
        "status-page",
        "sla",
        "soc2"
      ],
      "lastRelease": "2026-10-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.4,
        "grade": "B",
        "agentReady": false,
        "rank": 245,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 5,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 85,
          "payments": 20,
          "reliability": 78,
          "schema": 86,
          "security": 70,
          "transparency": 82
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -3,
        "negativeNotes": [
          "16 October 2026. The HTTP API began answering too many requests on non-production Projects with 429 and a new TooManyRequests error, where it had answered 503, announced in the release notes the same day. A response status changed for existing clients without advance notice (-3). https://docs.commercetools.com/api/releases/2026-10-16-introduced-rate-limiting-for-non-production-projects"
        ],
        "verdict": "A public OpenAPI file with 822 operations, per-resource OAuth scopes and a managed MCP server whose tools an administrator selects per agent. Prices are quoted by sales only, and production Projects have no documented rate limit. Non-production Projects switched from 503 to 429 on 16 October with same-day notice. A 60-day trial needs no card.",
        "bestFor": "Enterprises that already run or plan a composable commerce stack and want agents working across catalogue, pricing, carts and orders under scoped credentials.",
        "strengths": [
          "Public OpenAPI 3.0 file with 822 operations, plus RAML, a GraphQL schema, llms.txt and Markdown copies of every docs page",
          "OAuth 2.0 API Clients with view and manage scopes per resource, a token revocation endpoint, and no tokens accepted in URL parameters",
          "Managed MCP server per agent with a chosen tool list, field filtering and redaction, and readOnlyHint and destructiveHint on every tool since 1 October 2026",
          "99.9 per cent monthly availability SLA with service credits, published in the docs",
          "60-day trial with every core commerce API and no card"
        ],
        "weaknesses": [
          "No public price. The pricing page describes order-based pricing and sends buyers to sales",
          "Non-production Projects began answering 429 instead of 503 on 16 October 2026, announced the same day",
          "Managed MCP Servers, AI Hub and Platform Insights are excluded from the standard SLA",
          "API-wide change tracking needs the paid Audit Log Premium add-on. Audit Log Basic records Merchant Centre changes only",
          "No security.txt and no bug bounty found, and audit reports are released under NDA"
        ],
        "agentNotes": [
          "Use the auth and API hosts for the project's region, such as auth.europe-west1.gcp.commercetools.com and api.europe-west1.gcp.commercetools.com. There are five regions",
          "Send the resource's current `version` with every update or delete. On 409 ConcurrentModification, re-read the resource and retry only if the change is still needed",
          "On 429 wait for Retry-After or RateLimit-Reset. Retry 502 and 503 with exponential backoff from 200 ms, and check Content-Type before parsing an error body",
          "For MCP, ask for an API Client scoped to `mcp:{projectKey}:{mcpServerKey}` and a server limited to the tools the task needs, not `all`",
          "Keep page size at or under 500 and offset at or under 10,000. Product Search returns at most 100 per request"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 69.4
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 85,
          "payments": 20,
          "reliability": 78,
          "schema": 86,
          "security": 70,
          "transparency": 75
        },
        "provenanceScore": 88,
        "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 @commercetools/platform-sdk",
        "http": "curl https://{auth_host}/oauth/token -X POST \\\n  --basic --user \"{clientId}:{clientSecret}\" \\\n  -d \"grant_type=client_credentials\u0026scope=manage_project:{projectKey}\"\ncurl https://api.{region}.commercetools.com/{projectKey}/ \\\n  -X GET \\\n  -H \"Authorization: Bearer ${BEARER_TOKEN}\"",
        "config": {
          "mcpServers": {
            "managed-mcp-servers": {
              "headers": {
                "Authorization": "Bearer \u003cyour-ctp-token\u003e"
              },
              "type": "http",
              "url": "\u003cyour-mcp-server-url\u003e"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/commerce.products",
        "tool": "https://letme.dev/commercetools"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "commercetools GmbH",
        "domain": "commercetools.com",
        "domainRegistered": "2002-05-13",
        "endpointOnVendorDomain": true,
        "terms": "https://commercetools.com/msa",
        "privacy": "https://commercetools.com/privacy",
        "statusPage": "https://status.commercetools.com",
        "changelog": "https://docs.commercetools.com/docs/release-notes",
        "securityTxt": "none",
        "checked": "2026-11-01",
        "notes": [
          "The imprint names commercetools GmbH, Adams-Lehmann-Str. 44, 80797 Munich, Amtsgericht München HRB 161496.",
          "The Master Service Agreement at commercetools.com/msa governs paid use once an Order Form is signed. Trial use falls under the 60 Days Trial Agreement at commercetools.com/trial-agreement, last updated 24 July 2024.",
          "The privacy notice covers the websites in section III and customers' use of the service in section IV. Data that customers store in the platform falls under the DPA at commercetools.com/dpa, last updated 1 October 2024.",
          "commercetools.com/.well-known/security.txt and docs.commercetools.com/.well-known/security.txt both return 404.",
          "API, auth and MCP hosts are subdomains of commercetools.com for each region. RDAP gives a registration date of 2002-05-13 for commercetools.com."
        ],
        "score": 88
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/commercetools.json",
      "live": {
        "slug": "commercetools",
        "probe": {
          "target": "https://api.{region}.commercetools.com/{projectKey}",
          "method": "get",
          "lastAt": "2026-11-08T01:01:25.354629701Z",
          "lastOk": false,
          "lastStatus": 0,
          "lastMs": 0,
          "lastNote": "invalid character \"{\" in host name",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 244,
          "samples30d": 7507,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 70,
              "ok": 0
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 0
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 0
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 0
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 0
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 0
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 0
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 0
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 0
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 0
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 0
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 0
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 0
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 0
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-10-30",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 0
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 0
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 0
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 0
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 0
            },
            {
              "date": "2026-11-07",
              "probes": 243,
              "ok": 0
            },
            {
              "date": "2026-11-08",
              "probes": 11,
              "ok": 0
            }
          ],
          "outages": [
            {
              "start": "2026-10-08T17:31:33.341731081Z",
              "end": "0001-01-01T00:00:00Z",
              "note": "invalid character \"{\" in host name"
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.commercetools.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-08T00:31:09.625263584Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@commercetools/commerce-mcp",
            "version": "4.2.3",
            "seenAt": "2026-11-08T00:46:26.66303401Z"
          },
          {
            "registry": "npm",
            "name": "@commercetools/platform-sdk",
            "version": "9.8.0",
            "seenAt": "2026-11-08T00:46:24.485741087Z"
          }
        ],
        "githubStars": 66,
        "npmWeekly": 164517,
        "securityTxt": {
          "url": "https://commercetools.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:42.081917171Z"
        },
        "llmsTxt": {
          "url": "https://docs.commercetools.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:10.887222373Z"
        },
        "domain": {
          "domain": "commercetools.com",
          "registered": "2002-05-13",
          "source": "https://rdap.verisign.com/com/v1/domain/commercetools.com",
          "checkedAt": "2026-11-01T14:11:15.439043485Z"
        },
        "pages": [
          {
            "url": "https://docs.commercetools.com/docs/release-notes",
            "kind": "changelog",
            "status": 404,
            "checkedAt": "2026-11-07T14:05:45.405248318Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://docs.commercetools.com/api/releases",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-07T14:05:43.166434262Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0f6b2e288486"
          },
          {
            "url": "https://commercetools.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:01:49.254425281Z",
            "changedAt": "2026-11-06T13:24:31.454401768Z",
            "fingerprint": "053457a29e37"
          },
          {
            "url": "https://commercetools.com/msa",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:01:46.999826028Z",
            "changedAt": "2026-11-06T13:24:28.651465743Z",
            "fingerprint": "8855db2a6e5f"
          }
        ],
        "github": {
          "repo": "commercetools/commercetools-api-reference",
          "checkedAt": "2026-11-02T08:40:56.497751627Z",
          "stars": 66,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-30T16:36:22Z",
          "openIssues": 5,
          "openPRs": 1,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 2,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 14,
            "failure": 36,
            "other": 0,
            "latest": "failure",
            "latestAt": "2026-10-30T16:50:19Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 2,
            "medianDays": 2.8
          }
        },
        "updatedAt": "2026-11-08T01:01:25.354629701Z"
      }
    },
    "answer": "commercetools scores 69.4 (B) on agent readiness against doola MCP's 28 (F), and leads in every scored category.",
    "b": {
      "slug": "doola-mcp",
      "name": "doola MCP",
      "vendor": "doola",
      "vendorUrl": "https://doola.com",
      "kind": "mcp",
      "category": "commerce",
      "summary": "doola's hosted MCP server lets an agent form a US LLC or C-Corp in any state or DC from a conversation, covering entity type, name, members, ownership and the state filing, and check on existing doola companies.",
      "url": "https://www.anchorterminal.com/tools/doola-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/doola-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/doola-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/doola-mcp.json",
      "dns": "doola-mcp.grade.anchorterminal.com",
      "repo": "https://github.com/doolahq/plugins",
      "license": "Proprietary service. The plugin repository's MIT licence covers the manifests",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.doola.com",
      "packages": [],
      "auth": "oauth",
      "authNotes": "OAuth with a doola account on the first tool call; tokens are held by the client and can be revoked in doola's account settings.",
      "pricing": "paid",
      "pricingNotes": "Formation plans from $297 a year plus state fees (renewing at $300), up to $1,999 a year plus state fees. The MCP server itself is free to connect (checked 2026-11-07).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the MCP docs or pricing page (checked 2026-11-07).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-07"
      },
      "docsUrl": "https://doola.com",
      "registryName": "io.github.doolahq/doola",
      "capabilities": [
        "legal.company-formation",
        "commerce.checkout"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "remote-mcp",
        "oauth",
        "paid",
        "mcp-registry"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 28,
        "grade": "F",
        "agentReady": false,
        "rank": 1430,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 20,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 23,
          "maintenance": 70,
          "payments": 10,
          "reliability": 15,
          "schema": 26,
          "security": 36,
          "transparency": 38
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-07"
        },
        "negative": 0,
        "verdict": "doola's MCP server takes on a real legal task, forming a US company end to end from a chat, behind OAuth. Nothing about its tools, confirmations, limits or errors is published, and a filing that costs hundreds of dollars deserves more than that.",
        "bestFor": "Founders, including non-US founders, who want an agent to form a US company for them.",
        "strengths": [
          "Forms a US LLC or C-Corp in any state from a conversation",
          "OAuth with revocation in account settings",
          "Plugins for Claude Code, Grok Build and Cursor",
          "Official registry entry and a public plugin repository"
        ],
        "weaknesses": [
          "No published tool list, schemas or errors",
          "No documented confirmation before a paid filing",
          "No free tier; formation from $297 a year plus state fees",
          "Status page unreachable and no llms.txt"
        ],
        "agentNotes": [
          "Confirm the entity type, state, name, members and price with the user before filing",
          "A filing is a paid legal act; never retry one without checking its status first",
          "Use the status tools on existing companies before starting a new formation"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "F",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 28
          }
        ],
        "editorialScores": {
          "ergonomics": 23,
          "maintenance": 70,
          "payments": 10,
          "reliability": 15,
          "schema": 26,
          "security": 36,
          "transparency": 30
        },
        "provenanceScore": 46,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-07",
            "maintenance": "2026-11-07",
            "payments": "2026-11-07",
            "reliability": "2026-11-07",
            "schema": "2026-11-07",
            "security": "2026-11-07",
            "transparency": "2026-11-07"
          },
          "last": "2026-11-07",
          "oldest": "2026-11-07",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "claudeCode": "claude plugin marketplace add doolahq/plugins \u0026\u0026 claude plugin install doola@doola",
        "config": {
          "mcpServers": {
            "doola": {
              "url": "https://mcp.doola.com"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/legal.company-formation",
        "tool": "https://letme.dev/doola-mcp"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "doola",
        "domain": "doola.com",
        "domainRegistered": "",
        "domainNote": "Not looked up: RDAP isn't requested under the 1 November 2026 rules.",
        "endpointOnVendorDomain": true,
        "terms": "https://doola.com/terms-of-service",
        "privacy": "https://doola.com/privacy-policy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-07",
        "notes": [
          "Terms last updated July 2026. The plugin repository's licence names doola."
        ],
        "score": 46
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/doola-mcp.json",
      "live": {
        "slug": "doola-mcp",
        "probe": {
          "target": "https://mcp.doola.com",
          "method": "mcp-initialize",
          "lastAt": "2026-11-08T00:55:37.012153631Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 176,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 113,
          "p95ms24h": 201,
          "samples24h": 63,
          "samples30d": 63,
          "days": [
            {
              "date": "2026-11-07",
              "probes": 53,
              "ok": 53
            },
            {
              "date": "2026-11-08",
              "probes": 10,
              "ok": 10
            }
          ]
        },
        "githubStars": 0,
        "updatedAt": "2026-11-08T00:55:37.012153631Z"
      }
    },
    "edges": [
      {
        "by": 63,
        "category": "reliability",
        "leads": "commercetools",
        "name": "Reliability",
        "reasons": {
          "a": "Graded on the HTTP API with the hosted lines. status.commercetools.com lists seven components across five regions with a dated history (20). The history pages sit under /pages/, which the status site's robots.txt disallows, so they weren't re-read on 1 November. The 8 October check read the history and found only the API errors in Europe (Google Cloud) on 10 and 30 July, which have now left the 90-day window, and nothing on the API component from 3 August to 8 October. For 9 October to 1 November, the status page's own month metrics, read on 1 November, show 100.00 per cent uptime for the APIs in all five regions and every component operational. Those metrics rule out downtime on the API but don't list partial or degraded incidents, which this run counts as minor, so the 24 days since 8 October aren't shown to be clean. Minor at most (20 of 30, was 15, cause time). The HTTP API applies rate limiting only to non-production Projects since 16 October, with RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset headers, but the docs say the limit varies and give no number, and production Projects have none. Numbers exist for query size (500 per page, offset 10,000), the Knowledge MCP (100 requests per 15 minutes per IP) and Managed MCP Servers (1,000,000 tool calls a project a month) (5). Retry guidance covers 429 (wait for Retry-After or RateLimit-Reset), 502 and 503 with exponential backoff, and 409 handling through resource versions. There are no idempotency keys (13). 99.9 per cent monthly availability with service credits of 10 to 50 per cent, though Managed MCP Servers are excluded (10). The API and Managed MCP Servers are not marked beta (10). 20 + 20 + 5 + 13 + 10 + 10 = 78.",
          "b": "status.doola.com wasn't reachable (0). No history (5). No rate limits found (0). No retry or idempotency guidance for filings (0). No SLA found (0). Not labelled beta (10). 0 + 5 + 0 + 0 + 0 + 10 = 15."
        },
        "scores": {
          "a": 78,
          "b": 15
        }
      },
      {
        "by": 60,
        "category": "schema",
        "leads": "commercetools",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "OpenAPI 3.0 file of 3.1 MB with 822 operations in commercetools/commercetools-api-reference, last changed on 29 September 2026 while the RAML beside it was updated on 30 October (the new TooManyRequests error is in the RAML, not yet in the OpenAPI file), with RAML and a GraphQL schema beside it (25). llms.txt, and every docs page is served as Markdown at the same path with .md (10). The API reference describes each resource, field and update action, and a Knowledge MCP searches the docs and validates requests. Guidance on when not to use a call is thin (14). Typed drafts and update actions with required fields, enums and length limits (13). Error codes are listed by HTTP status with type definitions, and the guides carry request and response examples. The OpenAPI file itself has few examples (12). The API is versionless by policy, with dated release notes and an RSS feed. The managed MCP server follows semver with pinned major versions (12).",
          "b": "No tool list or schemas published; tools not read without sign-in (10 of 25). No llms.txt found (0). The README describes the flow, not the tools (5 of 20). Inputs not verifiable (3 of 15). Install examples only (3 of 15). Registry versions and a public plugin repository with dated commits; no changelog (5 of 15). 10 + 0 + 5 + 3 + 3 + 5 = 26."
        },
        "scores": {
          "a": 86,
          "b": 26
        }
      },
      {
        "by": 60,
        "category": "ergonomics",
        "leads": "commercetools",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "REST queries take limit, offset, sort, where predicates and reference expansion, and GraphQL selects fields. Commerce MCP lists 122 tool names, which is heavy, but an administrator picks the tools per server, `read_all` gives a read-only set, fields can be filtered, and the self-hosted package loads tools on demand above 30 (20). Pagination, filtering and limits on every query endpoint (20). JSON errors with named codes per status, including TooManyRequests with a 429 since 16 October. Errors from the load balancer can be HTML or empty (17). Updates and deletes need the resource version, which makes a repeated write fail safely, and MCP tools carry readOnlyHint, destructiveHint and openWorldHint from 1 October 2026. No idempotency key for creates (13). SDKs for Java, TypeScript, PHP and .NET. Changes go through typed update actions, which take more parameters than a plain patch (13).",
          "b": "Tool count not published (5). Nothing on paging or output size (5 of 20). No documented errors (0). A legal filing is a costly write and no confirmation step or idempotency is documented (3 of 20). Plugins for Claude Code, Grok Build and Cursor and one URL (10 of 15). 5 + 5 + 0 + 3 + 10 = 23."
        },
        "scores": {
          "a": 83,
          "b": 23
        }
      },
      {
        "by": 44,
        "category": "transparency",
        "leads": "commercetools",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under a public Master Service Agreement and a public 60-day trial agreement. The SDKs are MIT or Apache 2.0 and Commerce MCP is MIT (17). A privacy notice with a section for customers, a public DPA last updated 1 October 2024 and a sub-processor list. The DPA says personal data is deleted promptly at termination without a period in days, and the security page says the DPA is available on request while it is published at commercetools.com/dpa (22). Breaking changes are announced three months ahead and removals six months ahead in release notes, and a deprecations archive gives dates. The policy keeps a right to make larger changes with direct notice (16). Sub-processors listed with purpose, hosting location and product, updated 24 August 2026 (20).",
          "b": "Plugin repository MIT (copyright 2026 doola); service closed under terms updated July 2026 (15). Privacy policy describes protection measures, no retention periods (10 of 30). No deprecation policy (0). Subprocessors not found (5 of 20). 15 + 10 + 0 + 5 = 30."
        },
        "scores": {
          "a": 82,
          "b": 38
        }
      },
      {
        "by": 34,
        "category": "security",
        "leads": "commercetools",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "OAuth 2.0 client credentials through API Clients with view and manage scopes per resource and per store, tokens that last 48 hours by default, an RFC 7009 revocation endpoint, and no tokens in URL parameters. Each managed MCP server has its own scope, `mcp:{projectKey}:{mcpServerKey}`, with tokens capped at 30 days (28). Read-only scopes and tool sets, per-server tool lists, field redaction, and an Identity mode that filters tools by the signed-in user's permissions. No confirmation step for destructive tools was found (15). Tool results carry merchant and shopper text. The docs explain the confused deputy risk and field redaction but give no prompt-injection guidance (6). Audit Log Basic records Merchant Centre changes only. Changes through the API need the Audit Log Premium add-on, and MCP usage tracking needs the Platform Insights add-on (9). SOC 2, ISO 27001 and Cyber Essentials are listed on the security page, with reports under NDA. The Commerce MCP repository has a SECURITY.md that asks for email reports. No security.txt (404) and no bug bounty found, and the trust centre refused our reader (12).",
          "b": "OAuth with revocation; scopes not published (20 of 30). No read-only mode; no documented confirmation before a filing (3 of 20). Inputs are the user's own details (10). No audit log found (0). No security.txt or programme found (3 of 20). 20 + 3 + 10 + 0 + 3 = 36."
        },
        "scores": {
          "a": 70,
          "b": 36
        }
      },
      {
        "by": 15,
        "category": "maintenance",
        "leads": "commercetools",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Release notes dated 30 October 2026 (InStore), with API entries on 23 October (frozen Cart prices, Audit Log) and 22 October (Category Store assignments) (30). More than twenty dated entries between 8 and 30 October alone (20). Public release notes with RSS, and standard support with published first-response targets of 12 hours for problems and 48 hours for questions, per the 8 October check. GitHub issue handling wasn't read (12). Four official SDKs on a monthly schedule, with @commercetools/platform-sdk 9.7.0 tagged on 9 October 2026 (15). The Commerce MCP repository runs quality and release workflows with changesets, and its changelog adds 4.2.3 (a dependency update) on 23 October after six tagged releases between 3 August and 30 September 2026. Its server.json still names version 4.1.0 (8). 30 + 20 + 12 + 15 + 8 = 85.",
          "b": "Plugin repository commit and registry update on 3 November and 28 October 2026 (30). Several dated merges in 90 days (20 of 20). Repository issues not read (0). Official registry entry io.github.doolahq/doola (15). Plugin manifests published by a registry workflow (5 of 10). 30 + 20 + 0 + 15 + 5 = 70. Registry presence read from Anchor Terminal's own daily import of the official MCP registry (/api/v1/registry.json, 6 November 2026), not the registry's API."
        },
        "scores": {
          "a": 85,
          "b": 70
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "commercetools GmbH",
        "b": "doola",
        "name": "Vendor"
      },
      {
        "a": "https://api.{region}.commercetools.com/{projectKey}",
        "b": "https://mcp.doola.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the commercetools Master Service Agreement. The API specifications are public, the SDKs are MIT (TypeScript, PHP) or Apache 2.0 (Java, .NET) and Commerce MCP is MIT",
        "b": "Proprietary service. The plugin repository's MIT licence covers the manifests",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.doolahq/doola",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-30",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "not read yet",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "not read yet",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "221k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "commercetools scores 69.4 (B) on agent readiness against doola MCP's 28 (F), and leads in every scored category.",
        "question": "Which is better for AI agents, commercetools or doola MCP?"
      },
      {
        "answer": "Both use an OAuth sign-in.",
        "question": "Do commercetools and doola MCP need an API key?"
      },
      {
        "answer": "Yes. commercetools has a hosted endpoint at https://api.{region}.commercetools.com/{projectKey} and doola MCP at https://mcp.doola.com.",
        "question": "Can an agent call commercetools and doola MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 78 against 15",
          "Schema \u0026 documentation, 86 against 26",
          "Agent ergonomics, 83 against 23",
          "Security \u0026 auth, 70 against 36",
          "Payments \u0026 pricing, 20 against 10",
          "Maintenance \u0026 community, 85 against 70",
          "Transparency \u0026 trust, 82 against 38"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "Enterprises that already run or plan a composable commerce stack and want agents working across catalogue, pricing, carts and orders under scoped credentials.",
        "slug": "commercetools",
        "watchFor": "No public price. The pricing page describes order-based pricing and sends buyers to sales"
      },
      {
        "aheadOn": null,
        "also": [
          "No incidents deducted, where commercetools loses 3 points for them"
        ],
        "goodFor": "Founders, including non-US founders, who want an agent to form a US company for them.",
        "slug": "doola-mcp",
        "watchFor": "No published tool list, schemas or errors"
      }
    ],
    "history": {
      "commercetools": [
        {
          "causes": [
            "event",
            "time"
          ],
          "date": "2026-11-01",
          "delta": -2,
          "from": 71.4,
          "fromGrade": "BB",
          "to": 69.4,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 71.3,
          "fromGrade": "BB",
          "to": 71.4,
          "toGrade": "BB"
        }
      ],
      "doola-mcp": null
    },
    "job": {
      "capability": "commerce.checkout",
      "name": "Commerce checkout"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-commerce-vs-commercetools.json",
        "title": "Adobe Commerce (Magento) vs commercetools",
        "url": "https://www.anchorterminal.com/compare/adobe-commerce-vs-commercetools"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentzon-vs-commercetools.json",
        "title": "Agentzon vs commercetools",
        "url": "https://www.anchorterminal.com/compare/agentzon-vs-commercetools"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bigcommerce-vs-commercetools.json",
        "title": "BigCommerce API + MCP vs commercetools",
        "url": "https://www.anchorterminal.com/compare/bigcommerce-vs-commercetools"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-commercetools.json",
        "title": "Commerce Layer API + MCP vs commercetools",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-commercetools"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-ecwid.json",
        "title": "commercetools vs Ecwid by Lightspeed",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-ecwid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-elastic-path.json",
        "title": "commercetools vs Elastic Path API + MCP",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-elastic-path"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-fabric.json",
        "title": "commercetools vs Fabric",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-fabric"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-medusa.json",
        "title": "commercetools vs Medusa API + MCP",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-medusa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-saleor.json",
        "title": "commercetools vs Saleor API + MCP",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-saleor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-shopify.json",
        "title": "commercetools vs Shopify API + MCP",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-shopify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-shopware.json",
        "title": "commercetools vs Shopware",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-shopware"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-snipcart.json",
        "title": "commercetools vs Snipcart API + MCP",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-snipcart"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-spree-commerce.json",
        "title": "commercetools vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-spree-commerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-square.json",
        "title": "commercetools vs Square",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-square"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-swell.json",
        "title": "commercetools vs Swell",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-swell"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-vendure.json",
        "title": "commercetools vs Vendure",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-wix.json",
        "title": "commercetools vs Wix Stores and eCommerce API",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-wix"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commercetools-vs-woocommerce.json",
        "title": "commercetools vs WooCommerce API + MCP",
        "url": "https://www.anchorterminal.com/compare/commercetools-vs-woocommerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/adobe-commerce-vs-doola-mcp.json",
        "title": "Adobe Commerce (Magento) vs doola MCP",
        "url": "https://www.anchorterminal.com/compare/adobe-commerce-vs-doola-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentzon-vs-doola-mcp.json",
        "title": "Agentzon vs doola MCP",
        "url": "https://www.anchorterminal.com/compare/agentzon-vs-doola-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bigcommerce-vs-doola-mcp.json",
        "title": "BigCommerce API + MCP vs doola MCP",
        "url": "https://www.anchorterminal.com/compare/bigcommerce-vs-doola-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-doola-mcp.json",
        "title": "Commerce Layer API + MCP vs doola MCP",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-doola-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doola-mcp-vs-elastic-path.json",
        "title": "doola MCP vs Elastic Path API + MCP",
        "url": "https://www.anchorterminal.com/compare/doola-mcp-vs-elastic-path"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doola-mcp-vs-fabric.json",
        "title": "doola MCP vs Fabric",
        "url": "https://www.anchorterminal.com/compare/doola-mcp-vs-fabric"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doola-mcp-vs-medusa.json",
        "title": "doola MCP vs Medusa API + MCP",
        "url": "https://www.anchorterminal.com/compare/doola-mcp-vs-medusa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doola-mcp-vs-saleor.json",
        "title": "doola MCP vs Saleor API + MCP",
        "url": "https://www.anchorterminal.com/compare/doola-mcp-vs-saleor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doola-mcp-vs-shopify.json",
        "title": "doola MCP vs Shopify API + MCP",
        "url": "https://www.anchorterminal.com/compare/doola-mcp-vs-shopify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doola-mcp-vs-shopware.json",
        "title": "doola MCP vs Shopware",
        "url": "https://www.anchorterminal.com/compare/doola-mcp-vs-shopware"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doola-mcp-vs-snipcart.json",
        "title": "doola MCP vs Snipcart API + MCP",
        "url": "https://www.anchorterminal.com/compare/doola-mcp-vs-snipcart"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doola-mcp-vs-spree-commerce.json",
        "title": "doola MCP vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/doola-mcp-vs-spree-commerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doola-mcp-vs-square.json",
        "title": "doola MCP vs Square",
        "url": "https://www.anchorterminal.com/compare/doola-mcp-vs-square"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doola-mcp-vs-swell.json",
        "title": "doola MCP vs Swell",
        "url": "https://www.anchorterminal.com/compare/doola-mcp-vs-swell"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doola-mcp-vs-vendure.json",
        "title": "doola MCP vs Vendure",
        "url": "https://www.anchorterminal.com/compare/doola-mcp-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doola-mcp-vs-wix.json",
        "title": "doola MCP vs Wix Stores and eCommerce API",
        "url": "https://www.anchorterminal.com/compare/doola-mcp-vs-wix"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doola-mcp-vs-woocommerce.json",
        "title": "doola MCP vs WooCommerce API + MCP",
        "url": "https://www.anchorterminal.com/compare/doola-mcp-vs-woocommerce"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 63,
        "commercetools": 78,
        "doola-mcp": 15,
        "edge": "commercetools",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 60,
        "commercetools": 86,
        "doola-mcp": 26,
        "edge": "commercetools",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 60,
        "commercetools": 83,
        "doola-mcp": 23,
        "edge": "commercetools",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 34,
        "commercetools": 70,
        "doola-mcp": 36,
        "edge": "commercetools",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 10,
        "commercetools": 20,
        "doola-mcp": 10,
        "edge": "commercetools",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "commercetools": 85,
        "doola-mcp": 70,
        "edge": "commercetools",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 44,
        "commercetools": 82,
        "doola-mcp": 38,
        "edge": "commercetools",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "commercetools scores 69.4 (B) on agent readiness against doola MCP's 28 (F), and leads in every scored category. Both do commerce checkout.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "commercetools": "A public OpenAPI file with 822 operations, per-resource OAuth scopes and a managed MCP server whose tools an administrator selects per agent. Prices are quoted by sales only, and production Projects have no documented rate limit. Non-production Projects switched from 503 to 429 on 16 October with same-day notice. A 60-day trial needs no card.",
      "doola-mcp": "doola's MCP server takes on a real legal task, forming a US company end to end from a chat, behind OAuth. Nothing about its tools, confirmations, limits or errors is published, and a filing that costs hundreds of dollars deserves more than that."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/commercetools-vs-doola-mcp",
    "json": "https://www.anchorterminal.com/compare/commercetools-vs-doola-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/commercetools-vs-doola-mcp.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/commercetools-vs-doola-mcp.min.md"
  },
  "markdown": "commercetools scores 69.4 (B) on agent readiness against doola MCP's 28 (F), and leads in every scored category. Both do commerce checkout.\n\n- commercetools: grade B, 69.4/100, rank #245 of 1510. Markdown https://www.anchorterminal.com/tools/commercetools.md · JSON https://www.anchorterminal.com/api/v1/tools/commercetools.json\n- doola MCP: grade F, 28/100, rank #1430 of 1510. Markdown https://www.anchorterminal.com/tools/doola-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/doola-mcp.json\n- Best commerce platforms and checkout APIs for AI agents: https://www.anchorterminal.com/best/commerce/index.md\n- All 189 commerce comparisons: https://www.anchorterminal.com/compare/commerce/index.md\n\n## Which one, for what\n\n### commercetools (B)\n\nGood for: Enterprises that already run or plan a composable commerce stack and want agents working across catalogue, pricing, carts and orders under scoped credentials.\n\nAhead on:\n- Reliability, 78 against 15\n- Schema \u0026 documentation, 86 against 26\n- Agent ergonomics, 83 against 23\n- Security \u0026 auth, 70 against 36\n- Payments \u0026 pricing, 20 against 10\n- Maintenance \u0026 community, 85 against 70\n- Transparency \u0026 trust, 82 against 38\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: No public price. The pricing page describes order-based pricing and sends buyers to sales\n\n### doola MCP (F)\n\nGood for: Founders, including non-US founders, who want an agent to form a US company for them.\n\nAlso in its favour:\n- No incidents deducted, where commercetools loses 3 points for them\n\nWatch for: No published tool list, schemas or errors\n\n\n## Why the edge\n\n### Reliability: commercetools +63\n\n- commercetools (78): Graded on the HTTP API with the hosted lines. status.commercetools.com lists seven components across five regions with a dated history (20). The history pages sit under /pages/, which the status site's robots.txt disallows, so they weren't re-read on 1 November. The 8 October check read the history and found only the API errors in Europe (Google Cloud) on 10 and 30 July, which have now left the 90-day window, and nothing on the API component from 3 August to 8 October. For 9 October to 1 November, the status page's own month metrics, read on 1 November, show 100.00 per cent uptime for the APIs in all five regions and every component operational. Those metrics rule out downtime on the API but don't list partial or degraded incidents, which this run counts as minor, so the 24 days since 8 October aren't shown to be clean. Minor at most (20 of 30, was 15, cause time). The HTTP API applies rate limiting only to non-production Projects since 16 October, with RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset headers, but the docs say the limit varies and give no number, and production Projects have none. Numbers exist for query size (500 per page, offset 10,000), the Knowledge MCP (100 requests per 15 minutes per IP) and Managed MCP Servers (1,000,000 tool calls a project a month) (5). Retry guidance covers 429 (wait for Retry-After or RateLimit-Reset), 502 and 503 with exponential backoff, and 409 handling through resource versions. There are no idempotency keys (13). 99.9 per cent monthly availability with service credits of 10 to 50 per cent, though Managed MCP Servers are excluded (10). The API and Managed MCP Servers are not marked beta (10). 20 + 20 + 5 + 13 + 10 + 10 = 78.\n- doola MCP (15): status.doola.com wasn't reachable (0). No history (5). No rate limits found (0). No retry or idempotency guidance for filings (0). No SLA found (0). Not labelled beta (10). 0 + 5 + 0 + 0 + 0 + 10 = 15.\n\n### Schema \u0026 documentation: commercetools +60\n\n- commercetools (86): OpenAPI 3.0 file of 3.1 MB with 822 operations in commercetools/commercetools-api-reference, last changed on 29 September 2026 while the RAML beside it was updated on 30 October (the new TooManyRequests error is in the RAML, not yet in the OpenAPI file), with RAML and a GraphQL schema beside it (25). llms.txt, and every docs page is served as Markdown at the same path with .md (10). The API reference describes each resource, field and update action, and a Knowledge MCP searches the docs and validates requests. Guidance on when not to use a call is thin (14). Typed drafts and update actions with required fields, enums and length limits (13). Error codes are listed by HTTP status with type definitions, and the guides carry request and response examples. The OpenAPI file itself has few examples (12). The API is versionless by policy, with dated release notes and an RSS feed. The managed MCP server follows semver with pinned major versions (12).\n- doola MCP (26): No tool list or schemas published; tools not read without sign-in (10 of 25). No llms.txt found (0). The README describes the flow, not the tools (5 of 20). Inputs not verifiable (3 of 15). Install examples only (3 of 15). Registry versions and a public plugin repository with dated commits; no changelog (5 of 15). 10 + 0 + 5 + 3 + 3 + 5 = 26.\n\n### Agent ergonomics: commercetools +60\n\n- commercetools (83): REST queries take limit, offset, sort, where predicates and reference expansion, and GraphQL selects fields. Commerce MCP lists 122 tool names, which is heavy, but an administrator picks the tools per server, `read_all` gives a read-only set, fields can be filtered, and the self-hosted package loads tools on demand above 30 (20). Pagination, filtering and limits on every query endpoint (20). JSON errors with named codes per status, including TooManyRequests with a 429 since 16 October. Errors from the load balancer can be HTML or empty (17). Updates and deletes need the resource version, which makes a repeated write fail safely, and MCP tools carry readOnlyHint, destructiveHint and openWorldHint from 1 October 2026. No idempotency key for creates (13). SDKs for Java, TypeScript, PHP and .NET. Changes go through typed update actions, which take more parameters than a plain patch (13).\n- doola MCP (23): Tool count not published (5). Nothing on paging or output size (5 of 20). No documented errors (0). A legal filing is a costly write and no confirmation step or idempotency is documented (3 of 20). Plugins for Claude Code, Grok Build and Cursor and one URL (10 of 15). 5 + 5 + 0 + 3 + 10 = 23.\n\n### Transparency \u0026 trust: commercetools +44\n\n- commercetools (82): Closed service under a public Master Service Agreement and a public 60-day trial agreement. The SDKs are MIT or Apache 2.0 and Commerce MCP is MIT (17). A privacy notice with a section for customers, a public DPA last updated 1 October 2024 and a sub-processor list. The DPA says personal data is deleted promptly at termination without a period in days, and the security page says the DPA is available on request while it is published at commercetools.com/dpa (22). Breaking changes are announced three months ahead and removals six months ahead in release notes, and a deprecations archive gives dates. The policy keeps a right to make larger changes with direct notice (16). Sub-processors listed with purpose, hosting location and product, updated 24 August 2026 (20).\n- doola MCP (38): Plugin repository MIT (copyright 2026 doola); service closed under terms updated July 2026 (15). Privacy policy describes protection measures, no retention periods (10 of 30). No deprecation policy (0). Subprocessors not found (5 of 20). 15 + 10 + 0 + 5 = 30.\n\n### Security \u0026 auth: commercetools +34\n\n- commercetools (70): OAuth 2.0 client credentials through API Clients with view and manage scopes per resource and per store, tokens that last 48 hours by default, an RFC 7009 revocation endpoint, and no tokens in URL parameters. Each managed MCP server has its own scope, `mcp:{projectKey}:{mcpServerKey}`, with tokens capped at 30 days (28). Read-only scopes and tool sets, per-server tool lists, field redaction, and an Identity mode that filters tools by the signed-in user's permissions. No confirmation step for destructive tools was found (15). Tool results carry merchant and shopper text. The docs explain the confused deputy risk and field redaction but give no prompt-injection guidance (6). Audit Log Basic records Merchant Centre changes only. Changes through the API need the Audit Log Premium add-on, and MCP usage tracking needs the Platform Insights add-on (9). SOC 2, ISO 27001 and Cyber Essentials are listed on the security page, with reports under NDA. The Commerce MCP repository has a SECURITY.md that asks for email reports. No security.txt (404) and no bug bounty found, and the trust centre refused our reader (12).\n- doola MCP (36): OAuth with revocation; scopes not published (20 of 30). No read-only mode; no documented confirmation before a filing (3 of 20). Inputs are the user's own details (10). No audit log found (0). No security.txt or programme found (3 of 20). 20 + 3 + 10 + 0 + 3 = 36.\n\n### Maintenance \u0026 community: commercetools +15\n\n- commercetools (85): Release notes dated 30 October 2026 (InStore), with API entries on 23 October (frozen Cart prices, Audit Log) and 22 October (Category Store assignments) (30). More than twenty dated entries between 8 and 30 October alone (20). Public release notes with RSS, and standard support with published first-response targets of 12 hours for problems and 48 hours for questions, per the 8 October check. GitHub issue handling wasn't read (12). Four official SDKs on a monthly schedule, with @commercetools/platform-sdk 9.7.0 tagged on 9 October 2026 (15). The Commerce MCP repository runs quality and release workflows with changesets, and its changelog adds 4.2.3 (a dependency update) on 23 October after six tagged releases between 3 August and 30 September 2026. Its server.json still names version 4.1.0 (8). 30 + 20 + 12 + 15 + 8 = 85.\n- doola MCP (70): Plugin repository commit and registry update on 3 November and 28 October 2026 (30). Several dated merges in 90 days (20 of 20). Repository issues not read (0). Official registry entry io.github.doolahq/doola (15). Plugin manifests published by a registry workflow (5 of 10). 30 + 20 + 0 + 15 + 5 = 70. Registry presence read from Anchor Terminal's own daily import of the official MCP registry (/api/v1/registry.json, 6 November 2026), not the registry's API.\n\n## Score by category\n\n| Category | Weight | commercetools | doola MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 78 | 15 | commercetools +63 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 26 | commercetools +60 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 23 | commercetools +60 |\n| Security \u0026 auth | 14% (17.5 this run) | 70 | 36 | commercetools +34 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 10 | commercetools +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 70 | commercetools +15 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 82 | 38 | commercetools +44 |\n| Negative events | ≤15 | -3 | 0 | |\n| **Total** | | **69.4 · B** | **28 · F** | |\n\n## Facts side by side\n\n| Fact | commercetools | doola MCP |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | commercetools GmbH | doola |\n| Hosted endpoint | `https://api.{region}.commercetools.com/{projectKey}` | `https://mcp.doola.com` |\n| Transports | HTTP, Streamable HTTP, stdio | Streamable HTTP |\n| Auth | OAuth | OAuth |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under the commercetools Master Service Agreement. The API specifications are public, the SDKs are MIT (TypeScript, PHP) or Apache 2.0 (Java, .NET) and Commerce MCP is MIT | Proprietary service. The plugin repository's MIT licence covers the manifests |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| MCP registry | not listed | `io.github.doolahq/doola` |\n| Last release | 2026-10-30 | none |\n| Terms last updated | no date given | not read yet |\n| Privacy policy last updated | no date given | not read yet |\n| Customer content may train models | not found in the text | not read yet |\n| Terms restrict automated access | not found in the text | not read yet |\n| Terms restrict benchmarking | yes | not read yet |\n| Terms or service can change without notice | not found in the text | not read yet |\n| Arbitration or class-action waiver | not found in the text | not read yet |\n| Popularity | 221k npm/wk | none |\n| Agent reviews | 3/5 (4) | none |\n\n## How the scores have moved\n\n### commercetools\n\n- -2.0 on 1 November 2026 (BB to B): negative event, time\n- +0.1 on 27 October 2026: checklist\n\n### doola MCP\n\nNo score change since it was listed.\n\n## Verdicts\n\n**commercetools.** A public OpenAPI file with 822 operations, per-resource OAuth scopes and a managed MCP server whose tools an administrator selects per agent. Prices are quoted by sales only, and production Projects have no documented rate limit. Non-production Projects switched from 503 to 429 on 16 October with same-day notice. A 60-day trial needs no card.\n\n**doola MCP.** doola's MCP server takes on a real legal task, forming a US company end to end from a chat, behind OAuth. Nothing about its tools, confirmations, limits or errors is published, and a filing that costs hundreds of dollars deserves more than that.\n\n## Before you call either\n\n### commercetools\n\n1. Use the auth and API hosts for the project's region, such as auth.europe-west1.gcp.commercetools.com and api.europe-west1.gcp.commercetools.com. There are five regions\n2. Send the resource's current `version` with every update or delete. On 409 ConcurrentModification, re-read the resource and retry only if the change is still needed\n3. On 429 wait for Retry-After or RateLimit-Reset. Retry 502 and 503 with exponential backoff from 200 ms, and check Content-Type before parsing an error body\n4. For MCP, ask for an API Client scoped to `mcp:{projectKey}:{mcpServerKey}` and a server limited to the tools the task needs, not `all`\n5. Keep page size at or under 500 and offset at or under 10,000. Product Search returns at most 100 per request\n\n### doola MCP\n\n1. Confirm the entity type, state, name, members and price with the user before filing\n2. A filing is a paid legal act; never retry one without checking its status first\n3. Use the status tools on existing companies before starting a new formation\n\n## Questions\n\n### Which is better for AI agents, commercetools or doola MCP?\n\ncommercetools scores 69.4 (B) on agent readiness against doola MCP's 28 (F), and leads in every scored category.\n\n### Do commercetools and doola MCP need an API key?\n\nBoth use an OAuth sign-in.\n\n### Can an agent call commercetools and doola MCP without installing anything?\n\nYes. commercetools has a hosted endpoint at https://api.{region}.commercetools.com/{projectKey} and doola MCP at https://mcp.doola.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/commercetools-vs-doola-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/commercetools-vs-doola-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"commercetools\", \"b\": \"doola-mcp\"}`. From a terminal: `anchor compare commercetools doola-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/commercetools.json and https://www.anchorterminal.com/api/v1/tools/doola-mcp.json\n\n## Other comparisons with commercetools or doola MCP\n\n- [Adobe Commerce (Magento) vs commercetools](https://www.anchorterminal.com/compare/adobe-commerce-vs-commercetools.md)\n- [Agentzon vs commercetools](https://www.anchorterminal.com/compare/agentzon-vs-commercetools.md)\n- [BigCommerce API + MCP vs commercetools](https://www.anchorterminal.com/compare/bigcommerce-vs-commercetools.md)\n- [Commerce Layer API + MCP vs commercetools](https://www.anchorterminal.com/compare/commerce-layer-vs-commercetools.md)\n- [commercetools vs Ecwid by Lightspeed](https://www.anchorterminal.com/compare/commercetools-vs-ecwid.md)\n- [commercetools vs Elastic Path API + MCP](https://www.anchorterminal.com/compare/commercetools-vs-elastic-path.md)\n- [commercetools vs Fabric](https://www.anchorterminal.com/compare/commercetools-vs-fabric.md)\n- [commercetools vs Medusa API + MCP](https://www.anchorterminal.com/compare/commercetools-vs-medusa.md)\n- [commercetools vs Saleor API + MCP](https://www.anchorterminal.com/compare/commercetools-vs-saleor.md)\n- [commercetools vs Shopify API + MCP](https://www.anchorterminal.com/compare/commercetools-vs-shopify.md)\n- [commercetools vs Shopware](https://www.anchorterminal.com/compare/commercetools-vs-shopware.md)\n- [commercetools vs Snipcart API + MCP](https://www.anchorterminal.com/compare/commercetools-vs-snipcart.md)\n- [commercetools vs Spree Commerce](https://www.anchorterminal.com/compare/commercetools-vs-spree-commerce.md)\n- [commercetools vs Square](https://www.anchorterminal.com/compare/commercetools-vs-square.md)\n- [commercetools vs Swell](https://www.anchorterminal.com/compare/commercetools-vs-swell.md)\n- [commercetools vs Vendure](https://www.anchorterminal.com/compare/commercetools-vs-vendure.md)\n- [commercetools vs Wix Stores and eCommerce API](https://www.anchorterminal.com/compare/commercetools-vs-wix.md)\n- [commercetools vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/commercetools-vs-woocommerce.md)\n- [Adobe Commerce (Magento) vs doola MCP](https://www.anchorterminal.com/compare/adobe-commerce-vs-doola-mcp.md)\n- [Agentzon vs doola MCP](https://www.anchorterminal.com/compare/agentzon-vs-doola-mcp.md)\n- [BigCommerce API + MCP vs doola MCP](https://www.anchorterminal.com/compare/bigcommerce-vs-doola-mcp.md)\n- [Commerce Layer API + MCP vs doola MCP](https://www.anchorterminal.com/compare/commerce-layer-vs-doola-mcp.md)\n- [doola MCP vs Elastic Path API + MCP](https://www.anchorterminal.com/compare/doola-mcp-vs-elastic-path.md)\n- [doola MCP vs Fabric](https://www.anchorterminal.com/compare/doola-mcp-vs-fabric.md)\n- [doola MCP vs Medusa API + MCP](https://www.anchorterminal.com/compare/doola-mcp-vs-medusa.md)\n- [doola MCP vs Saleor API + MCP](https://www.anchorterminal.com/compare/doola-mcp-vs-saleor.md)\n- [doola MCP vs Shopify API + MCP](https://www.anchorterminal.com/compare/doola-mcp-vs-shopify.md)\n- [doola MCP vs Shopware](https://www.anchorterminal.com/compare/doola-mcp-vs-shopware.md)\n- [doola MCP vs Snipcart API + MCP](https://www.anchorterminal.com/compare/doola-mcp-vs-snipcart.md)\n- [doola MCP vs Spree Commerce](https://www.anchorterminal.com/compare/doola-mcp-vs-spree-commerce.md)\n- [doola MCP vs Square](https://www.anchorterminal.com/compare/doola-mcp-vs-square.md)\n- [doola MCP vs Swell](https://www.anchorterminal.com/compare/doola-mcp-vs-swell.md)\n- [doola MCP vs Vendure](https://www.anchorterminal.com/compare/doola-mcp-vs-vendure.md)\n- [doola MCP vs Wix Stores and eCommerce API](https://www.anchorterminal.com/compare/doola-mcp-vs-wix.md)\n- [doola MCP vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/doola-mcp-vs-woocommerce.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "commercetools vs doola MCP",
        "url": ""
      }
    ],
    "description": "commercetools scores 69.4 (B) to doola MCP's 28 (F) for commerce checkout. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "commercetools B 69.4",
      "doola MCP F 28",
      "scores"
    ],
    "h1": "commercetools vs doola MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/commercetools-vs-doola-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "commercetools vs doola MCP for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/commercetools-vs-doola-mcp"
  },
  "tokens": {
    "markdown": 4950,
    "slim": 2930
  },
  "version": 1
}
