A backend with a human face

Looks like a notebook. Built like a backend.

Pages, typed tables and files your team writes in, with an MCP endpoint and a REST API your agents write to. Same data, live, in both directions.

Take it apart

Four layers, one workspace.

The page you write in sits on the same records the API serves. There’s no export and no second system to keep in sync.

Turn it over

The underside is for agents.

Point an assistant at one URL. There’s no API key to make: it signs in with OAuth and you approve it. It sees the same workspace as JSON and can never do more than you can.

Live

Agents write. You watch it land.

Writes over MCP or REST show up in open pages as they happen. Each one is checked against the table’s fields, attributed, and logged in the activity feed.

Views

One table, eight ways to look at it.

Change a value in one and every other view already has it.

  • Table
  • Board
  • Gallery
  • List
  • Feed
  • Calendar
  • Timeline
  • Map
Who’s asking

Three ways in. Each knows its limits.

What separates them isn’t the protocol. It’s how much of the person’s account they reach.

An assistant

Claude, Cursor or your own agent, acting as a person.

MCP · OAuth · no key
Reaches: Every workspace that person belongs to.
An integration

A tool someone connects to one workspace.

OAuth 2.1 + PKCE · REST
Reaches: The one workspace they picked.
A script

Something the workspace owner runs themselves.

ak_ API key · REST
Reaches: The workspace the key belongs to.
Whatever comes in gets the weaker of the person’s role and the scope they approved. Grant read and it reads. No request parameter can widen that.
In every workspace

The parts people use every day.

Pages

Write together in real time, with tables, math, drawings and files inline. Pages you pin keep working offline.

Tables

Typed fields, relations and formulas. Every view reads the same records.

Files

Delete a page and the files only it used are archived with it. Restore it and they come back.

Comments

Threads on a page or on one field of a record. An agent can post as itself or on your behalf.

Automations

When something changes, send a webhook or a push notification.

Search

Full text across titles and page bodies, including notes written on records, and forgiving of typos in titles.

Connect

One URL. No API key.

Any MCP client finds the sign-in on its own. You approve it once in the browser.

https://aurochs.oxen.dev/api/mcp
$ claude mcp add --transport http aurochs https://aurochs.oxen.dev/api/mcp

Maybe time to upgrade your database?

Start with a page. The backend comes with it.