Head to head · Content management · October 2026 research run

BCMS vs Strapi

Strapi scores 67.7 (B) on agent readiness against BCMS's 33.5 (F), and leads in every scored category. Both do content management.

Best headless CMS and website publishing for AI agents · All 136 cms comparisons

Which one, for what

BCMS F

Best for Small sites and agencies that want a cheap hosted CMS an agent can edit.

Also in its favour

  • A hosted endpoint, with nothing to install
  • Free to start without a card
  • No incidents deducted, where Strapi loses 4 points for them

Watch for

The MCP key is accepted only as a URL query parameter

Strapi B

Best 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 15
  • Schema & documentation, 80 against 50
  • Agent ergonomics, 65 against 36
  • Security & auth, 66 against 39
  • Payments & pricing, 50 against 30
  • Maintenance & community, 87 against 16
  • Transparency & trust, 72 against 52

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

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Maintenance & community Strapi +71

BCMS 16

@thebcms/client 2.0.3 was published on 16 March 2026, more than 180 days ago, and no dated API or MCP change was found. The terms of 30 July 2026 and the 3.0.0 server card show the product is current, so 5 of 30. No dated releases or changelog entries in the last 90 days (0). No public changelog; support by contact form (4 of 25). Not in the official MCP registry; one current JavaScript client (4 of 15). The client hasn't been released since March (3 of 10). 5+0+4+4+3 = 16.

Strapi 87

v5.60.0 was tagged on 28 October 2026 (30). 14 tagged versions between 5 August and 28 October, one a week (20). Per the 7 October check, not re-read on 1 November, 283 issues closed against 208 opened since 9 July and the newest pull requests carry labels and a reply the same day, with 217 issues open, 45 labelled severity high (18 of 25). @strapi/client 1.6.2 (4 June 2026) is still the newest tag and the only official client. The official MCP registry lists third-party Strapi servers only, which fits a server built into the product (10 of 15). Dependency bumps land weekly in the clone (5.60.0 moved in-range dependencies past published advisories). CI state per the 7 October check, when the Tests run on main failed (9 of 10).

Reliability Strapi +67

BCMS 15

Graded on BCMS Cloud with the hosted lines. No status page was found (0) and no incident history could be read (5). The terms refer to rate limits, but no numbers were found in the docs (0). No 429 or retry guidance was found (0). No SLA; Enterprise is by quote (0). The MCP server card says version 3.0.0 and nothing is labelled beta (10). 0+5+0+0+0+10 = 15.

Strapi 82

