GitScrum / Docs

Time Tracking

Timer and time entry management through MCP. Start and stop timers, create manual entries, and generate time reports for billing and productivity.

Open Source β€” GitScrum MCP Server is open source under the MIT license. Available on npm and GitHub. Model Context Protocol server for GitScrum β€” Claude, GitHub Copilot, Cursor, and any MCP-compatible client full operational access to your project management stack.

The time tool provides 9 actions for real-time timer management, time entry logging, and productivity analytics. Whether you're tracking billable hours for client work, measuring team productivity, or generating time reports for invoicing, the time tracking tool gives your AI assistant full control over GitScrum's time tracking system.

The tool supports two primary workflows: real-time timers (start/stop while you work) and time logs (view recorded entries). For analytics, the tool provides five reporting actions that cover individual productivity, team performance, and detailed timeline breakdowns.


Actions Overview

ActionPurposeRequired Parameters
activeCheck if a timer is currently runningcompany_slug (auto-resolved)
startStart a timer on a specific tasktask_uuid
stopStop a running timertimetrackingid
logsView time entries for a projectprojectslug, companyslug
analyticsGet time tracking analytics and summariescompany_slug
teamView team-wide time tracking datacompany_slug
reportsGenerate detailed time reports for billingcompany_slug
productivityGet productivity metrics and trendscompany_slug
timelineView chronological time entry timelinecompany_slug

Timer Workflow

The core timer workflow follows a simple sequence: check for active timers β†’ start a new timer β†’ work β†’ stop the timer. The MCP server enforces that only one timer can run at a time per user.

Checking Active Timers

Before starting a new timer, the AI assistant should check if a timer is already running. The active action returns the current timer details if one exists, or { active: false } if no timer is running.

The company_slug parameter is auto-resolved if omitted β€” the server uses your first accessible workspace.

You:  "What timers are currently running?"
AI:   Calls time action=active β†’ returns current timer details or "no active timer"

You:  "Am I tracking time on anything?"
AI:   Calls time action=active β†’ reports whether a timer is running and on which task

Starting a Timer

The start action begins a timer on a specific task. You need the task's UUID, which the AI assistant can obtain from the task tool (using actions like my, today, filter, or by_code).

ParameterTypeDescription
task_uuidstringThe UUID of the task to track time on (required)
descriptionstringOptional note describing what you're working on

The MCP server returns the timer object with a timetrackingid that you need for the stop action. The AI assistant retains this ID in the conversation context for when you're ready to stop.

You:  "Start a timer on task GS-123"
AI:   Looks up task by code β†’ calls time action=start with task_uuid
      β†’ "Timer started on 'Fix login validation'"

You:  "Track time on the API migration task"
AI:   Finds the task β†’ calls time action=start
      β†’ "Timer started on 'API v3 migration'"

You:  "Start tracking time on my current task"
AI:   Checks task action=today β†’ picks the most relevant task β†’ starts timer

Stopping a Timer

The stop action ends the currently running timer. It requires the timetrackingid, which the AI assistant obtains from the active action response.

ParameterTypeDescription
timetrackingidstringActive timer ID (from active response)
You:  "Stop my running timer"
AI:   Calls time action=active β†’ gets time_tracking_id
      β†’ calls time action=stop β†’ "Timer stopped. 1h 23m recorded on 'Fix login validation'"

You:  "I'm done working for now"
AI:   Checks for active timer β†’ stops it if running

Timer Workflow Example

Here's a complete timer session as a natural conversation:

You:  "What am I tracking time on?"
AI:   Calls time action=active β†’ "No active timer"

You:  "Start a timer on the login fix task"
AI:   Finds task β†’ calls time action=start β†’ "Timer started on 'Fix login validation'"

[... you work for 2 hours ...]

You:  "Stop the timer"
AI:   Calls time action=active β†’ gets ID β†’ calls time action=stop
      β†’ "Timer stopped. 2h 04m recorded"

Time Logs

The logs action returns recorded time entries for a specific project. Each entry includes the task, user, duration, date, and optional description. This is the audit trail of all time tracked within the project.

Parameters

ParameterTypeDescription
project_slugstringProject identifier (required)
company_slugstringWorkspace identifier (auto-resolved if omitted)
You:  "Show time logs for the Backend project"
AI:   Calls time action=logs β†’ returns list of time entries with task, user, and duration

You:  "How much time was logged on the Backend project this week?"
AI:   Calls time action=logs β†’ AI sums entries from current week

You:  "Who logged the most time on the Mobile App project?"
AI:   Calls time action=logs β†’ AI groups by user and sums durations

Analytics and Reports

The time tool provides five analytics actions that aggregate time data for different purposes. All share a common parameter structure.

Common Parameters

ParameterTypeDescription
company_slugstringWorkspace identifier (required)
project_slugstringOptionally scope to a specific project
periodstringTime window for the report

Available Periods

PeriodDescription
todayCurrent day
yesterdayPrevious day
last-7-daysPast 7 days
last-14-daysPast 14 days
last-15-daysPast 15 days
this-monthCurrent calendar month
last-monthPrevious calendar month
last-30-daysPast 30 days

Analytics

The analytics action returns a summary of time tracking data β€” total hours, average daily hours, distribution by project, and trend data. This is the overview dashboard for time tracking.

