Head to head · Cms content · October 2026 research run
Contentstack vs Ghost
Contentstack scores 64 (B) on agent readiness against Ghost's 58.3 (C), and leads in 3 of 7 scored categories. Ghost leads on reliability and payments & pricing. 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.
Ahead on
- Schema & documentation, 77 against 51
- Security & auth, 69 against 56
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
Ghost C
Good for A publication, blog or newsletter where an agent drafts posts and a person or a higher role publishes.
Ahead on
- Reliability, 80 against 71
- Payments & pricing, 50 against 30
Also in its favour
- Open source
Watch for
No OpenAPI or other machine-readable description of the Admin API was found in the docs or the repository
Score by category
| Category | Weight this run | Contentstack | Ghost | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 71 | 80 | Ghost +9 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 77 | 51 | Contentstack +26 |
| Agent ergonomics | 13%16.2 | 67 | 69 | Ghost +2 |
| Security & auth | 14%17.5 | 69 | 56 | Contentstack +13 |
| Payments & pricing | 10%12.5 | 30 | 50 | Ghost +20 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 82 | 85 | Ghost +3 |
| Transparency & trust | 7%8.8 | 73 | 72 | Contentstack +1 |
| Negative events | ≤15 | -3 | -7 | |
| Total | 64 · B | 58.3 · C |
Facts side by side
| Fact | Contentstack | Ghost |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Contentstack Inc. | Ghost Foundation |
| Hosted endpoint | https://api.contentstack.io | no (local only) |
| Transports | HTTP, stdio | 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, copyright Ghost Foundation. Ghost(Pro) is a paid hosting service under the Ghost Foundation's 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 | no date given |
| Privacy policy last updated | 2026-06-30 | no date given |
| 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 | not found in the text |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | yes | not found in the text |
| Popularity | 44k npm/wk, 1.5k PyPI/wk | 56k stars, 24k 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.
Ghost
A create needs only a title, updates are checked against updated_at so a stale write is refused, and a Contributor's staff token can draft without being able to publish. The Admin API has no OpenAPI file and one fixed permission set per integration, and 20 security advisories were published between 3 September and 1 October 2026.
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
Ghost
- Sign a fresh HS256 token for each batch of calls. Decode the hex secret to bytes, set
kidto the key id,audto/admin/andexpat most 5 minutes ahead - Set
statustodrafton every create unless told to publish, and publish later with a PUT that setsstatustopublished - GET the post before each PUT and send its
updated_atback. Tags and authors in a PUT replace the existing lists - Send content as a Lexical JSON string, or add
?source=htmland sendhtml. The HTML conversion is lossy unless wrapped in an HTML card - Page through lists with
limitup to 100 andpage. Since Ghost 6.0limit=allreturns 100 items without an error
Questions
Which is better for AI agents, Contentstack or Ghost?
Contentstack scores 64 (B) on agent readiness against Ghost's 58.3 (C), and leads in 3 of 7 scored categories. Ghost leads on reliability and payments & pricing.
Do Contentstack and Ghost need an API key?
Contentstack takes an API key or an OAuth sign-in. Ghost needs an API key.
Can an agent call Contentstack and Ghost without installing anything?
Contentstack has a hosted endpoint at https://api.contentstack.io. No hosted endpoint is listed for Ghost.
Are Contentstack and Ghost open source?
No open-source release is listed for Contentstack. Ghost is open source (MIT, copyright Ghost Foundation. Ghost(Pro) is a paid hosting service under the Ghost Foundation's terms).
Other comparisons with Contentstack or Ghost
Machine-readable
- This page as Markdown
/compare/contentstack-vs-ghost.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/contentstack.json·/api/v1/tools/ghost.json - From a terminal
anchor compare contentstack ghost(the CLI) - Over MCP
compare_tools {"a": "contentstack", "b": "ghost"}at/mcp, no key