← All tools
Tables
User-defined record types with typed fields, for the things that are genuinely rows rather than prose.
4Tools
12Parameters
2026-09-03Generated
muninn_table_define
Writes
3 parameters
Declare a table (a kind of thing you want to track — Staff, Sources, Clients) and the fields its records share. Re-calling with the same slug UPDATES the definition: fields you pass replace the current set, so send the whole list, not a delta. Field `key` is permanent and is what record values are stored under; `label` is what a human sees and can be renamed freely. Mark a field private:true to keep it out of the grid, out of csv/xlsx export, and out of any team-shared view — private values never leave the encrypted record body. Field types: text, textarea, number, date, select, multi-select, checkbox, nested-table. Use `textarea` for anything that runs to more than a line — notes, a description, an address, a bio: it stores exactly like `text` and tells the app to give it a multi-line box instead of a single-line input.
| Parameter | Type | Required | Description |
| tableSlug |
string |
Required |
Stable identifier, e.g. 'bui-staff'. Permanent — this is how records are filed. |
| title |
string |
Required |
Human-readable name, e.g. 'Staff'. Renameable. |
| fields |
object[] |
Required |
The full field list, in display order. Replaces any existing definition. |
muninn_table_list
Read only
0 parameters
List every table you have declared, with its fields and how many records each holds. Counts are top-level records only — entries in a nested table are not counted as records of the parent table. Use this before adding a record, to check the table exists and to see what fields it expects.
muninn_table_record_add
Writes
6 parameters
Add a record to a table. `values` is keyed by field key (see muninn_table_list). Pass parentRecordId to file this as an entry in the nested table under an existing record — that is how a running log lives under a standing profile. Nesting is capped at one level: a record may hold a nested table, a nested record may not. Returns {recordId} — the record's memory id, which muninn_memory_get and muninn_memory_update accept.
| Parameter | Type | Required | Description |
| tableSlug |
string |
Required |
Which table to file this record into. Must already be declared. |
| values |
object |
Required |
Field values keyed by field key, e.g. {"role":"Engineer","status":"active"}. Unknown keys are rejected. |
| parentRecordId |
string |
— |
Memory id of the parent record. Set this to add an entry to that record's nested table (a log entry under a profile). |
| tags |
string[] |
default [] |
Optional tags. Filing into a table is NOT a tag — it is structural — so no table tag is added for you. |
| project |
string |
— |
Project slug to scope this record. |
| occurredAt |
string |
— |
ISO 8601 datetime of when this actually happened, if not now. Useful for backfilling log entries. |
muninn_table_records_list
Read only
3 parameters
List the records in a table, in order. Pass parentRecordId instead to list the nested table under one record (its log). By default returns ids and positions only — cheap, no record bodies read. Pass resolve:true to also return each record's field values; private fields are excluded from resolved values.
| Parameter | Type | Required | Description |
| tableSlug |
string |
— |
List the top-level records of this table. |
| parentRecordId |
string |
— |
List the nested table under this record instead. Takes precedence over tableSlug. |
| resolve |
boolean |
default false |
true = also read each record body and return its field values (private fields excluded). |
← Back to all 70 tools