list_time_logs
Lists time logs newest day first, for a project, for one work item, or for the person the token acts as, each with the item, the person, the minutes, the kind of work and whether it bills, with the totals the filters leave; a guest token reads none.
Read what was logged before you add to it or report on it. Give project_id for a project's logs, work_item_id for one item's (which wins), or neither for the logs of the person the token acts as across the projects it may see. Each row carries reference and work_item_title, user_name, logged_on, minutes and duration, activity, billable, source (manual, timer or import), note, and locked when an approved timesheet holds it. Narrow with user_id, activity, billable, from and to (Y-m-d), or search for words in the note, the reference or the title; page with limit (1 to 100, 50 by default) and page. For a project or an item, meta.totals carries the minutes, the billable_minutes and the count the filters leave, across every page. A client guest's token reads none.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same actions as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Annotations
It reads and never changes anything.
Arguments
project_idstringoptionalUUID of a project, for its logs.
work_item_idstringoptionalUUID of a work item, for its logs; wins over project_id.
user_idstringoptionalNarrow to the time one person worked.
activitystringoptionalNarrow to one kind of work.
developmentreviewtestinganalysismeetingsupportdeploymentotherbillablebooleanoptionalTrue for billable time only, false for the rest.
fromstringoptionalThe first day to include, Y-m-d.
tostringoptionalThe last day to include, Y-m-d.
searchstringoptionalWords the note, the reference or the title must contain.
limitintegeroptionalRows per page, 1 to 100; 50 by default.
pageintegeroptionalThe page, from 1.
What it returns
{ "data": [ { "id": "0f1e2d3c-4b5a-4968-8776-655443322110", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "work_item_id": "b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e", "reference": "CRM-142", "work_item_title": "Tier upgrade email", "user_id": "3f8a1c2e-7b4d-4e5f-9a6b-1c2d3e4f5a6b", "user_name": "Dev Lead", "logged_on": "2026-11-02", "minutes": 90, "duration": "1h 30m", "activity": "development", "billable": true, "source": "timer", "note": "Wired the tier job and its tests", "started_at": "2026-11-02T09:00:00+00:00", "approved_by": null, "approved_at": null, "locked": false, "locked_at": null, "created_at": "2026-11-02T10:30:00+00:00", "updated_at": "2026-11-02T10:30:00+00:00" } ], "meta": { "page": 1, "per_page": 50, "total": 1, "has_more": false, "totals": { "minutes": 90, "billable_minutes": 90, "count": 1 } }}How it fails
VALIDATION_FAILEDan unknown activity.
RESOURCE_NOT_FOUNDunknown project_id or work_item_id, or one outside the token's scope.
FORBIDDENthe holder's role on the project does not carry time-log:view-any, or the token is a client guest's.
TOKEN_MISSING_ABILITYtoken lacks time-log:view-any.
How is this guide?
Last updated on