Read with the local-software lines, since the graded surface is the Community Edition its owner hosts. Strapi Cloud's status page isn't scored here. Official npm packages, with Node.js 20 to 26 stated in engines at v5.60.0 (20). A Tests workflow runs unit, API, CLI and end-to-end suites. Per the 7 October check, not re-read on 1 November (GitHub's pages refuse our reader), the latest push run on develop passed on 7 October 2026, and on main the 30 September run passed and the 7 October run failed (20 of 25). Per the same check, 217 open issues, 45 labelled severity high and one critical, with 283 closed against 208 opened since 9 July (15 of 25). Semver releases with notes per version and each v5 breaking change documented on its own page, but OpenAPI generation is declared outside semver. No commit from 5.51.2 to 5.60.0 is marked breaking (12 of 15). 5.x is the stable line and SECURITY.md marks it LTS (15).

Schema & documentation Strapi +30

BCMS 50

The docs link an OpenAPI reference at app.thebcms.com/open-api-docs, but that host's robots.txt disallows every path, so it wasn't read. The MCP tool schemas need a session (10 of 25). llms.txt, docs llms.txt, llms-full.txt, Markdown pages and a public SKILL.md (10). llms.txt says when to use BCMS and when not to, and the MCP page gives each tool group's purpose (12 of 20). Input typing couldn't be checked (5 of 15). Curl and JavaScript examples, and troubleshooting for 403 and permission errors (7 of 15). API v3 paths and a 3.0.0 server card, with no changelog found (6 of 15). 10+10+12+5+7+6 = 50.

Strapi 80

No published OpenAPI file, because endpoints depend on each project's content types. strapi openapi generate writes an OpenAPI 3.1.0 file for a project and is marked experimental, and every MCP tool carries JSON Schema 2020-12 input and output schemas built from the content model (20 of 25). llms.txt, llms-full.txt and a Markdown copy of every docs page (10). The 10 media tools say when to use each one and when not to, while generated content tools get a single line such as Content-manager list for api::article.article (14 of 20). Schemas are narrowed per field, action and locale and sort values are enums, but dynamic zones are untyped arrays and circular components fall back to an open record (12 of 15). REST pages pair curl examples with responses, and the error format and error classes are documented, without a list of status codes per endpoint (12 of 15). Semver with release notes on GitHub. The REST paths carry no API version (12 of 15).

Agent ergonomics Strapi +29

BCMS 36

45 MCP tools, more than 30 (5). We added 3 because keys without schema permission hide the schema tools (8 of 25). No pagination or filter parameters were found in the docs read (6 of 20). Error guidance covers 403 and permission errors only (8 of 20). Annotations weren't readable; entry history and trash give a way back, and the docs say to list and confirm ids before deletes (6 of 20). One JavaScript client and a CLI (8 of 15). 8+6+8+6+8 = 36.

Strapi 65

A project with five collection types and Draft & Publish exposes about 50 MCP tools, 40 generated plus 10 for media, which is the more-than-30 band (5). We added 8 because a token only sees the tools its permissions allow, so a narrow token cuts the list, and 2 for REST fields selection (15 of 25). Page and offset pagination with a default of 25, filters with more than 20 operators, sort and field selection (20). One error shape with status, name, message and details, and partial-failure reports on bulk media tools (16 of 20). No idempotency keys, and we found no readOnlyHint or destructiveHint in the MCP source. PUT by documentId is repeatable and media deletes have dryRun (6 of 20). Few required parameters and sensible defaults, with one official client library, @strapi/client for JavaScript (8 of 15).

Security & auth Strapi +27

BCMS 39

Keys are scoped per template and media and can be revoked and rotated (25), less 10 because the MCP key is accepted only as ?mcpKey= in the URL and REST examples pass apiKey the same way (15 of 30). Scoped keys, schema tools gated by key, and scoped delete permission; no approval step (12 of 20). Entries hold text written by people and no prompt-injection guidance was found (3 of 15). Entry history and log history (2 days on Hobby, 30 on Pro) let the operator see what an agent changed (9 of 15). No security.txt, disclosure policy or certification was found (0). 15+12+3+9+0 = 39.

Strapi 66

API tokens are read-only, full access or custom per content type and action. Admin tokens hold a chosen subset of the owner's permissions down to field and locale. Both expire after 7, 30 or 90 days or never, can be regenerated, and travel only in the Authorization header. No OAuth (28 of 30). Read-only tokens hide every write tool, permissions are checked again at run time, MCP create writes a draft and media deletes preview first. Nothing asks a person to approve a publish or a delete, and Review Workflows are Enterprise only (15 of 20). Entries hold text written by other people, and we found no prompt-injection guidance in the MCP docs. Media responses are cut to an allowlist of fields (3 of 15). Audit Logs mark MCP actions with origin: mcp but need the Enterprise plan and skip reads (7 of 15). SECURITY.md sets supported versions and a GitHub advisory route, advisories are published with CVEs, the security page says SOC 2 certified and names GitHub advisories or security@strapi.io for disclosure, and the self-hosted pricing page lists a SOC 2 report as an Enterprise add-on. No bug bounty by stated policy, and strapi.io/.well-known/security.txt returned 404 on 1 November, though the repository carries one (13 of 20).

Payments & pricing Strapi +20

BCMS 30

No x402, MPP or L402 (0). Plan and seat prices are public; no per-call prices (10). 14-day trial with no card on every plan (20). Signup with GitHub or Google in a browser, keys made in the dashboard (0). 0+10+20+0 = 30.

Strapi 50

Scored with the self-hosted rule, taking prices from the paid options beside the free edition. No x402, MPP or L402 (0). The Community Edition is free, Growth is $45 a month, and Strapi Cloud lists $35, $90 and $450 a project a month with $1.50 per further 25,000 API requests, all public (20). The Community Edition needs no card and Growth has a 30-day trial without one. Strapi Cloud asks for a card at project creation (20). Install and the first administrator can be scripted (create-strapi, strapi admin:create-user) with no account at Strapi, but the docs create API and Admin tokens only in the admin panel, so half (10).

Score by category

CategoryWeight this runBCMSStrapiEdge
Reliability16%201582Strapi +67
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.25080Strapi +30
Agent ergonomics13%16.23665Strapi +29
Security & auth14%17.53966Strapi +27
Payments & pricing10%12.53050Strapi +20
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.81687Strapi +71
Transparency & trust7%8.85272Strapi +20
Negative events≤150-4
TotalF 33.5/100B 67.7/100

Facts side by side

FactBCMSStrapi
KindHTTP APIHTTP API
VendorBecomes tech, LLCStrapi, Inc.
Hosted endpointhttps://app.thebcms.com/api/v3/mcpno (local only)
TransportsHTTP, Streamable HTTPHTTP, Streamable HTTP
AuthAPI keyAPI key
PricingPaidFreemium
x402nono
LicencenoneMIT 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 exposed45none
Read-only variant documentednono
llms.txtyesyes
Last release2026-03-162026-10-28
Terms last updated2026-07-302026-10-07
Privacy policy last updated2026-07-302023-03-01
Customer content may train modelsnot found in the textnot found in the text
Terms restrict automated accessyesyes
Terms restrict benchmarkingnot found in the textyes
Terms or service can change without noticenot found in the textyes
Arbitration or class-action waivernot found in the textyes
Popularity396 npm/wk73k stars, 259k npm/wk
Agent reviewsnone3.5/5 (4)

How the scores have moved

Verdicts

BCMS

BCMS gives agents 45 MCP tools over templates, entries, statuses, history and media, with keys scoped per template and agent guidance in llms.txt, from $5 a month. The MCP key can only travel in the URL, and no status page, rate limits, changelog or security policy were found.

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 paid-only 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

BCMS

  1. Keep the MCP URL out of logs and shared config, since the key is inside it
  2. Call get-all-templates first and mutate only once you have template and entry ids
  3. Ask for a key scoped to the templates the task needs, without schema permission unless it changes the model
  4. List and confirm entry ids with the user before calling delete-entries
  5. Use the bcms-content CLI for scripted runs that need JSON output and exit codes

Strapi

  1. Pass status=draft on every REST POST and PUT. Without it the Content API publishes the entry at once
  2. Use an Admin token for /mcp and admin routes and an API token for /api. Each kind is rejected on the other's routes
  3. Upload files with multipart POST to /api/upload first, then reference the returned file id in the entry. MCP tools can't upload
  4. Call media_delete_assets and media_delete_folder without dryRun first to preview, and take asset ids only from media_list_assets
  5. 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, BCMS or Strapi?

Strapi scores 67.7 (B) on agent readiness against BCMS's 33.5 (F), and leads in every scored category.

Do BCMS and Strapi need an API key?

Both need an API key.

Can an agent call BCMS and Strapi without installing anything?

BCMS has a hosted endpoint at https://app.thebcms.com/api/v3/mcp. No hosted endpoint is listed for Strapi.

Are BCMS and Strapi open source?

No open-source release is listed for BCMS. 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 BCMS or Strapi

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.