Version
READ

get_activity_log

Read the activity log for a given subject. Returns chronological entries with causer, event, and scrubbed properties.

Read the activity log for a given subject (e.g. a project or project-user). Returns reverse-chronological entries with causer, event, and properties. Keys matching token | secret | password | api_key | api_secret are stripped before the response returns.

Pass a short morph alias as subject_type — project, project-subscription, project-subscription-plan, project-user, project-resource, etc. The subject_id is the row UUID.

Requires ability

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

Runs the same action as

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Annotations

Read-only

It reads and never changes anything.

Arguments

subject_type*string

Alias of the model the activity is attached to: one of project, subscription, project-subscription, member, project-user, plan, project-subscription-plan, access-code, coupon, project-resource. Model class names are refused.

subject_id*string

UUID of the subject row.

limitintegeroptional

Maximum entries to return (1..200, default 50).

min1max200

What it returns

{  "data": [    {      "id": "92e4c1b6-70da-4f38-8517-b036ae94d7c2",      "log_name": "default",      "description": "Plan 'Premium Monthly' was updated.",      "event": "updated",      "subject_type": "project-subscription-plan",      "subject_id": "c4e82f16-93a7-4d5b-b81c-6e0f27a94d3b",      "causer_type": "user",      "causer_id": "2a91c4e7-6f38-4b52-8e0d-9c1a7b3f5d80",      "properties": {        "changes": {          "price": { "from": "25.00", "to": "29.00" }        }      },      "actor_kind": "human",      "created_at": "2026-05-18T10:05:00Z"    }  ],  "meta": {    "subject_type": "project-subscription-plan",    "subject_id": "c4e82f16-93a7-4d5b-b81c-6e0f27a94d3b",    "total": 12,    "limit": 50  }}

How it fails

TOKEN_MISSING_ABILITY

token lacks activity:read.

VALIDATION_FAILED

subject_type is not one of the supported aliases (model class names are refused; the error context lists the aliases), or subject_id is not a UUID (reason: not_a_uuid).

RESOURCE_NOT_FOUND

the subject does not exist, belongs to another creator, or sits outside the token's scope:project: allow-list. The history is never read before the subject itself resolves, so a foreign id learns nothing.

How is this guide?

Last updated on