MCPAI agents work through MCP, under the same roles as people

One content model.
Three ways in.

Editors change it in the admin. Developers script it from the terminal. AI agents work through MCP. Every path runs under the same roles, limits and audit trail.

Self-hosted · free for personal projects · no card required

edge.example.com/sites/main/pages/about
In the admin
Editor
Headline
We build the edge your team runs on.
Publish

A form per content type, drafts and versions, publish when ready. Members see only what their role allows.

From the terminal
Developer
$ ilx agent run --module cms --operation nodes.update \
--params '{"n":"<page id>"}' \
--body '{"content":{"headline":"We build the edge your team runs on."}}'
updated · nodes.publish → live in 0.3 s

The ilx CLI runs every operation the CMS exposes — create, read, update, delete, publish — as a scoped agent connection. Script it, pipe it, run it in CI.

Through MCP
AI agent
"Update the About headline to match the new tagline."
→ cms.update_page · capability cms:page.write
✓ cms.publish_page · irreversible steps wait for a human's approval

Connect Claude or any MCP client. Agents get scoped capabilities, rate limits and an approval tier for anything destructive.

About/HeadlineWe build the edge your team runs on.
  1. Mina Aydın (editor) · admin · published About
  2. ilx · connection demo-cli · cms.nodes.update + nodes.publish on About
  3. Claude (agent) · MCP · cms.update_page + cms.publish_page · approved by Mina
Built onNext.jsFastifyPostgreSQLRedisSQLite per projectModel Context Protocol

Built so every door opens onto the same rules

The platform is one Node.js base with a drop-in module system. Content, members, tokens and agents all share one permission model, so what an editor may do and what an agent may do are decided in the same place.

Modules, not forks

The CMS, project management and tasks are modules. A module ships its REST routes, MCP tools, CLI commands and screens together, and is enabled per project without a redeploy.

One permission model

Owner, admin, member and client roles on organizations and projects. Scoped API tokens for people, scoped connections for agents. Quotas an operator sets, not a plan you guess at.

An approval tier for agents

Reads are free. Writes need a capability. Deletes and publishes wait for a human to approve in the admin, with the full request in front of them.

Capabilities

What ships in the box

A real platform, not a starter kit. Everything below is running in the product today.

Structured content

Pages, collections, globals and blueprints with typed fields, relations, versions, releases and scheduled publishing.

Sites and delivery

Several websites per project, per-site languages and translation state, redirects, a query layer and delivery rules for every front end.

Members and clients

Invite people into an organization or a single project. Clients get a scoped, read-ready view without an account to manage.

Security by default

Email verification, OAuth sign-in, argon2 passwords, short-lived sessions, CSRF protection and rate limits, all on from the first request.

A complete audit trail

Every change records who did it and which door they used: admin, CLI or agent. Filter it by project, actor or resource.

Self-hosted operations

One compose stack with backups, restore drills, health probes, metrics and error tracking. Runs on your server or ours.

Who it's for

One workspace, three points of view

Developers

Script it, extend it

Real-time content CRUD from the CLI
Drop-in modules with REST, MCP and CLI surfaces
A VS Code companion and an MCP bridge
Teams

Run the content, not the tooling

Editors work in a form, not a repo
Roles and quotas per organization and project
Approve what agents ask to do, in one place
Clients

See exactly what matters

Scoped, read-ready access
Clear status on every project
Nothing to install, nothing to configure

Open all three doors on your own content

Create a project, add the CMS module, and edit the same page from the admin, the CLI and an MCP client in under ten minutes.