list_changes
What it answers
List the account's change log, newest first: who changed what and when on the Project, People (payroll) and Expense grids, scenarios and settings. Each event names the actor (person, agent, import or system), for agents the MCP client and the person whose credentials connected it, the area, row id and label, field, old and new value and the batch id. Filter by area, rowId, field, actorType, actor (person id, connection or key id, import run id or system job), since (inclusive) and until (exclusive) as ISO instants. Page with limit (default 50, maximum 200) and cursor from nextCursor. Requires People grid view because history can carry compensation. Grids backed by Google Sheets are not served: a caveat points to Google Sheets version history. Changes agents make through this server are recorded and visible to the account's people. Read parakeeto://methodology for shared response conventions and INVALID_ARGUMENT guidance.
Read-only.
Arguments
| Argument | Type | Required | Default | Allowed values |
|---|---|---|---|---|
account |
string (uuid) | no | — | — |
area |
string | no | — | "projects", "people", "expenses", "scenario", "settings" |
rowId |
string | no | — | minLength: 1; maxLength: 200 |
field |
string | no | — | minLength: 1; maxLength: 200 |
actorType |
string | no | — | "person", "agent", "import", "system" |
actor |
string | no | — | minLength: 1; maxLength: 200 |
since |
string (date-time) | no | — | — |
until |
string (date-time) | no | — | — |
limit |
integer | no | 50 |
minimum: 1; maximum: 200 |
cursor |
string | no | — | minLength: 1; maxLength: 500 |
includeDefinitions |
boolean | no | true |
— |
Returned fields
The result is an envelope: ok: true with data, or ok: false with error. Error codes: MODEL_CALCULATOR_ACCESS_REQUIRED, PAYROLL_GRID_MISSING, PAYROLL_GRID_REQUIRED, PROJECT_GRID_REQUIRED, EXPENSE_GRID_REQUIRED, PAYROLL_ENTRY_REFERENCE_STALE, ACCOUNT_NOT_FOUND, ACCOUNT_CONFIGURATION_MISSING, NO_IMPORTED_TIME, NOTHING_IMPORTED, ACCOUNT_REQUIRED, NO_REACHABLE_ACCOUNTS, FEATURE_NOT_ENTITLED, PERMISSION_DENIED, CALCULATION_FAILED, INTERNAL_ERROR, INVALID_ARGUMENT.
data: objectdata.account: string (uuid)data.events: array of objectdata.events[].id: string (uuid)data.events[].occurredAt: string (date-time)data.events[].actorType: string ("person","agent","import","system")data.events[].actorName: stringdata.events[].connectingPerson: string or nulldata.events[].session: nulldata.events[].connectionRef: string or nulldata.events[].area: string ("projects","people","expenses","scenario","settings","targets")data.events[].rowId: stringdata.events[].rowLabel: string or nulldata.events[].operation: string ("create","update","delete","restore")data.events[].field: string or nulldata.events[].oldValue: any, optionaldata.events[].newValue: any, optionaldata.events[].batchId: string (uuid)
data.truncated: booleandata.nextCursor: string or nulldata.latestChangeAt: string (date-time) or nulldata.gridFreshness: array of objectdata.gridFreshness[].kind: string ("payroll","expense","project")data.gridFreshness[].gridId: string (uuid)data.gridFreshness[].name: stringdata.gridFreshness[].storage: string ("sheet","database")data.gridFreshness[].sheetRefreshedAt: string (date-time) or null
data.caveats: array of objectdata.caveats[].code: string ("history-in-google-sheets")data.caveats[].message: string
data.definitions: map of string to string, optionaldata.definitions.*: string
On failure:
error: objecterror.code: string ("MODEL_CALCULATOR_ACCESS_REQUIRED","PAYROLL_GRID_MISSING","PAYROLL_GRID_REQUIRED","PROJECT_GRID_REQUIRED","EXPENSE_GRID_REQUIRED","PAYROLL_ENTRY_REFERENCE_STALE","ACCOUNT_NOT_FOUND","ACCOUNT_CONFIGURATION_MISSING","NO_IMPORTED_TIME","NOTHING_IMPORTED","ACCOUNT_REQUIRED","NO_REACHABLE_ACCOUNTS","FEATURE_NOT_ENTITLED","PERMISSION_DENIED","CALCULATION_FAILED","INTERNAL_ERROR","INVALID_ARGUMENT")error.argument: string, optional (minLength: 1)error.message: stringerror.accounts: array of object, optionalerror.accounts[].id: string (uuid)error.accounts[].name: string
error.payrollGrids: array of object, optionalerror.payrollGrids[]: same shape aserror.accounts[]
error.projectGrids: array of object, optionalerror.projectGrids[]: same shape aserror.accounts[]
error.expenseGrids: array of object, optionalerror.expenseGrids[]: same shape aserror.accounts[]
error.context: object, optionalerror.context.account: object- Further fields: see the response.
error.context.imports: array of object- Further fields: see the response.
error.context.hasTimeEntries: booleanerror.context.reports: array of object- Further fields: see the response.
Definitions
Returned in definitions when includeDefinitions is true (the default). It is a map of string to string: each key names a field and each value is its definition text.
Caveats
history-in-google-sheets.
Read every caveat before interpreting a figure. See methodology on how to communicate caveats and data-quality conditions.
Example call
{
"name": "list_changes",
"arguments": {}
}
Add account with an identifier from list_accounts; omit it only when the connection reaches exactly one account.
Questions and answers
What does list_changes answer?
List the account's change log, newest first: who changed what and when on the Project, People (payroll) and Expense grids, scenarios and settings. Each event names the actor (person, agent, import or system), for agents the MCP client and the person whose credentials connected it, the area, row id and label, field, old and new value and the batch id. Filter by area, rowId, field, actorType, actor (person id, connection or key id, import run id or system job), since (inclusive) and until (exclusive) as ISO instants. Page with limit (default 50, maximum 200) and cursor from nextCursor. Requires People grid view because history can carry compensation. Grids backed by Google Sheets are not served: a caveat points to Google Sheets version history. Changes agents make through this server are recorded and visible to the account's people. Read parakeeto://methodology for shared response conventions and INVALID_ARGUMENT guidance.
Which arguments does list_changes accept?
Argument Type Required Default Allowed values account string (uuid) no — — area string no — "projects", "people", "expenses", "scenario", "settings" rowId string no — minLength: 1; maxLength: 200 field string no — minLength: 1; maxLength: 200 actorType string no — "person", "agent", "import", "system" actor string no — minLength: 1; maxLength: 200 since string (date-time) no — — until string (date-time) no — — limit integer no 50 minimum: 1; maximum: 200 cursor string no — minLength: 1; maxLength: 500 includeDefinitions boolean no true —
What does list_changes return?
The result is an envelope: ok: true with data, or ok: false with error.