What AI-native Means

Designing a CMS for agents, not just humans.

“AI-native” is now firmly in the marketing-jargon graveyard, alongside “cloud-native” and “AI-powered”. So when we use it for Squilla, here's what we actually mean.

Agents are users, not integrations

The standard model for AI in a CMS is integration: you bolt a writer-assistant button onto a richtext editor, or you generate alt text via a sidecar API call. Squilla flips this. The CMS is built so that an autonomous agent can be the primary operator, with the same surface humans use — the CoreAPI, the MCP server, the events, the capability scopes. There's no separate “AI mode”.

What that looks like in practice

An agent connected to Squilla via MCP can:

  • Register a new node type (“a recipe has a hero, a prep_time, and an ingredients repeater”)
  • Seed a hundred recipes with structured fields and rich-text bodies
  • Wire up navigation, set site settings, install and activate an extension
  • Preview rendered HTML before publishing
  • Iterate on a content block's template + test_data, smoke-render it, then attach it to a page

None of those operations require filesystem access, shell access, or human approval per call. They require capability scopes, which the agent's bearer token declares up-front.

Why MCP, not REST

MCP gives us three things a REST API doesn't:

  1. Self-describing tools. Every tool has a typed schema. The agent doesn't need a separate documentation pass.
  2. The core.guide meta-tool. One call returns a goal→tool decision tree plus a live snapshot of the CMS (active theme, node counts, recent nodes). It replaces the agent's first ten discovery calls.
  3. Resource URIs. The MCP server exposes squilla://guidelines/themes and similar URIs, so an agent can pull authoring conventions before it starts writing.

Constraints on the agent

Capability scopes are enforced server-side. You can issue a token that can read but not write, or one that can manage content but not activate extensions. The guard has no override; an unscoped call returns an error. AI-native means the agent is a first-class citizen, not that it has root.

← all posts