DEVELOPERS

Docs for humans. And their agents.

The tool surface is self-describing — most of what's below, an agent discovers on its own. These pages exist for the human reviewing its work.

The MCP tool surface — 42 tools, 8 groups

SCHEMAdefine_collection · list_collections · describe_collection · delete_collection
WRITEScreate_entry · update_entry · update_entry_if · delete_entry · bulk_create_entries · transact
READSquery_entries · get_entry · count_entries · aggregate_entries · search_entries
SAFETY NETlist_trash · restore_entry · purge_entry · empty_trash · list_entry_versions · restore_entry_version
AUTOMATIONlist_jobs · cancel_job · define_schedule · list_schedules · delete_schedule
OBSERVABILITYget_deliveries · refire_delivery · get_audit_log · get_changes
PROJECT / METAget_project_info · list_field_types · list_connectors · get_client_code · set_locales
ASSETS · PORTABILITY · COMPUTEupload_asset · list_assets · delete_asset · export_entries · export_project · import_project · test_hook

API conventions

E_* errors

Every error is {error, code} from an append-only registry. Validation failures carry ConstraintIssue[] with field, constraint, limit and a fix hint.

ETags & caching

Strong ETags on every delivery read, 304 on revalidate. Image derivatives serve 1-yr-immutable redirects.

Hooks guide

Composition rules: hooks gate synchronously, events run async, computed fields derive, CAS writes back. test_hook dry-runs without writing.

get_client_code → typed client, generated from your live schema
const posts = await agentx.posts.query({ filter: { published: true } });
const stream = agentx.changes.stream({ onChange: sync });
// dependency-free · compile-verified under --strict · CRUD, search, uploads, checkout