# Directus vs Storyblok > Storyblok and Directus score within a point of each other on agent readiness, 67.7 (B) and 67.1 (B). Directus leads on schema & documentation, payments & pricing and maintenance & community. Both do cms content. Category scores, facts, verdicts and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/directus-vs-storyblok - Markdown: https://www.anchorterminal.com/compare/directus-vs-storyblok.md (~2,300 tokens) - Slim: https://www.anchorterminal.com/compare/directus-vs-storyblok.min.md (~780 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/directus-vs-storyblok.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-08 Storyblok and Directus score within a point of each other on agent readiness, 67.7 (B) and 67.1 (B). Directus leads on schema & documentation, payments & pricing and maintenance & community. Both do cms content. - Directus: grade B, 67.1/100, rank #217 of 722. Markdown https://www.anchorterminal.com/tools/directus.md · JSON https://www.anchorterminal.com/api/v1/tools/directus.json - Storyblok: grade B, 67.7/100, rank #202 of 722. Markdown https://www.anchorterminal.com/tools/storyblok.md · JSON https://www.anchorterminal.com/api/v1/tools/storyblok.json ## Which one, for what ### Directus (B) Good for: Teams that already keep content in an SQL database and want an agent to edit items, files and the data model under a named user's permissions. Ahead on: - Schema & documentation, 81 against 68 - Payments & pricing, 55 against 35 - Maintenance & community, 86 against 80 Watch for: Version 12 (10 June 2026) added licence enforcement. The free Core tier allows 3 Studio seats, 25 collections and 5 flows, and an instance over its limits is locked after a grace period ### Storyblok (B) Good for: Teams already on Storyblok who want an agent to draft, translate and publish stories or change component schemas under scoped, per-space permissions. Ahead on: - Agent ergonomics, 78 against 73 - Security & auth, 73 against 68 - Transparency & trust, 80 against 61 Also in its favour: - A hosted endpoint, with nothing to install - Free to start without a card Watch for: The Management API's OpenAPI spec sits in a private repository. Only the Content Delivery API has a public spec (OpenAPI 3.1, 14 operations) ## Score by category | Category | Weight | Directus | Storyblok | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 82 | 79 | Directus +3 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 81 | 68 | Directus +13 | | Agent ergonomics | 13% (16.2 this run) | 73 | 78 | Storyblok +5 | | Security & auth | 14% (17.5 this run) | 68 | 73 | Storyblok +5 | | Payments & pricing | 10% (12.5 this run) | 55 | 35 | Directus +20 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 86 | 80 | Directus +6 | | Transparency & trust | 7% (8.8 this run) | 61 | 80 | Storyblok +19 | | Negative events | ≤15 | -6 | -3 | | | **Total** | | **67.1 · B** | **67.7 · B** | | ## Facts side by side | Fact | Directus | Storyblok | | --- | --- | --- | | Kind | HTTP API | HTTP API | | Vendor | Monospace Inc. (Directus) | Storyblok GmbH | | Hosted endpoint | no (local only) | `https://mapi.storyblok.com/v1` | | Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP | | Auth | OAuth or key | OAuth or key | | Pricing | Freemium | Freemium | | x402 | no | no | | Licence | MSCL-1.0-GPL (Monospace Sustainable Core Licence 1.0), source-available with a licence key for paid tiers, each version converting to GPL-3.0 after four years. `@directus/sdk` is MIT | Proprietary service under Storyblok's terms. The SDKs, API clients and CLI in storyblok/monoblok are MIT | | Tools exposed | 12 | 7 | | Read-only variant documented | no | no | | llms.txt | yes | yes | | Last release | 2026-10-07 | 2026-10-02 | | Terms last updated | no date given | couldn't be read | | Privacy policy last updated | 2026-06-09 | 2025-10-06 | | Customer content may train models | not found in the text | couldn't be read | | Terms restrict automated access | not found in the text | couldn't be read | | Terms restrict benchmarking | yes | couldn't be read | | Terms or service can change without notice | not found in the text | couldn't be read | | Arbitration or class-action waiver | not found in the text | couldn't be read | | Popularity | 38k stars, 23k npm/wk | 68 stars, 433k npm/wk | ## Verdicts **Directus.** The built-in MCP server works under the connecting user's permissions, supports OAuth limited to the MCP endpoint and blocks deletes unless an administrator allows them. Since version 12 a licence check caps the free Core tier at 3 Studio seats, 25 collections and 5 flows, and the default tool list carries about 79 KB of instructions. **Storyblok.** The hosted MCP server covers the whole Management API with seven tools, OAuth scopes split into read, write and publish per space, and a confirmation step on deletes. The Management API has no public OpenAPI spec, no idempotency keys and no monitor on the public status page, and publishing is a GET request. ## Before you call either ### Directus 1. Connect with OAuth or an `Authorization: Bearer` header. Don't put the token in the URL as `?access_token=`, where it can be logged 2. Use `/mcp?tool_mode=registry` when the client loads every tool definition. Default mode sends each tool's full instructions, about 79 KB in total 3. Read the `schema` tool before writing. Item payloads are untyped objects, so field names and types come only from the data model 4. Publish a version with `POST /versions/{id}/promote` over REST. The MCP `items` tool refuses system collections such as `directus_versions` 5. Count translation and junction tables against the 25-collection Core limit before creating collections ### Storyblok 1. Pick the base URL by the space's region (mapi.storyblok.com for the EU, api-us, api-ca or api-ap otherwise). A token sent to the wrong region fails 2. Create stories without `publish` to keep them as drafts, then call the publish endpoint. It is a GET, so never prefetch or blindly retry it 3. Write translations as `field__i18n__` keys inside the same content object, and set the component field to translatable first 4. Upload an asset in three steps (signed response, POST to S3, finish upload). Through MCP the S3 step needs shell access for curl 5. Stay under 3 calls a second on Starter and 6 on paid plans, and back off exponentially on 429. Saves that break a field's max_length return 422 ## Questions ### Which is better for AI agents, Directus or Storyblok? Storyblok and Directus score within a point of each other on agent readiness, 67.7 (B) and 67.1 (B). Directus leads on schema & documentation, payments & pricing and maintenance & community. ### Do Directus and Storyblok need an API key? Both take an API key or an OAuth sign-in. ### Can an agent call Directus and Storyblok without installing anything? No hosted endpoint is listed for Directus. Storyblok has a hosted endpoint at https://mapi.storyblok.com/v1. ## For agents - This comparison as JSON: https://www.anchorterminal.com/compare/directus-vs-storyblok.json, and with the fewest tokens: https://www.anchorterminal.com/compare/directus-vs-storyblok.min.md - Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "directus", "b": "storyblok"}`. From a terminal: `anchor compare directus storyblok` - Each listing in full: https://www.anchorterminal.com/api/v1/tools/directus.json and https://www.anchorterminal.com/api/v1/tools/storyblok.json ## Other comparisons with Directus or Storyblok - [Contentstack vs Directus](https://www.anchorterminal.com/compare/contentstack-vs-directus.md) - [Contentstack vs Storyblok](https://www.anchorterminal.com/compare/contentstack-vs-storyblok.md) - [DatoCMS vs Directus](https://www.anchorterminal.com/compare/datocms-vs-directus.md) - [DatoCMS vs Storyblok](https://www.anchorterminal.com/compare/datocms-vs-storyblok.md) - [Directus vs Ghost](https://www.anchorterminal.com/compare/directus-vs-ghost.md) - [Directus vs Payload](https://www.anchorterminal.com/compare/directus-vs-payload.md) - [Directus vs Sanity](https://www.anchorterminal.com/compare/directus-vs-sanity.md) - [Directus vs Strapi](https://www.anchorterminal.com/compare/directus-vs-strapi.md) - [Directus vs Webflow](https://www.anchorterminal.com/compare/directus-vs-webflow.md) - [Directus vs WordPress](https://www.anchorterminal.com/compare/directus-vs-wordpress.md) - [Ghost vs Storyblok](https://www.anchorterminal.com/compare/ghost-vs-storyblok.md) - [Payload vs Storyblok](https://www.anchorterminal.com/compare/payload-vs-storyblok.md) - [Sanity vs Storyblok](https://www.anchorterminal.com/compare/sanity-vs-storyblok.md) - [Storyblok vs Strapi](https://www.anchorterminal.com/compare/storyblok-vs-strapi.md) - [Storyblok vs Webflow](https://www.anchorterminal.com/compare/storyblok-vs-webflow.md) - [Storyblok vs WordPress](https://www.anchorterminal.com/compare/storyblok-vs-wordpress.md)