Skip to main content
Glama


Unofficial agent plugin for Clockify: MCP tools plus Agent Skills — start/stop timers, enter time, and summarize sessions in Cursor and other MCP hosts.

Not affiliated with, endorsed by, or sponsored by Clockify or Cake.com. Third-party connector only.


Features

Feature

Description

Documentation

Easy Installation

Single user-scoped MCP server utilizing a single Clockify API key

Config

Granular Repo Integration

Initialize and configure on a per-repo basis

Config

Easy Uninstallation

Skills and scripts rollback changes with guards to prevent overreach or harm

Use

Good Hygiene

Plugin artifacts are gitignored by default

Config: git hygiene

Three Time Entry Methods

Running timer, explicit start/stop times, automated using workflow triggers

schema

IDE Layouts

Supports: single-window, multi-window, multi-root code workspace

Config: which repo

Customize Time Entry

Configure nearest/up/down rounding, start/stop, increment, minimums, include seconds

schema: rounding

Overlap guards

Handle overlapping time entries based on config

schema: overlap

Init then Automate

/clockify-init pins workspace; /clockify-automate enables forge + Cursor Plan/Debug

Config: Init vs Automate

Description templates

Tokenized strings ({issue_number}, {label}, …) or agent prompt

schema: placeholders

Timer Runaway Prevention

Ask when a running timer exceeds a ceiling so Clockify is ready for automation

schema: runaway


Related MCP server: @lewinnovation/clockify-mcp-server

How it works

Two modes. Both use the same Clockify project for a given repo config (when automate has ensured one). Clockify still allows only one running timer. Product ladder: Config: Init vs Automate.

Mode

How time gets in

Skills

Manual

You (or the agent, when you ask) start/stop a timer or log a completed range

/clockify-start-timer, clockify-stop-timer, /clockify-enter-time

Automated

Agent follows Cursor rules from entry.automated (forge issue/PR triggers + optional Plan/Debug)

/clockify-automate on; /clockify-automate-disable pause (keep settings); /clockify-unautomate full rollback


Getting started

Prerequisites

Need

Why

Node 18+ (npm / npx)

Install script and the MCP npx command

Cursor (or AI Agent/IDE)

Run skills and MCP

Clockify API key

MCP sevrver connection to Clockify

If Cursor cannot find node / npx, see troubleshoot. MCP process logs: logging.

Additional Prerequisites

Install the plugin (once per machine)

  1. Create a Clockify API key (Preferences → Advanced → Manage API Keys).

  2. Run npx -y -p @dustinestes/clockify-agent-plugin@latest clockify-install-cursor — installs skills + global MCP (docs/install-cursor.md). Optional: Directory MCP button (MCP only; caveats).

  3. Reload Cursor; confirm Customize → MCP shows clockify-agent-plugin enabled.

  4. Optional: pre-allow Clockify MCP tools so agents do not stall on an Allow / Always allow prompt mid-run.

Credentials, allowlists, and non-Cursor hosts: docs/use.md.

Add Clockify to a repo (each repo)

  1. In that repo, run /clockify-init — choose a Clockify workspace. Writes v3 .clockify/config.yml (prompt descriptions, timer starts without requiring a task; automation off). After this you can enter time with skills (start/stop timer, enter-time, summarize).

  2. Optional: run /clockify-automate for forge (GitHub) + Cursor Plan/Debug + runaway, project/task ensure, Cursor rules, and runaway hooks when enabled.

To undo a repo without uninstalling the plugin: docs/use.md.


Skills

You talk to the agent in plain language (or run a /skill). The agent calls MCP tools; you do not.

Setup skills (init, uninit, automate, automate-disable, automate-enable, unautomate) are slash-only so they do not fire by accident.

Group

Skill

Purpose

Example

Repo

clockify-init

Pin workspace; write v3 base config + ignore defaults (no project ensure)

/clockify-init

Repo

clockify-uninit

Full local teardown (keep plugin unless asked)

/clockify-uninit

Mode

clockify-automate

Agent mode on: forge + Cursor Plan/Debug + runaway, ensure, rules, hooks when runaway enabled

/clockify-automate

Mode

clockify-automate-disable

Pause automate: remove rule/hooks; keep forge/triggers/modes (enabled: false)

/clockify-automate-disable

Mode

clockify-automate-enable

Resume after disable: flip flags on, rewrite rule/hooks from preserved settings

/clockify-automate-enable

Mode

clockify-unautomate

