MCP: running-timer primitives
save_tag_activities requires a closed interval. Agent workflows
that need to "start working on X now, stop later — possibly from a
different session or device" have no place to hold the in-flight
state. Workarounds (conversation-history search, sidecar state
stores, 1-second placeholder tags) are all brittle and duplicate
logic ManicTime should own.
Proposed minimal addition to the MCP surface — no change to the
core tag data model, server-side state only:
- startactivetag(tagCombination, notes?, startTime?) Record a running timer. startTime defaults to now.
- getactivetag() Return { tagCombination, notes, startTime } or null.
- stopactivetag(endTime?, tagMode?) -> TagActivity Close the timer via existing savetagactivities logic. endTime defaults to now. Clears active state.
Single active tag per user is sufficient for v1. This lets AI
agents use ManicTime as the source of truth for "currently working
on" state — the same role the desktop stopwatch plays for humans —
instead of inventing parallel state stores.