ParakeetoDocumentation
On this page

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: object
    • data.account: string (uuid)
    • data.events: array of object
      • data.events[].id: string (uuid)
      • data.events[].occurredAt: string (date-time)
      • data.events[].actorType: string ("person", "agent", "import", "system")
      • data.events[].actorName: string
      • data.events[].connectingPerson: string or null
      • data.events[].session: null
      • data.events[].connectionRef: string or null
      • data.events[].area: string ("projects", "people", "expenses", "scenario", "settings", "targets")
      • data.events[].rowId: string
      • data.events[].rowLabel: string or null
      • data.events[].operation: string ("create", "update", "delete", "restore")
      • data.events[].field: string or null
      • data.events[].oldValue: any, optional
      • data.events[].newValue: any, optional
      • data.events[].batchId: string (uuid)
    • data.truncated: boolean
    • data.nextCursor: string or null
    • data.latestChangeAt: string (date-time) or null
    • data.gridFreshness: array of object
      • data.gridFreshness[].kind: string ("payroll", "expense", "project")
      • data.gridFreshness[].gridId: string (uuid)
      • data.gridFreshness[].name: string
      • data.gridFreshness[].storage: string ("sheet", "database")
      • data.gridFreshness[].sheetRefreshedAt: string (date-time) or null
    • data.caveats: array of object
      • data.caveats[].code: string ("history-in-google-sheets")
      • data.caveats[].message: string
    • data.definitions: map of string to string, optional
      • data.definitions.*: string

On failure:

  • error: object
    • error.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: string
    • error.accounts: array of object, optional
      • error.accounts[].id: string (uuid)
      • error.accounts[].name: string
    • error.payrollGrids: array of object, optional
      • error.payrollGrids[]: same shape as error.accounts[]
    • error.projectGrids: array of object, optional
      • error.projectGrids[]: same shape as error.accounts[]
    • error.expenseGrids: array of object, optional
      • error.expenseGrids[]: same shape as error.accounts[]
    • error.context: object, optional
      • error.context.account: object
        • Further fields: see the response.
      • error.context.imports: array of object
        • Further fields: see the response.
      • error.context.hasTimeEntries: boolean
      • error.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.

Read as Markdown