Agent mode off: remove rule/hooks; reset entry.automated to example defaults

/clockify-unautomate

Timer

clockify-start-timer

Start a running timer (entry_method: timer)

/clockify-start-timer or “start a timer on this issue”

Timer

clockify-stop-timer

Stop the running timer

/clockify-stop-timer or “stop my Clockify timer”

Timer

clockify-status

Read-only running timer (or none)

/clockify-status or “is a timer running?”

Time

clockify-enter-time

Completed range, no rounding (entry_method: manual)

/clockify-enter-time or “log 2–3pm on this issue”

Review

clockify-summarize

Today / range totals

/clockify-summarize or “how much time today?”


Developing

Working on this repo: docs/develop.md. Shipping a release or Directory listing: docs/publish.md. How to contribute: CONTRIBUTING.md.


Clockify Agent Plugin

MIT License

Available Tools

14 tools
clockify_create_time_entryCreate time entryA

Creates a completed time entry with explicit start and end (ISO-8601). Never rounds. entry_method selects manual vs automated description/overlap. When overlap.on_conflict is prompt, retry with confirm_overlap: true to stack intervals. Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: end (required), start (required), tag_ids, task_id, +10 more.

clockify_ensure_projectEnsure Clockify projectA

Finds a project by name or creates it. Defaults to the repo name from .clockify/config.yml / folder when name omitted. Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: name, config_root, workspace_id.

clockify_ensure_taskEnsure Clockify taskA

Finds a task by name under a project or creates it (e.g. sync a GitHub label). Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: name (required), project_id (required), config_root, workspace_id.

clockify_get_configGet project Clockify configA

Returns the effective .clockify/config.yml standards (per-method description, task, rounding, overlap, automation). Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: config_root.

clockify_get_running_timerGet running timerA

Returns the currently running timer for the user, if any. Includes inactivity hint from .clockify/config.yml when configured. Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: config_root, workspace_id.

clockify_get_userGet Clockify userA

Returns the authenticated Clockify user, including active and default workspace IDs. Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: config_root.

clockify_list_projectsList Clockify projectsA

Lists projects in a workspace. Use to map a git repo or task to a Clockify project. Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: name, archived, config_root, workspace_id.

clockify_list_tagsList Clockify tagsA

Lists tags available in a workspace. Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: config_root, workspace_id.

clockify_list_tasksList Clockify tasksA

Lists tasks for a project (often mapped 1:1 to GitHub labels). Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: project_id (required), config_root, workspace_id.

clockify_list_time_entriesList time entriesB

Lists recent time entries for the authenticated user. Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: end, start, page_size, config_root, +1 more.

clockify_list_workspacesList Clockify workspacesA

Lists workspaces available to the authenticated user. Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: config_root.

clockify_start_timerStart timerA

Starts a new running timer. Optional start (ISO-8601) backdates the timer; omit for now. entry_method selects timer vs automated config (include_seconds, start rounding, overlap). Prefer stopping any existing timer first. When description.from is template, pass issue_number/issue_title if description is omitted. Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: start, tag_ids, task_id, billable, +9 more.

clockify_stop_timerStop timerA

Stops the currently running timer. Honors entry_method rounding (end only), include_seconds, and overlap.on_conflict. Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: config_root, entry_method, workspace_id, apply_rounding, +1 more.

clockify_today_summaryToday summaryA

Summarizes today's tracked time: total duration, entry count, and per-project totals. Pass config_root as that repo's git toplevel when this MCP is user-scoped.

Inputs: config_root, workspace_id.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 14 tools

    Disambiguation5/5

    Each tool maps to a clearly distinct resource and action: config, user, workspaces, projects, tags, tasks, running timer, time entries, and daily summary. Start_timer and create_time_entry are the closest pair, but their descriptions make the running-vs-completed distinction unambiguous.

    Naming Consistency4/5

    Almost every tool follows the clockify_verb_noun pattern with get, list, ensure, start, stop, and create. clockify_today_summary breaks the verb-first convention, and would be more consistent as get_today_summary or summarize_today.

    Tool Count5/5

    14 tools is within the ideal range and each one earns its place for a time-tracking MCP server. The set covers configuration, lookup, project/task setup, timer control, and time-entry analysis without obvious redundancy.

    Completeness4/5

    The server covers the core time-tracking workflow: project/task resolution, timer start/stop, creating completed entries, listing entries, and summarizing the day. It lacks update/delete operations for time entries or projects/tasks, which is a workable gap for most tracking scenarios but not full CRUD coverage.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers