design
Why three doors
On the design decision to treat GUI, API, and MCP as three equal access paths instead of nesting them in a hierarchy.
A short history of access paths
Most content systems start as a database with an admin UI bolted on. Eventually the admin UI gets an API behind it, usually for a specific frontend. Later, when AI shows up, the system either grows a bespoke integration layer or stays out of the conversation entirely.
Each new path is a second-class citizen. The CMS is the GUI; the API is a way to get at the CMS; the AI tools are a way to talk about the API.
Jaina takes a different stance: three doors, none privileged.
What "equal" means
The schema is the meta-class. Everything below it is derived. When you add a field:
- The GUI re-renders the editor.
- The REST API gains a new shape in its response.
- The OpenAPI spec updates.
- The MCP tool list updates.
- The typed SDKs gain a new field on their generated models.
There is no "primary" door that the others wrap. There's a single canonical definition, and three projections of it.
Why this matters in practice
Drift. Every system that has separate sources of truth eventually drifts. The Strapi admin shows one set of fields; the GraphQL resolver shows a slightly older set; the iOS app crashes on a deprecated key. The Contentful API has a property the CMS UI cannot edit because that one was added in a migration script. Every team has lived this.
When the schema is the only definition, drift can't happen. The forms cannot show a field the API doesn't return. The MCP tool list cannot expose a write capability the REST endpoint refuses.
Why MCP gets a door
Three years ago this section wouldn't exist. Today, AI agents are the third class of consumer for structured data alongside humans and machines. Pretending they aren't — or treating them as machines that happen to need extra hand-holding — produces brittle, hacky integrations.
MCP gives us a clean answer: a tool-call protocol with native type negotiation. Schema-driven tool generation falls out naturally. If your data has a shape, MCP can describe it.
What we're saying no to
- API-first that pretends the admin UI is optional. It isn't. Editors need a place to work that isn't a JSON form.
- CMS-first that pretends the API is a side door. It isn't. The API is how the work reaches production.
- AI-as-afterthought. It isn't an afterthought.
Three doors. None privileged. One schema underneath them all.
