Skip to content

collection operations

The exact fields each collection.* 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.

collection.create

Create a collection: a namespace read and written only through grants.

POST /v1/collection.create · MCP loom_collection_create · role viewer · idempotent · 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 '' The collection's name, also its namespace ('col-' then lowercase letters, digits and '-'), ignored with derive_name.
title str '' What the collection is called on screen (at most 200 characters, no control or invisible ones; titles repeat across the org); '' for none.
derive_name bool False Derive the name from title, not namespace; a title used under the parent (top level: the caller's own) answers that one.
parent str '' The collection it sits in and inherits grants from; '' for a top-level one.
description str '' What the collection holds, shown beside its name (at most 2000 characters); '' for none.
Output field Type Meaning
namespace str The namespace the op reads or writes.
parent str The collection it sits in; '' for a top-level one.
created bool False when the collection already existed: the caller's own by that name, or the one the title already names there.
title str The collection's title; '' for none.

collection.delete

Delete a collection with what it holds: a purging erasure of the namespace (documents, chunks, originals, memory leave the disk), then it leaves the directory and the tree, and its name is never used…

POST /v1/collection.delete · MCP loom_collection_delete · role admin · idempotent · 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.
Output field Type Meaning
namespace str The namespace the op reads or writes.
deleted bool False when it was already deleted
erasure_id str The erasure of what the collection held; erasure.status follows it.
erasure_status str That erasure's outcome: completed, or failed while the recovery worker retries it.

collection.list

List the collections the caller can read, by name.

POST /v1/collection.list · MCP loom_collection_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).
limit int 500 Collections per page.
cursor str \| None None The next_cursor of the previous page; none for the first.
Output field Type Meaning
collections list[_CollectionEntry] The collections the caller can read on this page, by name, with the caller's role and the collection's title and description.
next_cursor str \| None Pass as cursor for the next page; none on the last.

collection.move

Put a collection under another one, or detach it.

POST /v1/collection.move · MCP loom_collection_move · role admin · idempotent · 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.
parent str '' The new parent collection; '' detaches it, keeping only its own grants.
Output field Type Meaning
namespace str The namespace the op reads or writes.
parent str The collection it now sits in; '' once detached.
moved bool False when it already sat there