You:  "Show my time tracking analytics for this month"
AI:   Calls time action=analytics with period="this-month"
      β†’ returns total hours, daily averages, project breakdown

You:  "How much time did I track last week?"
AI:   Calls time action=analytics with period="last-7-days"
      β†’ returns total hours and daily distribution

Team

The team action returns time tracking data aggregated by team member. This shows who is tracking time, how much each person tracked, and on which projects. Managers use this for workload assessment and capacity planning.

You:  "Show team time tracking for this week"
AI:   Calls time action=team with period="last-7-days"
      β†’ returns per-member hours, project breakdown

You:  "Who tracked the most hours this month?"
AI:   Calls time action=team with period="this-month"
      β†’ AI identifies the top contributor

Reports

The reports action generates detailed time reports suitable for billing and invoicing. It supports different report types and optional hourly rate calculations.

ParameterTypeDescription
report_typestringReport format (default: summary)
hourly_ratenumberHourly rate for cost calculations (e.g. 150 for $150/hour)
You:  "Generate a time report for the Backend project this month"
AI:   Calls time action=reports with project_slug, period="this-month"
      β†’ returns detailed time report with task-level breakdown

You:  "Show me the billable hours for Acme Corp at $150/hour"
AI:   Calls time action=reports with hourly_rate=150
      β†’ returns report with calculated costs

You:  "Create an invoice-ready time report for last month"
AI:   Calls time action=reports with period="last-month"
      β†’ returns detailed report with dates, tasks, durations, and totals

Productivity

The productivity action measures time tracking patterns and efficiency metrics β€” focus time, context switching frequency, productive hours by time of day, and consistency scores. This helps individual contributors and managers understand work patterns.

You:  "Show my productivity metrics for this week"
AI:   Calls time action=productivity with period="last-7-days"
      β†’ returns focus time, productive hours, consistency data

You:  "How productive was the team last month?"
AI:   Calls time action=productivity with period="last-month"
      β†’ returns team-wide productivity trends

Timeline

The timeline action returns a chronological view of time entries β€” a day-by-day, hour-by-hour breakdown of what was tracked and when. This is useful for reviewing how time was spent across a day or week.

You:  "Show me my time timeline for today"
AI:   Calls time action=timeline with period="today"
      β†’ returns chronological list of tracked time blocks

You:  "What did I work on yesterday?"
AI:   Calls time action=timeline with period="yesterday"
      β†’ returns ordered time entries with task details

Billing and Invoicing Workflow

For teams tracking billable hours, the time tool integrates with GitScrum's invoicing capabilities. Here's a typical billing workflow:

1. Track time throughout the period

Team members use timers or manual entries to track time on client tasks.

You:  "Start a timer on the Acme Corp API integration task"
AI:   Starts timer β†’ you work β†’ you stop when done

2. Review time at period end

Check the accumulated time before generating invoices.

You:  "Show me all time tracked for the Backend project this month"
AI:   Calls time action=logs β†’ returns detailed entry list

You:  "What's the total billable hours for this month?"
AI:   Calls time action=reports with period="this-month" β†’ returns totals

3. Generate billing report

Create a report with hourly rates for invoicing.

You:  "Generate a billing report at $150/hour for last month"
AI:   Calls time action=reports with hourly_rate=150, period="last-month"
      β†’ returns report with hours Γ— rate calculations

4. Analyze team capacity

Review team utilization for future planning.

You:  "How is the team's time distributed across projects?"
AI:   Calls time action=team with period="this-month"
      β†’ returns per-member, per-project breakdown

Task Integration

Time tracking is tightly coupled with tasks. Every timer and manual entry is linked to a specific task. This means your AI assistant can:

  • Start timers from task context. When reviewing your task list, tell the AI assistant which task to track time on. It resolves the task UUID automatically.
  • View time data from task details. When you get task details with task action=get, the response includes time tracking data β€” total time logged, active timers, and time entries.
  • Correlate time with sprint progress. Combine sprint action=stats with time analytics to understand how much effort each sprint consumed.
You:  "How much time have we spent on Sprint 14?"
AI:   Gets sprint tasks β†’ cross-references with time logs β†’ reports total hours

You:  "Start tracking the next task on my list"
AI:   Calls task action=today β†’ picks the highest-priority task β†’ starts timer

Period-Based Analysis

All analytics actions support the period parameter for consistent time-window filtering. When omitted, most actions default to the current scope (all time or current period, depending on the endpoint).

For recurring reporting, you can establish a pattern with your AI assistant:

You:  "Every Monday, show me last week's time report"
AI:   Calls time action=reports with period="last-7-days" β†’ weekly summary

You:  "End-of-month time review"
AI:   Calls time action=analytics + team + productivity with period="this-month"
      β†’ comprehensive monthly analysis

Context Auto-Resolution

The time tool supports automatic context resolution for companyslug. If you don't specify a workspace, the MCP server uses your first accessible workspace. For projectslug, the server can auto-resolve from the conversation context if established earlier.

The start action only requires task_uuid β€” the server determines the workspace and project from the task itself. This means you can go from task browsing to time tracking in a single step without re-specifying any context.


Next Steps

  • Tasks: Manage the tasks you track time against.
  • Sprints: Plan sprints and correlate time with sprint progress.
  • Projects: Configure projects and review team members.
  • Quick Start: Set up the MCP server if you haven't already.