Teetrack

Teetrack is a time tracking and billing tool built for one person: freelancers, consultants, and solo agency owners who bill by the hour.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

  • Start Timer: Start a new timer (creates a track with no end time). Multiple timers can run concurrently. Returns the new running track.
  • Stop Timer: Stop a running timer by setting its end time to now. If no id is given, stops the most recently started timer. Returns the stopped track.
  • Get Running Timer: Get all currently running timers (tracks with no end time). Returns an array (empty if none active).

What data it sees

Do you need an account

No: the server works without sign-in

Teetrack is a time tracking and billing tool built for one person: freelancers, consultants, and solo agency owners who bill by the hour. Track time with one click, tag it to clients and projects, set budgets per retainer, and export clean PDF or CSV timesheets at billing time.

What makes it different:

AI-native: a real MCP server (~35 tools) lets Claude, ChatGPT, and Copilot start timers, log entries, and answer "how many billable hours this week?" in chat. Calendar capture with review: import Google Calendar / Outlook / iCal events as draft time entries and confirm them in bulk — automation without wrong data. Privacy-first: EU-hosted on Hetzner, GDPR-first, no screenshots, no activity monitoring, no keystroke logging. Honest pricing: Free (€0, 5 projects), Business (€4/mo flat, 20 projects, billing + budgets + exports), Pro (€19/mo, unlimited). Every plan is single-user — one seat, one flat price.

How to connect

How to connect Teetrack to Claude

The server address to paste into Claude settings:

https://teetrack--snafu.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect Teetrack to ChatGPT

The server address to paste into ChatGPT settings:

https://teetrack--snafu.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect Teetrack to Cursor

The server address to paste into Cursor settings:

https://teetrack--snafu.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (35)

Raw names from tools/list. Only developers need these.

start_timerStart a new timer (creates a track with no end time). Multiple timers can run concurrently. Returns the new running track.
stop_timerStop a running timer by setting its end time to now. If no id is given, stops the most recently started timer. Returns the stopped track.
get_running_timerGet all currently running timers (tracks with no end time). Returns an array (empty if none active).
list_tracksList time tracking entries with optional filters and pagination. Returns tracks sorted by start time (newest first). Without done=true, unconfirmed calendar drafts (draft=true) are included; after/before bounds are exclusive.
get_trackGet a single time tracking entry by its ID.
log_timeLog a completed time entry with both start and end times.
update_trackUpdate an existing time tracking entry. Only provided fields are changed.
delete_trackDelete a time tracking entry by ID.
list_projectsList all projects with optional pagination.
get_projectGet a single project by its ID, including billing and budget configuration.
create_projectCreate a new project.
update_projectUpdate an existing project. Only provided fields are changed.
delete_projectDelete a project by ID.
list_tagsList all tags with their track counts and total tracked seconds.
create_tagCreate a new tag.
update_tagUpdate an existing tag. Only provided fields are changed.
delete_tagDelete a tag by ID.
list_clientsList all clients.
get_clientGet a single client by ID.
create_clientCreate a new client.
update_clientUpdate an existing client. Only provided fields are changed.
delete_clientDelete a client by ID.
get_time_summaryGet total tracked time in seconds over rolling windows counted back from now: total (all time), year (last 365 days), month (last 30 days), and day (last 24 hours). These are not calendar periods. Running timers count up to now; on the Free plan all windows are limited to the last 90 days.
get_project_summaryGet top projects with hours, billable amounts, and day counts. Useful for understanding where time is being spent.
get_budget_statusGet budget status for all projects with budgets configured. Shows tracked vs. budgeted hours/amounts and whether over budget.
get_user_settingsGet the current user's display and rounding settings.
update_user_settingsUpdate user settings. Only provided fields are changed.
get_subscription_usageGet current subscription tier info, feature list, limits, and usage counts.
list_calendar_connectionsList all connected calendar accounts (Google, Outlook, iCal). Returns provider, account email, sync status, and auto-import settings.
list_calendar_eventsList calendar events within a date range from all enabled calendar connections. Excludes all-day events and cancelled events.
get_calendar_suggestionsList all pending draft time entries imported from calendar events. Returns drafts with their current project assignment for review.
confirm_draft_trackConfirm a draft time entry imported from a calendar event. Sets draft=false, making it count toward summaries. Use update_track first to change description or project.
bulk_confirm_draft_tracksConfirm multiple draft time entries at once. Returns the count of confirmed entries.
dismiss_draft_trackDismiss a draft time entry imported from a calendar event. The event will not be re-imported in future syncs.
trigger_calendar_syncTrigger a calendar sync. If connection_id is provided, syncs that specific connection. Otherwise syncs all enabled connections. Rate limited: once per connection per 5 minutes.