Typesheet for AI agents

Your agent writes. Typesheet checks every value first.

1Your agent writes

{
  "tool": "upsert_records",
  "arguments": {
    "typesheet": "Sales leads",
    "entries": [{
      "values": {
        "company": "Acme Freight",
        "stage": "Closed",
        "seats": "twelve"
      }
    }]
  }
}

2Typesheet rejects it

// Nothing was written.
[{
  "index": 0,
  "errors": [
    { "field": "stage",
      "message":
        "\"Closed\" isn't one of: Won, Lost" },
    { "field": "seats",
      "message":
        "\"twelve\" isn't a number" }
  ]
}]

3It retries, and the item is saved

Acme Freight

Stage
Won
Seats
12
Next call
Oct 4, 2026

Assistantjust now

  • Checked on our server

    A wrong value is refused with the reason. One bad value saves nothing.

  • Marked as the agent's

    Every change shows who made it, and a model's edits can be undone.

  • No keys to manage

    One URL. Sign in once and it works in Claude, ChatGPT and Cursor.

With and without Typesheet

 Agent aloneAgent with Typesheet
A wrong valueSaved anywayRefused, with the reason
“It's done”The model's wordChecked on the server
The same item twiceA duplicateUpdated in place
Who changed whatUnknownMarked on every item
Keeping it currentRe-edit the whole fileOne call per change

You don't need it when

  • The data is already clean and typed.
  • It's a one-off you won't keep.
  • Your own database already enforces the rules.

Questions

Any MCP client: Claude, ChatGPT, Cursor, Zed and more.

It can say so, but exports refuse while any value fails, so the claim can't get bad data out.

Every item shows who changed it last, and a model's edits can be undone one by one.

No. Direct writes only count toward the items your plan holds.

Connect it in about a minute

One URL, no API keys.