Skip to main content
Glama

Clockify MCP Server

An MCP (Model Context Protocol) server that provides tools for interacting with the Clockify time tracking API.

Installation

npm install -g @yikizi/clockify-mcp

Or use directly with npx:

npx @yikizi/clockify-mcp

Related MCP server: Clockify MCP Server

Features

  • Workspace Management: List workspaces, get current user, list workspace users

  • Project Management: List/create projects, list/create tasks

  • Time Tracking: Start/stop timers, log time entries, update/delete entries

  • Reporting: Generate summary and detailed reports with grouping and filtering

  • Tags & Clients: List and create tags, list clients

Setup

1. Get your Clockify API Key

  1. Go to Clockify User Settings

  2. Scroll to "API" section

  3. Click "Generate" to create an API key

2. Configure Claude Code

Add to your Claude Code MCP settings (~/.claude.json or via Claude Code settings):

Option A: CLI argument (recommended)

{
  "mcpServers": {
    "clockify": {
      "command": "npx",
      "args": ["@yikizi/clockify-mcp", "--api-key", "your-api-key-here"]
    }
  }
}

Option B: Environment variable

{
  "mcpServers": {
    "clockify": {
      "command": "npx",
      "args": ["@yikizi/clockify-mcp"],
      "env": {
        "CLOCKIFY_API_KEY": "your-api-key-here"
      }
    }
  }
}

Option C: .env file

Create a .env file in your working directory:

CLOCKIFY_API_KEY=your-api-key-here

Available Tools

These auto-detect your user and workspace:

  • start_timer - Start a timer (just provide description and optional project)

  • stop_current_timer - Stop whatever timer is running

  • get_running_timer - Check if a timer is running and see elapsed time

  • log_time - Log completed time with human-readable duration ("1h30m", "2h", "45m")

Workspace Tools

  • get_workspaces - List all workspaces

  • get_current_user - Get authenticated user info

  • get_workspace_users - List users in a workspace

Project Tools

  • get_projects - List projects (with archive filter)

  • create_project - Create a new project

  • get_project_tasks - List tasks in a project

  • create_task - Create a task

Time Entry Tools (Low-level)

  • get_time_entries - Get time entries for a user (with date/project filters)

  • create_time_entry - Create a time entry (use start_timer or log_time instead)

  • stop_timer - Stop timer for specific user (use stop_current_timer instead)

  • update_time_entry - Update an existing entry

  • delete_time_entry - Delete a time entry

Reporting Tools

  • get_summary_report - Aggregated report grouped by project/user/client

  • get_detailed_report - Detailed list of time entries with filters

Tag & Client Tools

  • get_tags - List all tags

  • create_tag - Create a new tag

  • get_clients - List all clients

Usage Examples

Once configured, you can ask Claude things like:

  • "Start a timer for working on the API project"

  • "Stop my timer"

  • "Log 2 hours for documentation work"

  • "Is my timer running?"

  • "Generate a summary report for last week"

  • "How much time did I log this month?"

  • "List all my projects"

Changelog

v1.2.2

  • Config: API key can now be passed via --api-key CLI argument

  • Config: API key can be read from .env file in current directory

  • Improvement: Better error message showing all config options

v1.2.1

  • Bugfix: get_running_timer now properly finds running timers (was only checking 1 entry)

  • Bugfix: stop_current_timer now correctly stops timers

  • Improvement: stop_current_timer accepts optional end time for backdating

v1.2.0

  • Human-readable durations in responses (1h 30m instead of PT1H30M)

  • Relative period filters for get_time_entries: today, yesterday, this_week, last_week, this_month, last_month

  • get_time_entries now defaults to current user/workspace (no IDs needed!)

  • Responses include total time across all entries

v1.1.0

  • Added convenience tools: start_timer, stop_current_timer, get_running_timer, log_time

  • Auto-detect user and workspace (no need to call get_current_user first)

  • Human-readable duration format ("1h30m") for log_time

  • Input validation to catch date typos early

  • Warns if timer is already running when starting a new one

v1.0.0

  • Initial release with core Clockify API support

