memory_schema operations
The exact fields each memory_schema.* operation takes and returns.
Every op is POST /v1/<op> over HTTP and the MCP tool loom_<op>. The identity fields (org, namespace, agent, user_id, session_id) are filled from the token and the MCP session when a transport can; for an HTTP call with no token on a single-user server, the install's org on every op but code.* and tracker.* (which keep their plane's), and on some ops its namespace and agent; see identities and namespaces. The operations index explains role, kind and the MCP all listing. Unknown input fields are served and named in ignored_args.
memory_schema.approve
Approve (make active) or reject a proposed record schema.
POST /v1/memory_schema.approve · MCP loom_memory_schema_approve · role admin · write · audited · not listed under the MCP all toolset
| Input field | Type | Default | Meaning |
|---|---|---|---|
org |
str |
required | The tenant (first element of the identity tuple). |
namespace |
str |
required | The namespace the op reads or writes. |
name |
str |
required | The schema to decide on, by name. |
decision |
Literal['approve', 'reject'] |
required | approve makes the schema active; reject marks it rejected. |
reviewed_by |
str |
'' |
Reviewer fallback, stored only when the request has no principal to stamp. |
| Output field | Type | Meaning |
|---|---|---|
name |
str |
The schema name, echoed. |
status |
str |
The status now stored (active or rejected); empty when no schema has the name. |
updated |
bool |
False when no schema has the name and nothing was written. |
memory_schema.list
List a namespace's record schemas, active ones only unless include_proposed.
POST /v1/memory_schema.list · MCP loom_memory_schema_list · role viewer · read · not listed under the MCP all toolset
| Input field | Type | Default | Meaning |
|---|---|---|---|
org |
str |
required | The tenant (first element of the identity tuple). |
namespace |
str |
required | The namespace the op reads or writes. |
include_proposed |
bool |
False |
False lists active schemas only; True lists every non-tombstoned status. |
limit |
int |
100 |
At most this many schemas (1–500), ordered by name. |
| Output field | Type | Meaning |
|---|---|---|
schemas |
list[MemorySchemaSummary] |
The namespace's schemas with their fields, ordered by name. |
memory_schema.propose
Register a record schema as proposed, for an admin to approve or reject.
POST /v1/memory_schema.propose · MCP loom_memory_schema_propose · role writer · write · audited · not listed under the MCP all toolset
| Input field | Type | Default | Meaning |
|---|---|---|---|
org |
str |
required | The tenant (first element of the identity tuple). |
namespace |
str |
required | The namespace the op reads or writes. |
name |
str |
required | The schema's name; memory.record.write and queries address it by this name. |
description |
str |
'' |
Free text stored with the schema and returned by memory_schema.list. |
fields |
list[SchemaFieldInput] |
required | The field contracts (1–64); a bad type, constraint or pattern is rejected at register. |
created_by |
str |
'' |
Author fallback, stored only when the request has no principal to stamp. |
status |
Literal['active', 'proposed'] |
'active' |
active is writable at once; proposed waits for memory_schema.approve. |
| Output field | Type | Meaning |
|---|---|---|
schema_id |
str |
The new schema's id; every register call mints a fresh one. |
name |
str |
The schema name, echoed. |
field_count |
int |
How many fields the schema declares. |
status |
str |
The status it was stored with: active or proposed. |
memory_schema.register
Register a typed-record schema (named fields) for a namespace; typed records are then written against it.
POST /v1/memory_schema.register · MCP loom_memory_schema_register · role admin · write · audited
| Input field | Type | Default | Meaning |
|---|---|---|---|
org |
str |
required | The tenant (first element of the identity tuple). |
namespace |
str |
required | The namespace the op reads or writes. |
name |
str |
required | The schema's name; memory.record.write and queries address it by this name. |
description |
str |
'' |
Free text stored with the schema and returned by memory_schema.list. |
fields |
list[SchemaFieldInput] |
required | The field contracts (1–64); a bad type, constraint or pattern is rejected at register. |
created_by |
str |
'' |
Author fallback, stored only when the request has no principal to stamp. |
status |
Literal['active', 'proposed'] |
'active' |
active is writable at once; proposed waits for memory_schema.approve. |
| Output field | Type | Meaning |
|---|---|---|
schema_id |
str |
The new schema's id; every register call mints a fresh one. |
name |
str |
The schema name, echoed. |
field_count |
int |
How many fields the schema declares. |
status |
str |
The status it was stored with: active or proposed. |