๐ API & MCP
Chronos has a small public API for reading time logs and per-member estimates, and for setting estimates from your own scripts, spreadsheets, or an AI assistant. The same data is also available as an MCP server (Model Context Protocol), so tools like Claude Code or Cursor can read and write it directly.
Everything below is scoped to your Trello account: the key can only see boards you are a member of, and estimates it writes carry your account as the author.
๐ Getting a keyโ
- Open chronos.it-pal.net/powerup/entries/publicApi-info.html.
- Click Authorize to Chronos API and approve the Trello prompt.
- Copy the Chronos API key shown on the page.
The key is valid for one year. Send it on every request as a header:
Authorization: Bearer <key>
Chronos caches your board list for an hour. If you get a 403 on a board you were only just added to, generate a new key on the same page.
๐ REST endpointsโ
Base URL: https://api.chronos.it-pal.net/api/trello/public
| Method | Path | What it does |
|---|---|---|
POST | /getWorklogs | Time logs for boards you are on |
GET | /getEstimates?cardIds=a,b | Per-member estimates for the given cards |
POST | /setEstimate | Create or update one member's estimate on a card |
POST | /removeEstimate | Delete one member's estimate on a card |
Times are stored in seconds (hours = seconds / 3600). Member ids (accountId) are
Trello member ids; use the Trello API or the MCP list_board_members tool to map them
to names.
Time logsโ
curl -X POST https://api.chronos.it-pal.net/api/trello/public/getWorklogs \
-H "Authorization: Bearer <key>" -H "Content-Type: application/json" \
-d '{"idBoards":["<boardId>"],"startedFrom":"2026-09-01T00:00:00Z","startedTo":"2026-09-30T23:59:59Z","limit":500,"offset":0}'
idBoards is required. Optional filters: cardIds, accountIds, worklogIds,
createdFrom, startedFrom, startedTo, limit, offset. The response is
{"worklogs": [...], "total": N}; each entry has accountId, cardId, boardId,
seconds, startedAt, comment and billable.
Estimatesโ
# read: one row per member per card
curl "https://api.chronos.it-pal.net/api/trello/public/getEstimates?cardIds=<cardId>" \
-H "Authorization: Bearer <key>"
# write: 1.5 hours for a member on a card (creates or updates)
curl -X POST https://api.chronos.it-pal.net/api/trello/public/setEstimate \
-H "Authorization: Bearer <key>" -H "Content-Type: application/json" \
-d '{"cardId":"<cardId>","accountId":"<memberId>","hours":1.5,"comment":"backend"}'
# remove
curl -X POST https://api.chronos.it-pal.net/api/trello/public/removeEstimate \
-H "Authorization: Bearer <key>" -H "Content-Type: application/json" \
-d '{"cardId":"<cardId>","accountId":"<memberId>"}'
setEstimate takes seconds or hours. accountId defaults to you and must be a member
of the card's board. boardId is optional (looked up from the card when omitted). It
answers 201 when the estimate was created and 200 when an existing one was updated,
with {"estimate": {...}, "created": true|false}. Writes need an active Chronos seat in
the board's workspace, exactly like the Power-Up: a 403 with isLicenseExpired or
isUserActivate tells you which.
๐ค MCP serverโ
URL: https://api.chronos.it-pal.net/api/trello/public/mcp (streamable HTTP). Authenticate
with the same key as a static Authorization: Bearer <key> header; there is no OAuth
flow yet, so use a client that can send headers.
Claude Code:
claude mcp add --transport http chronos https://api.chronos.it-pal.net/api/trello/public/mcp \
--header "Authorization: Bearer <key>"
Tools:
| Tool | Purpose |
|---|---|
list_boards | Boards the key can use, with ids and names |
list_board_members | Members of a board (accountId, name, username) |
find_card | Search cards by name on your boards (cards that had time logged) |
list_estimates | Per-member estimate rows for given cards |
set_estimate | Create or update one member's estimate (seconds or hours) |
remove_estimate | Delete one member's estimate |
list_worklogs | Time logs for boards, with card/member/date filters |
A typical session: list_boards โ list_board_members โ set_estimate for each
member and card, then list_worklogs for the period to reconcile against.