Skip to main content

๐Ÿ”Œ 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โ€‹

  1. Open chronos.it-pal.net/powerup/entries/publicApi-info.html.
  2. Click Authorize to Chronos API and approve the Trello prompt.
  3. 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

MethodPathWhat it does
POST/getWorklogsTime logs for boards you are on
GET/getEstimates?cardIds=a,bPer-member estimates for the given cards
POST/setEstimateCreate or update one member's estimate on a card
POST/removeEstimateDelete 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:

ToolPurpose
list_boardsBoards the key can use, with ids and names
list_board_membersMembers of a board (accountId, name, username)
find_cardSearch cards by name on your boards (cards that had time logged)
list_estimatesPer-member estimate rows for given cards
set_estimateCreate or update one member's estimate (seconds or hours)
remove_estimateDelete one member's estimate
list_worklogsTime 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.