Your website has an API for agents.
Every editor action is also a tool an agent can call — over MCP, with a token you issue and revoke, through the same access checks and the same validation the editor uses.

A sentence on the left. What ran on the right.
This site — the one you are reading — was written this way, from a terminal. No editor session was opened to make it.
The whole surface, not a demo subset.
Pages and blocks, brand and fonts, media, forms, the CMS, bookings, the shop, ticketing, translations, comments — and a screenshot tool so it can see what it just made.
List the blocks, fetch a subtree by path or by id, search text across pages. The narrow read is cheap and it is what stops an agent from guessing.
Block JSON can be validated with no side effects at all, so a malformed tree is caught before it costs a render.
Patch one node, replace a subtree, insert at a path, or land a whole page in one all-or-nothing write.
Render the page through the platform's own renderer and get a PNG back — at desktop, tablet or phone width.
A token you issue, and can take back.
Agent tokens are made in your account, scoped to read or read-write, and shown once. Every call is checked against the same permissions your login has — an agent cannot reach a site you cannot.
Smaller than the agent story, and honest about it.
The editor also has its own assistant surfaces — a chat panel, rewriting a selected passage, generating an image, filling a page. Each is gated separately and can be switched off for a whole account, and each draws on a monthly allowance.
If you want the full surface, the agent route above is the one that has it. The in-editor tools are conveniences, not the main event.
Issue a token and point your agent at it.
Read-only first, if you would rather watch it work before it can write.