Head to head · Cms content · October 2026 research run
Contentstack vs Strapi
Strapi scores 65.7 (B) on agent readiness against Contentstack's 64 (B), and leads in 4 of 7 scored categories. Both do cms content.
Which one, for what
Good for Teams already on Contentstack, or starting on its free plan, who want an agent to draft, localise, release and publish structured content with scoped credentials and an audit trail.
Also in its favour
- A hosted endpoint, with nothing to install
- Runs on your own machine
- Free to start without a card
Watch for
The MCP server's default group loads 78 tools, including nine deletes, with no readOnlyHint or destructiveHint annotations and no read-only switch
Strapi B
Good for Teams that want to own their CMS and let an agent draft, localise and publish entries under a narrow token.
Ahead on
- Reliability, 82 against 71
- Payments & pricing, 50 against 30
- Maintenance & community, 87 against 82
Also in its favour
- Open source
Watch for
Content History keeps no version for REST, GraphQL or MCP writes, and exists only on Growth and Enterprise plans
Score by category
| Category | Weight this run | Contentstack | Strapi | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 71 | 82 | Strapi +11 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 77 | 80 | Strapi +3 |
| Agent ergonomics | 13%16.2 | 67 | 65 | Contentstack +2 |
| Security & auth | 14%17.5 | 69 | 66 | Contentstack +3 |
| Payments & pricing | 10%12.5 | 30 | 50 | Strapi +20 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 82 | 87 | Strapi +5 |
| Transparency & trust | 7%8.8 | 73 | 72 | Contentstack +1 |
| Negative events | ≤15 | -3 | -6 | |
| Total | 64 · B | 65.7 · B |
Facts side by side
| Fact | Contentstack | Strapi |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Contentstack Inc. | Strapi, Inc. |
| Hosted endpoint | https://api.contentstack.io | no (local only) |
| Transports | HTTP, stdio | HTTP, Streamable HTTP |
| Auth | OAuth or key | API key |
| Pricing | Freemium | Freemium |
| x402 | no | no |
| Licence | Proprietary service under Contentstack's Master Agreement and Terms of Service. The OpenAPI files, the management SDKs, the CLI and the @contentstack/mcp package are MIT | MIT for the Community Edition. Code under ee/ directories is under Strapi's Enterprise Edition licence, and Strapi Cloud is a paid service under its own terms |
| Tools exposed | 206 | none |
| Read-only variant documented | yes | no |
| llms.txt | yes | yes |
| Last release | 2026-09-22 | 2026-10-07 |
| Terms last updated | 2022-08-01 | 2026-10-07 |
| Privacy policy last updated | 2026-06-30 | 2023-03-01 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | not found in the text | yes |
| Terms restrict benchmarking | yes | yes |
| Terms or service can change without notice | not found in the text | yes |
| Arbitration or class-action waiver | yes | yes |
| Popularity | 44k npm/wk, 1.5k PyPI/wk | 73k stars, 259k npm/wk |
Verdicts
Contentstack
The Content Management API has a public OpenAPI file, OAuth scopes that separate read, write and publish, read-only management tokens and a stack audit log. A free plan needs no card. The MCP server loads 78 tools by default with no annotations or read-only switch, and the limit=0 behaviour changed on 11 September 2026 without advance notice.
Strapi
The built-in MCP server shows an agent only the tools, fields and locales its Admin token permits, and content tools create drafts by default. Rollback is the limit. Content History is a paid feature and records admin panel edits only, so API and MCP writes leave no version to restore, and the MCP server can't upload files.
Before you call either
Contentstack
- Pick the base URL for the stack's region first. North America on AWS is https://api.contentstack.io, and the other six regions use contentstack.com hosts
- Send
api_keyandauthorizationheaders on every Content Management API call. Ask for a read-only management token when the task only reads - Page with
limit(100 at most),skipandinclude_count=true.limit=0no longer returns everything - Stay under 10 reads and 10 writes a second per organisation, and one bulk request a second. Watch
X-RateLimit-Remainingand back off on 429 - Start the MCP server with
--groups cmaonly, and addcma-extendedwhen the task needs audit logs or version history. Publishing and deleting need no confirmation
Strapi
- Pass
status=drafton every REST POST and PUT. Without it the Content API publishes the entry at once - Use an Admin token for
/mcpand admin routes and an API token for/api. Each kind is rejected on the other's routes - Upload files with multipart POST to
/api/uploadfirst, then reference the returned file id in the entry. MCP tools can't upload - Call
media_delete_assetsandmedia_delete_folderwithoutdryRunfirst to preview, and take asset ids only frommedia_list_assets - Keep your own copy of an entry before updating it. API and MCP writes create no Content History version
Questions
Which is better for AI agents, Contentstack or Strapi?
Strapi scores 65.7 (B) on agent readiness against Contentstack's 64 (B), and leads in 4 of 7 scored categories.
Do Contentstack and Strapi need an API key?
Contentstack takes an API key or an OAuth sign-in. Strapi needs an API key.
Can an agent call Contentstack and Strapi without installing anything?
Contentstack has a hosted endpoint at https://api.contentstack.io. No hosted endpoint is listed for Strapi.
Are Contentstack and Strapi open source?
No open-source release is listed for Contentstack. Strapi is open source (MIT for the Community Edition. Code under ee/ directories is under Strapi's Enterprise Edition licence, and Strapi Cloud is a paid service under its own terms).
Other comparisons with Contentstack or Strapi
Machine-readable
- This page as Markdown
/compare/contentstack-vs-strapi.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/contentstack.json·/api/v1/tools/strapi.json - From a terminal
anchor compare contentstack strapi(the CLI) - Over MCP
compare_tools {"a": "contentstack", "b": "strapi"}at/mcp, no key