Head to head · Cms content · October 2026 research run
Directus vs Sanity
Sanity scores 73.7 (BB) on agent readiness against Directus's 67.1 (B), and leads in 4 of 7 scored categories. Directus leads on reliability and payments & pricing. Both do cms content.
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
- Reliability, 82 against 77
- Payments & pricing, 55 against 40
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
Sanity BB
Good for Teams that model content as structured documents and want an agent to draft, patch and stage changes in releases for a person to publish.
Ahead on
- Schema & documentation, 87 against 81
- Transparency & trust, 87 against 61
Also in its favour
- Agent-ready, a grade of BB or better
- A hosted endpoint, with nothing to install
- No incidents deducted, where Directus loses 6 points for them
Watch for
Schema validation rules run only in Sanity Studio. The HTTP mutation API accepts a document without checking them
Score by category
| Category | Weight this run | Directus | Sanity | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 82 | 77 | Directus +5 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 81 | 87 | Sanity +6 |
| Agent ergonomics | 13%16.2 | 73 | 74 | Sanity +1 |
| Security & auth | 14%17.5 | 68 | 67 | Directus +1 |
| Payments & pricing | 10%12.5 | 55 | 40 | Directus +15 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 86 | 89 | Sanity +3 |
| Transparency & trust | 7%8.8 | 61 | 87 | Sanity +26 |
| Negative events | ≤15 | -6 | 0 | |
| Total | 67.1 · B | 73.7 · BB |
Facts side by side
| Fact | Directus | Sanity |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Monospace Inc. (Directus) | Sanity US Inc. and Sanity AS |
| Hosted endpoint | no (local only) | https://api.sanity.io |
| 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 hosted service under Sanity's terms of service. Sanity Studio, the CLI, @sanity/client and the agent toolkit on GitHub are MIT |
| Tools exposed | 12 | 53 |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| MCP registry | not listed | io.sanity.www/mcp |
| Last release | 2026-10-07 | 2026-10-02 |
| Terms last updated | no date given | no date given |
| Privacy policy last updated | 2026-06-09 | 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 | not found in the text |
| Terms restrict benchmarking | yes | yes |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | not found in the text | not found in the text |
| Popularity | 38k stars, 23k npm/wk | 6.4k stars, 4.1M 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.
Sanity
Sanity publishes 26 OpenAPI specs covering 225 operations, and its hosted MCP server saves edits to drafts or release versions, with publishing as a separate call. The Content Lake does not run schema validation on API writes, and custom roles that limit a token to one dataset or document type are sold only on Enterprise plans.
Before you call either
Directus
- Connect with OAuth or an
Authorization: Bearerheader. Don't put the token in the URL as?access_token=, where it can be logged - Use
/mcp?tool_mode=registrywhen the client loads every tool definition. Default mode sends each tool's full instructions, about 79 KB in total - Read the
schematool before writing. Item payloads are untyped objects, so field names and types come only from the data model - Publish a version with
POST /versions/{id}/promoteover REST. The MCPitemstool refuses system collections such asdirectus_versions - Count translation and junction tables against the 25-collection Core limit before creating collections
Sanity
- Pin a static dated version in every URL, such as
v2025-02-19. OmittingapiVersionin@sanity/clientfalls back tov1. - Validate documents against the schema yourself before an HTTP write, or run
sanity documents validateafterwards. The Content Lake does not enforce schema rules. - Back off on 429 for mutations yourself.
@sanity/clientretries queries five times but never retries mutations. The limit is 25 mutations a second per IP. - Over MCP, call
create_versionbeforepatch_documentswhen editing inside a release, then patch the returned version ID with the samereleaseId. - Use GROQ projections and slices to size results. MCP query responses are limited to 64 KiB, and a blocked Free project answers 402 with
plan_limit_reached.
Questions
Which is better for AI agents, Directus or Sanity?
Sanity scores 73.7 (BB) on agent readiness against Directus's 67.1 (B), and leads in 4 of 7 scored categories. Directus leads on reliability and payments & pricing.
Do Directus and Sanity need an API key?
Both take an API key or an OAuth sign-in.
Can an agent call Directus and Sanity without installing anything?
No hosted endpoint is listed for Directus. Sanity has a hosted endpoint at https://api.sanity.io.
Other comparisons with Directus or Sanity
- Contentstack vs Directus
- Contentstack vs Sanity
- DatoCMS vs Directus
- DatoCMS vs Sanity
- Directus vs Ghost
- Directus vs Payload
- Directus vs Storyblok
- Directus vs Strapi
- Directus vs Webflow
- Directus vs WordPress
- Ghost vs Sanity
- Payload vs Sanity
- Sanity vs Storyblok
- Sanity vs Strapi
- Sanity vs Webflow
- Sanity vs WordPress
Machine-readable
- This page as Markdown
/compare/directus-vs-sanity.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/directus.json·/api/v1/tools/sanity.json - From a terminal
anchor compare directus sanity(the CLI) - Over MCP
compare_tools {"a": "directus", "b": "sanity"}at/mcp, no key