License

MIT

Available Tools

21 tools
create_projectC

Create a new project. Auto-detects workspace.

Inputs: name (required), workspaceId, clientId, color, +1 more.

create_tagC

Create a new tag. Auto-detects workspace.

Inputs: name (required), workspaceId.

create_taskB

Create a task in a project. Use get_projects first to get project ID.

Inputs: projectId (required), name (required), workspaceId, assigneeIds.

create_time_entryA

Create time entry (low-level). Prefer start_timer or log_time instead.

Inputs: start (required), workspaceId, end, description, +3 more.

delete_time_entryC

Delete a time entry by ID. Auto-detects workspace.

Inputs: timeEntryId (required), workspaceId.

get_clientsC

List all clients. Auto-detects workspace.

Inputs: workspaceId.

get_current_userB

Get current user info including active workspace ID

Inputs: no named parameters.

get_detailed_reportC

Detailed report with individual entries. Auto-detects workspace.

Inputs: dateRangeStart (required), dateRangeEnd (required), workspaceId, userIds, +1 more.

get_projectsA

List projects. Call first to get project IDs. Auto-detects workspace.

Inputs: workspaceId, archived.

get_project_tasksB

List tasks for a project. Use get_projects first to get project ID.

Inputs: projectId (required), workspaceId.

get_running_timerB

Check if timer is running. Auto-detects workspace/user.

Inputs: workspaceId.

get_summary_reportB

Summary report grouped by project/user. Auto-detects workspace.

Inputs: dateRangeStart (required), dateRangeEnd (required), workspaceId, groupBy.

get_tagsB

List all tags. Auto-detects workspace.

Inputs: workspaceId.

get_time_entriesB

Get time entries. Supports period filter (today, this_week, last_month). Auto-detects workspace/user.

Inputs: workspaceId, userId, start, end, +2 more.

get_workspacesB

List all workspaces. Call first if you need workspace IDs.

Inputs: no named parameters.

get_workspace_usersA

List users in workspace. Auto-detects workspace if not specified.

Inputs: workspaceId.

log_timeC

Log completed time with duration like "1h30m". Auto-detects workspace.

Inputs: duration (required), description, projectId, workspaceId, +2 more.

start_timerB

Start a timer. Auto-detects workspace. Use get_projects for project IDs.

Inputs: description, projectId, workspaceId, billable.

stop_current_timerA

Stop running timer. Auto-detects workspace/user.

Inputs: workspaceId, end.

stop_timerA

Stop timer (low-level). Prefer stop_current_timer instead.

Inputs: workspaceId, userId.

update_time_entryC

Update a time entry by ID. Auto-detects workspace.

Inputs: timeEntryId (required), workspaceId, start, end, +3 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 21 tools

    Disambiguation4/5

    Most tools have distinct purposes, but there is some overlap between time entry tools: create_time_entry, log_time, and start_timer all handle time tracking, with descriptions indicating preferences (e.g., 'prefer start_timer or log_time instead'), which could cause confusion. Similarly, stop_current_timer and stop_timer are redundant. However, other tools like get_projects, create_task, and get_reports are clearly differentiated.

    Naming Consistency5/5

    Tool names follow a highly consistent verb_noun pattern throughout, using snake_case uniformly. Examples include create_project, get_projects, start_timer, and update_time_entry. This predictability makes it easy for agents to understand and navigate the toolset without confusion from mixed naming conventions.

    Tool Count3/5

    With 21 tools, the count is borderline high for a time-tracking server, leaning toward heavy. While it covers many aspects of Clockify's functionality, some tools like stop_timer and stop_current_timer could be consolidated to reduce redundancy. A more streamlined set of 15-18 tools might be more appropriate for the scope.

    Completeness5/5

    The toolset provides comprehensive coverage for time-tracking and project management in Clockify. It includes CRUD operations for projects, tasks, tags, and time entries, along with reporting (detailed and summary), user and workspace management, and timer controls. There are no obvious gaps; agents can perform full workflows from setup to reporting without dead ends.

    Related MCP Connectors

    Related MCP Servers