"How much time did I spend in Zoom this week?"

Answering that today means opening the tracker, hunting for the date picker, filtering, squinting at the app list, doing mental math. It's a 90-second task that comes up maybe twice a month — which is why most people never do it, and the data sits there unused.

Timex 1.3.0 introduced a different answer: a local MCP server. Turn it on in Settings → Integrations, connect your AI client, and ask the question in plain language. The AI queries your time data and answers — and the data never leaves your Mac.

Short answer: MCP (Model Context Protocol) lets AI assistants read and act on local tools and data. Timex's MCP server exposes 22 tools over your tracking record — summaries, activity search, rules, entries, Energy, recovery, CSV export, focus sessions and breaks — so Claude, Cursor, or VS Code can answer questions about your time and manage your setup. It's off by default, binds to localhost, and requires a bearer token.

What is MCP? The one-paragraph version

Model Context Protocol is the standard that lets AI assistants use tools and data instead of just chatting about them. Instead of copy-pasting your week into a chat window, you connect the client once, and it can call functions — read a summary, search activity, add a rule — the same way it already reads your files or runs your terminal. Anthropic published the spec in late 2024, and by now it's supported across the major AI clients: Claude Desktop and Claude Code, Cursor, Zed, VS Code, Codex CLI, OpenCode, Octomind. If you use any of these, you already have the client side.

What Timex's server actually exposes

Twenty-two tools, grouped by what they do:

Read your record: get_summary (tracked time, focus, and Energy for a range), list_activities (detailed rows, filterable by app or domain), search_activities (search titles, URLs, app names), get_current_activity (what's live right now).

Manage your setup: list_categories, list_rules, add_rule / remove_rule, create_category / update_category — the same rule engine the UI uses, scriptable.

Act on your day: add_manual_entry (log the meeting you just had), log_recovery (label an away slot as Walk, Workout, Nap, or Rest), export_csv (summary or detailed, written under your home folder), pause_tracking (for a set number of minutes, if you like) / resume_tracking, start_break, list_backups. Since Timex 1.7.0 also start_focus_session / end_focus_session, snooze_break, pause_break_reminders, and get_break_status.

The interesting part isn't any single tool — it's the compound queries a language model can make across them.

Five prompts that are better than a dashboard

  • "How much time did Zoom take this week, and how does that compare to last week?" — get_summary twice, a comparison, and a sentence you can act on. The dashboard version of this takes longer than the answer is worth.
  • "What did I do Tuesday between 2 and 4 PM?" — list_activities over a window. The honest answer to "where did that afternoon go," with window titles as receipts.
  • "Make github.com count as focus from now on." — add_rule, done, no settings safari. This is the one that changes how you use rules: you ask for them in the moment you notice the need, which is the only moment rule-writing ever actually happens.
  • "I just finished a client call from 10:05 to 10:30 — log it." — add_manual_entry. The away-gap you'd have forgotten by lunch, logged at 10:31 while you remember it.
  • "Export this week as a summary CSV for my invoice." — export_csv. Invoice day shrinks from an hour of archaeology to one sentence.

What 1.5.0 added: Energy and recovery

Timex 1.5.0 (Sep 10) added Energy — a 0–100 estimate of how much demanding work is left today — and the MCP server exposes it. get_summary now returns Energy score, spent time, capacity, stretch fatigue, calls, passive time, recovery, and debt minutes alongside the tracked time it always returned. There's also a new log_recovery tool for labeling an away slot as Walk, Workout, Nap, or Rest.

Two more prompts that only work because of 1.5.0:

  • "How much demanding work do I have left today?" — get_summary for today, read the Energy score and spent time. It's a budget, not a health measurement — the same caveat the app shows.
  • "I was away 25 minutes — that was a walk." — log_recovery. The away gap you'd otherwise leave unlabeled now counts as a movement break, and Energy updates.

The security model, stated plainly

I'll write this the way I'd want it written to me.

The server is off by default. You turn it on in Settings → Integrations, where you also pick the bind address and port and copy or regenerate the bearer token. Keep the default 127.0.0.1:41741 bind and the server is reachable only from your Mac — not your network, not the internet.

The boundary is real and I won't blur it: a connected client can read everything Timex records — window titles, URLs, app names — and can change your rules, categories, and entries. Treat the token like a password. If you bind beyond localhost, you've exposed that access to your network.

Timex supports MCP protocol revisions 2026-07-28, 2025-11-25, 2025-06-18, and 2025-03-26, and Settings can copy each client's configuration with your current host, port, token, and app path — one click to add the MCP server to Claude Desktop, copy-paste config for Claude Code, Cursor, Zed, VS Code, Codex CLI, OpenCode, or Octomind.

Why local-first and MCP fit together

There's a philosophical reason this lives in a local-first app and not a cloud one. A cloud tracker would do "ask an AI about your week" by shipping your week to a server — theirs, or the model's. The MCP way keeps the data on your machine and lets the model come to it. Your time record stays where it was recorded; the intelligence is a visitor, not a tenant.

That's also the honest limitation: the AI can only answer from what Timex recorded. It sees your Mac, not your phone or your meetings away from the desk — though manual entries fill those gaps if you log them.

When it doesn't connect

The server only runs while Timex runs — quit the app and the endpoint goes away. If a client gets a 401, the token is wrong or stale; regenerate it in Settings → Integrations and paste the new one. Clients that only speak stdio need the timex-mcp bridge that ships with the app; Settings copies the right command and path for you. The HTTP endpoint is stateless — no session to lose — and rejects requests whose Origin isn't localhost, so a browser tab can't reach it even if it tried.

The dashboard was the 2010s answer to "what did I do with my time." The 2026 answer is a conversation with a model that can actually read the record. If you want to try it: download Timex, Settings → Integrations, flip the switch, and ask your week a question. Per-client config lives in the Timex MCP setup guide.

— DK