Skip to main content
MCP server now available

Content infrastructure for modern teams.

Model your content once. Deliver it anywhere — through REST, GraphQL, or an MCP server your AI tools can speak to directly.

Read the docs
RESTGraphQLMCP
# Your assistant, talking to your CMS
claude "publish the spring lookbook"
semantic_search "spring lookbook" → entry 0x8a2f
publish_entry { id: "0x8a2f" }
Published. 28 tools · OAuth 2.0 · your permissions, not ours

Deliver anywhere

One model. Three doors.

Every project ships with three delivery channels, all reading from the same content — pick per consumer, not per project.

01

REST API

Predictable resources, cursor pagination, conditional requests. The workhorse.

GET /v1/entries?type=essay
02

GraphQL

One query, exactly the shape your front-end needs. Full schema introspection.

query { essays(first: 10) { title } }
03

MCP server

28 tools your AI assistant calls directly — read, write, publish, model. OAuth-scoped.

claude › update_entry { id, fields }

Enable Content Teams

Edit content, not code.

Create a content type, add your fields, and it's live over the API the same second — no migrations, no deploys, nothing to write. Powerful enough for the most technical setups, simple enough that anyone can model real data and ship it.

Create content types and fields in the browser — no migrations, no deploys
Live over REST, GraphQL and MCP the moment you save
Draft → review → published → archived
In reviewen-GB · saved 9m ago
Publish

Essay

The quiet web is bigger than you think

There is a kind of internet that does not optimise for you. It does not collect metrics. It refuses to recommend…

longformwebcurated
claude_desktop_config.json
{
  "mcpServers": {
    "headless": {
      "url": "https://headless.build/api/mcp",
    }
  }
}

Built for AI assistants

Give your AI the keys.

Allow your AI assistant to search semantically, draft entries, manage media and publish — with exactly the permissions you grant, nothing more.

OAuth 2.0
+ PKCE
28
tools
3
scopes

When something changes

Keep your tools in the know.

Subscribe to any of 11 events and Headless will POST a signed payload the moment it fires — to Slack, to an n8n workflow, or straight to your own service.

01

Slack

Post to a channel the moment an entry publishes — your team sees it before the cache warms.

entry.published → #content
02

n8n

Trigger a flow on any event — fan out to a CDN purge, a sitemap rebuild, a digest.

media.uploaded → optimise → CDN
03

Your endpoint

Any HTTPS URL. Signed, retried up to 6 times, every attempt logged. SSRF-guarded.

POST /hooks · X-Webhook-Signature