Skip to main content
Databases are collections of documents with structured property columns. Think of a database as a spreadsheet view over your KB documents: each row is a document, each column is a typed property. Property values are backed by the tag system.
New to databases? See Databases for the mental model — including the key distinction between tag-backed columns (select, multi_select, status, checkbox) and scalar properties (number, date, text, etc.).
Databases are not versioned — they’re stable collection definitions that act as a lens over versioned documents.

Parameters

ParameterTypeRequiredDescription
actionenumYesThe operation to perform
filesystemstringNoFilesystem slug for create
databaseIdUUIDConditionalRequired for most actions except create
namestringConditionalDatabase name — required for create
descriptionstring | nullNoDatabase description
pathstring | nullNoPath for folder organization (e.g., "/engineering/trackers")
defaultBranchFilterstring | nullNoDefault branch filter for views (pass null to clear)
columnIdUUIDConditionalRequired for update_column, delete_column
columnNamestringConditionalRequired for add_column; optional for update_column
columnTypeenumConditionalRequired for add_column — see column types below
optionTagIdsUUID[]NoTag IDs for select/multi_select/status column options
newOptionParentPathstring | nullNoTag path prefix for auto-creating options inline
configobject | nullNoColumn config JSON — checkbox and status group config
documentIdUUIDConditionalRequired for add_document, remove_document, set_property
branchFilterstringNoBranch name filter for list_documents
valuestring | number | boolean | nullConditionalProperty value for set_property
viewIdUUIDNoView UUID for update_view
viewNamestringNoView name for create_view, update_view
viewTypetable | boardNoView type
viewConfigobjectNoView configuration JSON

Actions

ActionNotes
createCreate a new database
updateUpdate name, description, or path
deleteSoft-delete a database
list_columnsGet column schema with tag options
add_columnAdd a new column (see types below)
update_columnRename, add/remove options, or update config
delete_columnSoft-delete a column
list_documentsList documents with resolved property values
add_documentAdd a KB document to the database
remove_documentRemove a document from the database
list_viewsGet saved view configurations
create_viewCreate a table or board view
update_viewUpdate view configuration
set_propertySet a property value on a document

Column Types

Tag-based (options reference tag IDs):
TypeBehavior
selectSingle value — set_property replaces current value
multi_selectMultiple values — set_property adds to existing values
statusSingle value with group metadata (e.g., Not Started / In Progress / Done)
checkboxBoolean-like — auto-creates checked/unchecked tags on add_column
Scalar (set directly via set_property): number, date, text, url, email, page_ref

set_property

set_property is the most flexible action — it works with any column type:
  • Scalar columns: pass the value as-is (string for text/url/email, number for number, ISO string for date)
  • Tag-based columns: pass the option name as a string — Moxn auto-creates the option tag if it doesn’t exist
  • select/status: replaces the current value
  • multi_select: adds the value to existing values
  • Pass null to clear any property
{"action": "set_property", "databaseId": "...", "documentId": "...", "columnName": "Status", "value": "In Progress"}

Branch Filter (list_documents)

When branchFilter is set, documents are resolved on that branch if it exists, otherwise falls back to main. Useful for previewing “what the database looks like after merging the feature branch.”

Examples

"Create a Sprint Tracker database"
→ databases({action: "create", name: "Sprint Tracker", description: "Track sprint items"})

"Add a Status column with options"
→ databases({action: "add_column", databaseId: "...", columnName: "Status", columnType: "status", newOptionParentPath: "/sprint-tracker/status"})

"Set the status of a document to 'Done'"
→ databases({action: "set_property", databaseId: "...", documentId: "...", columnName: "Status", value: "Done"})

"List all documents in the database with their properties"
→ databases({action: "list_documents", databaseId: "..."})
  • tags — manage the tag definitions backing column options
  • changesets — coordinate multi-document merges from a database