{
  "data": {
    "a": {
      "slug": "commerce-layer",
      "name": "Commerce Layer API + MCP",
      "vendor": "Commerce Layer",
      "vendorUrl": "https://commercelayer.io",
      "kind": "http-api",
      "category": "commerce",
      "summary": "Commerce backend API for building custom storefronts and checkout experiences.",
      "url": "https://www.anchorterminal.com/tools/commerce-layer",
      "markdownUrl": "https://www.anchorterminal.com/tools/commerce-layer.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/commerce-layer.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/commerce-layer.json",
      "dns": "commerce-layer.grade.anchorterminal.com",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://core.commercelayer.io/api/public/resources",
      "packages": [
        {
          "registry": "npm",
          "name": "@commercelayer/sdk"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 tokens from https://auth.commercelayer.io/oauth/token. Integration credentials (client ID and secret, role-bound) for server-side agents, sales channel credentials (client ID only, scoped to a market) for storefront calls, authorisation code for user tokens. API calls go to https://\u003cyour-org\u003e.commercelayer.io/api. The Core MCP takes the same bearer token, or runs the OAuth flow in clients that support it.",
      "pricing": "freemium",
      "pricingNotes": "Developer plan is free with no time limit, 100 live orders a month, 1,000 SKUs, 2 markets, 2 users, unlimited test orders and the Core API only. Enterprise is quoted by sales (custom yearly order volume, unlimited SKUs, adds the Metrics and Provisioning APIs and SLAs). Distributed OMS, promotion engine and metrics dashboard are add-ons. No transaction fees; payment gateway fees are separate (https://commercelayer.io/pricing).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 in the docs, pricing or MCP pages (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 11,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 7323,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.commercelayer.io",
      "llmsTxt": "https://docs.commercelayer.io/llms.txt",
      "openapi": "https://data.commercelayer.app/schemas/openapi.json",
      "capabilities": [
        "commerce.products",
        "commerce.cart",
        "commerce.checkout",
        "commerce.orders",
        "commerce.headless"
      ],
      "tags": [
        "hosted",
        "freemium",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "webhooks",
        "enterprise",
        "closed-source"
      ],
      "lastRelease": "2026-10-27",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66,
        "grade": "B",
        "agentReady": false,
        "rank": 391,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 10,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 82,
          "payments": 25,
          "reliability": 88,
          "schema": 83,
          "security": 64,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": -3,
        "negativeNotes": [
          "Commerce Layer changed published API behaviour for existing clients with notice only on the day, three times in 2026. On 16 June the `_cont` filter predicates became case-sensitive, on 27 August record and page counts on list calls became approximate above 10,000 records, and on 2 September event stores became Enterprise only. Each changelog entry is tagged breaking and no earlier notice was found. Repeats fold into one term (-3). https://docs.commercelayer.io/changelog/readme.md"
        ],
        "verdict": "Commerce backend with a public OpenAPI file, llms.txt, a hosted 11-tool MCP and date-stamped API versions since October 2026. Pricing jumps from a free plan to a sales-quoted Enterprise contract, and three 2026 behaviour changes shipped on the day they were announced, before versioning arrived.",
        "bestFor": "Teams that want a hosted headless backend and an agent that can work across every commerce object with scoped OAuth roles.",
        "strengths": [
          "Public OpenAPI 3.0 file, llms.txt and Markdown docs",
          "OAuth roles per resource and per operation, and market-scoped sales channel tokens",
          "Hosted Core MCP with 11 tools and preflight validation before writes",
          "Free Developer plan with no card and unlimited test orders",
          "Date-stamped API versions since 5 October 2026, with deprecation warnings in responses"
        ],
        "weaknesses": [
          "No price between the free plan and a sales-quoted Enterprise contract",
          "Breaking changes on 16 June, 27 August and 2 September 2026 announced only on the day",
          "429s carry no Retry-After or reset header",
          "Privacy policy last updated October 2020, with no DPA or subprocessor list linked",
          "No MCP tool annotations and no confirmation step for delete_resource"
        ],
        "agentNotes": [
          "Call `get_resource_schema` before any write. Preflight rejects bad filter shapes before they reach the API",
          "Give the agent an integration credential tied to a narrow role rather than an admin role",
          "On a 429, wait out the sliding window. No Retry-After is sent, and the IP stays blocked while the rate stays high",
          "Put the API version in the path (`/api/2017-08/...`) so later versions don't change responses under you",
          "Read `mode`, `organization_id` and `trace_id` from the root-level `meta`; resource-level meta lost them on 5 October 2026"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "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": 66
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 82,
          "payments": 25,
          "reliability": 88,
          "schema": 83,
          "security": 64,
          "transparency": 45
        },
        "provenanceScore": 73,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -X POST https://auth.commercelayer.io/oauth/token -H \"Content-Type: application/json\" \\\n  -d \"{\\\"grant_type\\\":\\\"client_credentials\\\",\\\"client_id\\\":\\\"$CL_CLIENT_ID\\\",\\\"client_secret\\\":\\\"$CL_CLIENT_SECRET\\\"}\"\ncurl \"https://$CL_ORG.commercelayer.io/api/skus?page[size]=5\" -H \"Accept: application/vnd.api+json\" \\\n  -H \"Authorization: Bearer $CL_ACCESS_TOKEN\"",
        "claudeCode": "claude mcp add --transport http commercelayer-core https://core-mcp.commercelayer.io/mcp --header \"Authorization: Bearer $CL_ACCESS_TOKEN\"",
        "config": {
          "mcpServers": {
            "commercelayer-core": {
              "headers": {
                "Authorization": "Bearer ${CL_ACCESS_TOKEN}"
              },
              "url": "https://core-mcp.commercelayer.io/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/commerce.products",
        "tool": "https://letme.dev/commerce-layer"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Developer plan",
          "unit": "month",
          "usd": 0,
          "note": "100 live orders a month, 1,000 SKUs, unlimited test orders"
        }
      ],
      "provenance": {
        "legalEntity": "Commerce Layer, Inc.",
        "domain": "commercelayer.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://commercelayer.io/legal/terms-of-service",
        "privacy": "https://commercelayer.io/legal/privacy-policy",
        "statusPage": "https://status.commercelayer.io",
        "changelog": "https://docs.commercelayer.io/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "rdap.org has no RDAP service for .io, so the registration date is blank."
        ],
        "score": 73
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/commerce-layer.json",
      "live": {
        "slug": "commerce-layer",
        "probe": {
          "target": "https://core.commercelayer.io/api/public/resources",
          "method": "get",
          "lastAt": "2026-11-08T01:01:25.315777774Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 28,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 29,
          "p95ms24h": 386,
          "samples24h": 244,
          "samples30d": 7705,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "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": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 248,
              "ok": 248
            },
            {
              "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": 243,
              "ok": 243
            },
            {
              "date": "2026-11-08",
              "probes": 11,
              "ok": 11
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.commercelayer.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-08T00:54:34.59991378Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@commercelayer/sdk",
            "version": "8.0.3",
            "seenAt": "2026-11-08T00:46:23.650452238Z"
          }
        ],
        "npmWeekly": 9183,
        "securityTxt": {
          "url": "https://commercelayer.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:27.690622723Z"
        },
        "llmsTxt": {
          "url": "https://docs.commercelayer.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:10.674776795Z"
        },
        "domain": {
          "domain": "commercelayer.io",
          "checkedAt": "2026-11-01T14:16:30.110464887Z"
        },
        "pages": [
          {
            "url": "https://docs.commercelayer.io/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:05:41.160818876Z",
            "changedAt": "2026-11-05T12:29:43.819505277Z",
            "fingerprint": "470b518015cf"
          },
          {
            "url": "https://commercelayer.io/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:01:49.352040395Z",
            "changedAt": "2026-11-05T12:26:15.924592298Z",
            "fingerprint": "d0db0524ab9e"
          },
          {
            "url": "https://commercelayer.io/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:01:45.195634916Z",
            "changedAt": "2026-11-04T08:17:04.876817325Z",
            "fingerprint": "bd00396cfa59"
          },
          {
            "url": "https://commercelayer.io/legal/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:01:47.315253323Z",
            "changedAt": "2026-11-04T08:17:07.25756145Z",
            "fingerprint": "c588b243ddec"
          }
        ],
        "mcpTools": {
          "url": "https://core-mcp.commercelayer.io/mcp",
          "checkedAt": "2026-11-07T01:43:25.014608038Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:43:25.014608038Z"
        },
        "updatedAt": "2026-11-08T01:01:25.315777774Z"
      }
    },
    "answer": "Commerce Layer API + MCP scores 66 (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": 73,
        "category": "reliability",
        "leads": "commerce-layer",
        "name": "Reliability",
        "reasons": {
          "a": "Atlassian Statuspage at status.commercelayer.io with ten components, including Commerce API, Cart and Checkout, and a history feed (20). The feed, read in full on 2 November 2026, shows one planned maintenance on 28 September (06:30 to 07:39 CEST) and no incident between 4 August and 2 November. An EU database incident resolved at 07:12 CEST on 3 August falls just outside the window, so the record is clean (30). Rate limits published per IP, 200 live writes and 1,000 cacheable reads a minute, 50 writes per endpoint per 10 seconds, 30 token requests a minute, half that in test (15). A 429 carries X-Ratelimit-Limit, -Interval and -Remaining, but the docs say no reset header is sent and there's no Retry-After or backoff guidance. Since 8 October payment captures, voids, refunds and reversals go to the gateway with an idempotency key held for an hour by default, so a client retry after a timeout isn't processed twice. Other writes have no idempotency guidance (10). \"Enterprise SLAs\" on the pricing page with no figures or terms (3). The API and Core MCP are generally available. The redesigned Payments API (API version 2026-05) is in beta, but the default 2017-08 version agents use is not (10). 20+30+15+10+3+10 = 88.",
          "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": 88,
          "b": 15
        }
      },
      {
        "by": 57,
        "category": "schema",
        "leads": "commerce-layer",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "OpenAPI 3.0 file served without auth at data.commercelayer.app (25). llms.txt and Markdown docs (10). Core MCP tool descriptions are one line each, and the API reference covers each resource, with little on when not to use a call (13). Typed JSON:API attributes in the spec, but MCP writes take a free-form attributes object that preflight checks against the schema (11). Per-resource examples in the reference and JSON:API error objects (11). A dated public changelog tags breaking changes, and an upcoming-changes page lists breaks ahead of release. Since 5 October 2026 the Core API takes a date-stamped version in the path (2017-08 stays the default, 2026-05 is new), and responses carry api_version, api_versions and deprecation warnings. Breaking changes on 16 June, 27 August and 2 September 2026 still shipped on the day they were announced (13). 25+10+13+11+11+13 = 83.",
          "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": 83,
          "b": 26
        }
      },
      {
        "by": 46,
        "category": "ergonomics",
        "leads": "commerce-layer",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "11 Core MCP tools, generic list, get, create, update and delete over every resource, with schema discovery instead of one tool per object (20). Filters, sort, include, sparse fieldsets and pagination on list calls (20). JSON:API errors with codes, and the MCP validates filters and writes against the schema before calling the API (16). Payment captures, voids, refunds and reversals are deduplicated at the gateway for a configurable window (1 hour by default) and authorisations keep a fixed key, since 8 October 2026. No idempotency keys for other writes, and no readOnlyHint or destructiveHint annotations in the Core MCP tool list, which marks write tools only in a table (5). Official JavaScript SDK, generated from the schema, now 8.0.3 alongside a Provisioning SDK. We didn't confirm a second official language (8). 20+20+16+5+8 = 69.",
          "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": 69,
          "b": 23
        }
      },
      {
        "by": 28,
        "category": "security",
        "leads": "commerce-layer",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "OAuth 2.0 tokens throughout. Integration credentials follow a custom role set per resource and per operation, sales channel tokens are scoped to a market, and the Core MCP accepts the same tokens or runs the OAuth flow (28). The docs tell you to give the agent a dedicated role with minimal permissions, but `delete_resource` has no documented confirmation step (12). Tool results include merchant- and shopper-entered data with no prompt-injection guidance found (5). The versions endpoint, which gave change history per resource, was removed on 8 May 2026. Event stores remain, with a retention policy added on 18 June, but since 2 September 2026 they and the Dashboard resource inspector are Enterprise only (6). SOC 2 Type 2, ISO 27001 and PCI DSS Level 1 claimed on the security page, with annual penetration tests and fixes within 90 days. The SDK's SECURITY.md gives two email addresses. No security.txt and no bug bounty found (13).",
          "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": 64,
          "b": 36
        }
      },
      {
        "by": 21,
        "category": "transparency",
        "leads": "commerce-layer",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service with published terms, and MIT-licensed SDKs (15). Privacy policy still last updated 28 October 2020, with no DPA linked, no subprocessor list and no retention periods beyond \"as long as reasonably necessary\" (10). Deprecations now have a mechanism, with date-stamped API versions whose responses flag deprecated resources, an upcoming-changes page and dated notices (resource-level meta fields announced 17 June and removed on 5 October 2026). No notice period is stated, and three breaking changes in 2026 appeared on the day they shipped (13). The privacy policy names Intercom, Google, GitHub, Stripe and ConvertKit and transfers to the US, but no hosting regions (7). 15+10+13+7 = 45.",
          "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": 59,
          "b": 38
        }
      },
      {
        "by": 15,
        "category": "payments",
        "leads": "commerce-layer",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Only the free Developer plan has a public price. Enterprise is contact sales (5). Developer plan is free with no time limit and no credit card (20). A person signs up in the browser to get credentials (0).",
          "b": "No machine payment protocol (0). Plan prices public (10). No free tier (0). A person signs up and approves OAuth (0). 0 + 10 + 0 + 0 = 10."
        },
        "scores": {
          "a": 25,
          "b": 10
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Commerce Layer",
        "b": "doola",
        "name": "Vendor"
      },
      {
        "a": "https://core.commercelayer.io/api/public/resources",
        "b": "https://mcp.doola.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "Proprietary service. The plugin repository's MIT licence covers the manifests",
        "name": "Licence"
      },
      {
        "a": "11",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "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-27",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "2026-05-01",
        "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": "7.3k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Commerce Layer API + MCP scores 66 (B) on agent readiness against doola MCP's 28 (F), and leads in every scored category.",
        "question": "Which is better for AI agents, Commerce Layer API + MCP or doola MCP?"
      },
      {
        "answer": "Both use an OAuth sign-in.",
        "question": "Do Commerce Layer API + MCP and doola MCP need an API key?"
      },
      {
        "answer": "Yes. Commerce Layer API + MCP has a hosted endpoint at https://core.commercelayer.io/api/public/resources and doola MCP at https://mcp.doola.com.",
        "question": "Can an agent call Commerce Layer API + MCP and doola MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 88 against 15",
          "Schema \u0026 documentation, 83 against 26",
          "Agent ergonomics, 69 against 23",
          "Security \u0026 auth, 64 against 36",
          "Payments \u0026 pricing, 25 against 10",
          "Maintenance \u0026 community, 82 against 70",
          "Transparency \u0026 trust, 59 against 38"
        ],
        "also": null,
        "goodFor": "Teams that want a hosted headless backend and an agent that can work across every commerce object with scoped OAuth roles.",
        "slug": "commerce-layer",
        "watchFor": "No price between the free plan and a sales-quoted Enterprise contract"
      },
      {
        "aheadOn": null,
        "also": [
          "No incidents deducted, where Commerce Layer API + MCP 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": {
      "commerce-layer": [
        {
          "causes": [
            "product",
            "evidence",
            "correction"
          ],
          "date": "2026-11-02",
          "delta": 2.2,
          "from": 63.8,
          "fromGrade": "B",
          "to": 66,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 63.7,
          "fromGrade": "B",
          "to": 63.8,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.2,
          "from": 63.9,
          "fromGrade": "B",
          "to": 63.7,
          "toGrade": "B"
        }
      ],
      "doola-mcp": null
    },
    "job": {
      "capability": "commerce.checkout",
      "name": "Commerce checkout"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-commerce-vs-commerce-layer.json",
        "title": "Adobe Commerce (Magento) vs Commerce Layer API + MCP",
        "url": "https://www.anchorterminal.com/compare/adobe-commerce-vs-commerce-layer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentzon-vs-commerce-layer.json",
        "title": "Agentzon vs Commerce Layer API + MCP",
        "url": "https://www.anchorterminal.com/compare/agentzon-vs-commerce-layer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bigcommerce-vs-commerce-layer.json",
        "title": "BigCommerce API + MCP vs Commerce Layer API + MCP",
        "url": "https://www.anchorterminal.com/compare/bigcommerce-vs-commerce-layer"
      },
      {
        "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/commerce-layer-vs-ecwid.json",
        "title": "Commerce Layer API + MCP vs Ecwid by Lightspeed",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-ecwid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-elastic-path.json",
        "title": "Commerce Layer API + MCP vs Elastic Path API + MCP",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-elastic-path"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-fabric.json",
        "title": "Commerce Layer API + MCP vs Fabric",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-fabric"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-medusa.json",
        "title": "Commerce Layer API + MCP vs Medusa API + MCP",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-medusa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-saleor.json",
        "title": "Commerce Layer API + MCP vs Saleor API + MCP",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-saleor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-shopify.json",
        "title": "Commerce Layer API + MCP vs Shopify API + MCP",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-shopify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-shopware.json",
        "title": "Commerce Layer API + MCP vs Shopware",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-shopware"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-snipcart.json",
        "title": "Commerce Layer API + MCP vs Snipcart API + MCP",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-snipcart"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-spree-commerce.json",
        "title": "Commerce Layer API + MCP vs Spree Commerce",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-spree-commerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-square.json",
        "title": "Commerce Layer API + MCP vs Square",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-square"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-swell.json",
        "title": "Commerce Layer API + MCP vs Swell",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-swell"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-vendure.json",
        "title": "Commerce Layer API + MCP vs Vendure",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-vendure"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-wix.json",
        "title": "Commerce Layer API + MCP vs Wix Stores and eCommerce API",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-wix"
      },
      {
        "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-woocommerce.json",
        "title": "Commerce Layer API + MCP vs WooCommerce API + MCP",
        "url": "https://www.anchorterminal.com/compare/commerce-layer-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/commercetools-vs-doola-mcp.json",
        "title": "commercetools vs doola MCP",
        "url": "https://www.anchorterminal.com/compare/commercetools-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": 73,
        "commerce-layer": 88,
        "doola-mcp": 15,
        "edge": "commerce-layer",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 57,
        "commerce-layer": 83,
        "doola-mcp": 26,
        "edge": "commerce-layer",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 46,
        "commerce-layer": 69,
        "doola-mcp": 23,
        "edge": "commerce-layer",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 28,
        "commerce-layer": 64,
        "doola-mcp": 36,
        "edge": "commerce-layer",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 15,
        "commerce-layer": 25,
        "doola-mcp": 10,
        "edge": "commerce-layer",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 12,
        "commerce-layer": 82,
        "doola-mcp": 70,
        "edge": "commerce-layer",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 21,
        "commerce-layer": 59,
        "doola-mcp": 38,
        "edge": "commerce-layer",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Commerce Layer API + MCP scores 66 (B) on agent readiness against doola MCP's 28 (F), and leads in every scored category. Both do commerce checkout.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "commerce-layer": "Commerce backend with a public OpenAPI file, llms.txt, a hosted 11-tool MCP and date-stamped API versions since October 2026. Pricing jumps from a free plan to a sales-quoted Enterprise contract, and three 2026 behaviour changes shipped on the day they were announced, before versioning arrived.",
      "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/commerce-layer-vs-doola-mcp",
    "json": "https://www.anchorterminal.com/compare/commerce-layer-vs-doola-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/commerce-layer-vs-doola-mcp.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/commerce-layer-vs-doola-mcp.min.md"
  },
  "markdown": "Commerce Layer API + MCP scores 66 (B) on agent readiness against doola MCP's 28 (F), and leads in every scored category. Both do commerce checkout.\n\n- Commerce Layer API + MCP: grade B, 66/100, rank #391 of 1510. Markdown https://www.anchorterminal.com/tools/commerce-layer.md · JSON https://www.anchorterminal.com/api/v1/tools/commerce-layer.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### Commerce Layer API + MCP (B)\n\nGood for: Teams that want a hosted headless backend and an agent that can work across every commerce object with scoped OAuth roles.\n\nAhead on:\n- Reliability, 88 against 15\n- Schema \u0026 documentation, 83 against 26\n- Agent ergonomics, 69 against 23\n- Security \u0026 auth, 64 against 36\n- Payments \u0026 pricing, 25 against 10\n- Maintenance \u0026 community, 82 against 70\n- Transparency \u0026 trust, 59 against 38\n\nWatch for: No price between the free plan and a sales-quoted Enterprise contract\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 Commerce Layer API + MCP loses 3 points for them\n\nWatch for: No published tool list, schemas or errors\n\n\n## Why the edge\n\n### Reliability: Commerce Layer API + MCP +73\n\n- Commerce Layer API + MCP (88): Atlassian Statuspage at status.commercelayer.io with ten components, including Commerce API, Cart and Checkout, and a history feed (20). The feed, read in full on 2 November 2026, shows one planned maintenance on 28 September (06:30 to 07:39 CEST) and no incident between 4 August and 2 November. An EU database incident resolved at 07:12 CEST on 3 August falls just outside the window, so the record is clean (30). Rate limits published per IP, 200 live writes and 1,000 cacheable reads a minute, 50 writes per endpoint per 10 seconds, 30 token requests a minute, half that in test (15). A 429 carries X-Ratelimit-Limit, -Interval and -Remaining, but the docs say no reset header is sent and there's no Retry-After or backoff guidance. Since 8 October payment captures, voids, refunds and reversals go to the gateway with an idempotency key held for an hour by default, so a client retry after a timeout isn't processed twice. Other writes have no idempotency guidance (10). \"Enterprise SLAs\" on the pricing page with no figures or terms (3). The API and Core MCP are generally available. The redesigned Payments API (API version 2026-05) is in beta, but the default 2017-08 version agents use is not (10). 20+30+15+10+3+10 = 88.\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: Commerce Layer API + MCP +57\n\n- Commerce Layer API + MCP (83): OpenAPI 3.0 file served without auth at data.commercelayer.app (25). llms.txt and Markdown docs (10). Core MCP tool descriptions are one line each, and the API reference covers each resource, with little on when not to use a call (13). Typed JSON:API attributes in the spec, but MCP writes take a free-form attributes object that preflight checks against the schema (11). Per-resource examples in the reference and JSON:API error objects (11). A dated public changelog tags breaking changes, and an upcoming-changes page lists breaks ahead of release. Since 5 October 2026 the Core API takes a date-stamped version in the path (2017-08 stays the default, 2026-05 is new), and responses carry api_version, api_versions and deprecation warnings. Breaking changes on 16 June, 27 August and 2 September 2026 still shipped on the day they were announced (13). 25+10+13+11+11+13 = 83.\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: Commerce Layer API + MCP +46\n\n- Commerce Layer API + MCP (69): 11 Core MCP tools, generic list, get, create, update and delete over every resource, with schema discovery instead of one tool per object (20). Filters, sort, include, sparse fieldsets and pagination on list calls (20). JSON:API errors with codes, and the MCP validates filters and writes against the schema before calling the API (16). Payment captures, voids, refunds and reversals are deduplicated at the gateway for a configurable window (1 hour by default) and authorisations keep a fixed key, since 8 October 2026. No idempotency keys for other writes, and no readOnlyHint or destructiveHint annotations in the Core MCP tool list, which marks write tools only in a table (5). Official JavaScript SDK, generated from the schema, now 8.0.3 alongside a Provisioning SDK. We didn't confirm a second official language (8). 20+20+16+5+8 = 69.\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### Security \u0026 auth: Commerce Layer API + MCP +28\n\n- Commerce Layer API + MCP (64): OAuth 2.0 tokens throughout. Integration credentials follow a custom role set per resource and per operation, sales channel tokens are scoped to a market, and the Core MCP accepts the same tokens or runs the OAuth flow (28). The docs tell you to give the agent a dedicated role with minimal permissions, but `delete_resource` has no documented confirmation step (12). Tool results include merchant- and shopper-entered data with no prompt-injection guidance found (5). The versions endpoint, which gave change history per resource, was removed on 8 May 2026. Event stores remain, with a retention policy added on 18 June, but since 2 September 2026 they and the Dashboard resource inspector are Enterprise only (6). SOC 2 Type 2, ISO 27001 and PCI DSS Level 1 claimed on the security page, with annual penetration tests and fixes within 90 days. The SDK's SECURITY.md gives two email addresses. No security.txt and no bug bounty found (13).\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### Transparency \u0026 trust: Commerce Layer API + MCP +21\n\n- Commerce Layer API + MCP (59): Closed service with published terms, and MIT-licensed SDKs (15). Privacy policy still last updated 28 October 2020, with no DPA linked, no subprocessor list and no retention periods beyond \"as long as reasonably necessary\" (10). Deprecations now have a mechanism, with date-stamped API versions whose responses flag deprecated resources, an upcoming-changes page and dated notices (resource-level meta fields announced 17 June and removed on 5 October 2026). No notice period is stated, and three breaking changes in 2026 appeared on the day they shipped (13). The privacy policy names Intercom, Google, GitHub, Stripe and ConvertKit and transfers to the US, but no hosting regions (7). 15+10+13+7 = 45.\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### Payments \u0026 pricing: Commerce Layer API + MCP +15\n\n- Commerce Layer API + MCP (25): No x402, MPP or L402 (0). Only the free Developer plan has a public price. Enterprise is contact sales (5). Developer plan is free with no time limit and no credit card (20). A person signs up in the browser to get credentials (0).\n- doola MCP (10): No machine payment protocol (0). Plan prices public (10). No free tier (0). A person signs up and approves OAuth (0). 0 + 10 + 0 + 0 = 10.\n\n## Score by category\n\n| Category | Weight | Commerce Layer API + MCP | doola MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 88 | 15 | Commerce Layer API + MCP +73 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 83 | 26 | Commerce Layer API + MCP +57 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 23 | Commerce Layer API + MCP +46 |\n| Security \u0026 auth | 14% (17.5 this run) | 64 | 36 | Commerce Layer API + MCP +28 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 10 | Commerce Layer API + MCP +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 82 | 70 | Commerce Layer API + MCP +12 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 59 | 38 | Commerce Layer API + MCP +21 |\n| Negative events | ≤15 | -3 | 0 | |\n| **Total** | | **66 · B** | **28 · F** | |\n\n## Facts side by side\n\n| Fact | Commerce Layer API + MCP | doola MCP |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | Commerce Layer | doola |\n| Hosted endpoint | `https://core.commercelayer.io/api/public/resources` | `https://mcp.doola.com` |\n| Transports | HTTP, Streamable HTTP | Streamable HTTP |\n| Auth | OAuth | OAuth |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | none | Proprietary service. The plugin repository's MIT licence covers the manifests |\n| Tools exposed | 11 | none |\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-27 | none |\n| Terms last updated | 2026-05-01 | 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 | 7.3k npm/wk | none |\n| Agent reviews | 3.5/5 (2) | none |\n\n## How the scores have moved\n\n### Commerce Layer API + MCP\n\n- +2.2 on 2 November 2026: product, new evidence, correction\n- +0.1 on 27 October 2026: checklist\n- -0.2 on 8 October 2026: checklist\n\n### doola MCP\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Commerce Layer API + MCP.** Commerce backend with a public OpenAPI file, llms.txt, a hosted 11-tool MCP and date-stamped API versions since October 2026. Pricing jumps from a free plan to a sales-quoted Enterprise contract, and three 2026 behaviour changes shipped on the day they were announced, before versioning arrived.\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### Commerce Layer API + MCP\n\n1. Call `get_resource_schema` before any write. Preflight rejects bad filter shapes before they reach the API\n2. Give the agent an integration credential tied to a narrow role rather than an admin role\n3. On a 429, wait out the sliding window. No Retry-After is sent, and the IP stays blocked while the rate stays high\n4. Put the API version in the path (`/api/2017-08/...`) so later versions don't change responses under you\n5. Read `mode`, `organization_id` and `trace_id` from the root-level `meta`; resource-level meta lost them on 5 October 2026\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, Commerce Layer API + MCP or doola MCP?\n\nCommerce Layer API + MCP scores 66 (B) on agent readiness against doola MCP's 28 (F), and leads in every scored category.\n\n### Do Commerce Layer API + MCP and doola MCP need an API key?\n\nBoth use an OAuth sign-in.\n\n### Can an agent call Commerce Layer API + MCP and doola MCP without installing anything?\n\nYes. Commerce Layer API + MCP has a hosted endpoint at https://core.commercelayer.io/api/public/resources and doola MCP at https://mcp.doola.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/commerce-layer-vs-doola-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/commerce-layer-vs-doola-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"commerce-layer\", \"b\": \"doola-mcp\"}`. From a terminal: `anchor compare commerce-layer doola-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/commerce-layer.json and https://www.anchorterminal.com/api/v1/tools/doola-mcp.json\n\n## Other comparisons with Commerce Layer API + MCP or doola MCP\n\n- [Adobe Commerce (Magento) vs Commerce Layer API + MCP](https://www.anchorterminal.com/compare/adobe-commerce-vs-commerce-layer.md)\n- [Agentzon vs Commerce Layer API + MCP](https://www.anchorterminal.com/compare/agentzon-vs-commerce-layer.md)\n- [BigCommerce API + MCP vs Commerce Layer API + MCP](https://www.anchorterminal.com/compare/bigcommerce-vs-commerce-layer.md)\n- [Commerce Layer API + MCP vs commercetools](https://www.anchorterminal.com/compare/commerce-layer-vs-commercetools.md)\n- [Commerce Layer API + MCP vs Ecwid by Lightspeed](https://www.anchorterminal.com/compare/commerce-layer-vs-ecwid.md)\n- [Commerce Layer API + MCP vs Elastic Path API + MCP](https://www.anchorterminal.com/compare/commerce-layer-vs-elastic-path.md)\n- [Commerce Layer API + MCP vs Fabric](https://www.anchorterminal.com/compare/commerce-layer-vs-fabric.md)\n- [Commerce Layer API + MCP vs Medusa API + MCP](https://www.anchorterminal.com/compare/commerce-layer-vs-medusa.md)\n- [Commerce Layer API + MCP vs Saleor API + MCP](https://www.anchorterminal.com/compare/commerce-layer-vs-saleor.md)\n- [Commerce Layer API + MCP vs Shopify API + MCP](https://www.anchorterminal.com/compare/commerce-layer-vs-shopify.md)\n- [Commerce Layer API + MCP vs Shopware](https://www.anchorterminal.com/compare/commerce-layer-vs-shopware.md)\n- [Commerce Layer API + MCP vs Snipcart API + MCP](https://www.anchorterminal.com/compare/commerce-layer-vs-snipcart.md)\n- [Commerce Layer API + MCP vs Spree Commerce](https://www.anchorterminal.com/compare/commerce-layer-vs-spree-commerce.md)\n- [Commerce Layer API + MCP vs Square](https://www.anchorterminal.com/compare/commerce-layer-vs-square.md)\n- [Commerce Layer API + MCP vs Swell](https://www.anchorterminal.com/compare/commerce-layer-vs-swell.md)\n- [Commerce Layer API + MCP vs Vendure](https://www.anchorterminal.com/compare/commerce-layer-vs-vendure.md)\n- [Commerce Layer API + MCP vs Wix Stores and eCommerce API](https://www.anchorterminal.com/compare/commerce-layer-vs-wix.md)\n- [Commerce Layer API + MCP vs WooCommerce API + MCP](https://www.anchorterminal.com/compare/commerce-layer-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- [commercetools vs doola MCP](https://www.anchorterminal.com/compare/commercetools-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": "Commerce Layer API + MCP vs doola MCP",
        "url": ""
      }
    ],
    "description": "Commerce Layer scores 66 (B) to doola MCP's 28 (F) for commerce checkout. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Commerce Layer API + MCP B 66",
      "doola MCP F 28",
      "scores"
    ],
    "h1": "Commerce Layer API + MCP vs doola MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/commerce-layer-vs-doola-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Commerce Layer vs doola MCP for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/commerce-layer-vs-doola-mcp"
  },
  "tokens": {
    "markdown": 4500,
    "slim": 2480
  },
  "version": 1
}
