Clockify MCP Server
One-line summary: This MCP server lets AI agents manage Clockify time tracking—retrieving config and user context, looking up workspaces/projects/tasks/tags, starting/stopping timers, creating entries, and summarizing time.
Retrieve effective
.clockify/config.ymlstandards and authenticated Clockify user info.List workspaces, projects, tags, and tasks.
Ensure (find or create) Clockify projects and tasks, e.g., mapping GitHub labels to tasks.
Start, stop, and check the currently running timer, with optional backdating, rounding, and overlap confirmation.
Create completed time entries with explicit start/end times (never rounds).
List recent time entries filtered by start/end date.
Summarize today's tracked time: total duration, entry count, and per-project totals.
Honor per-repo config for description templates, entry methods (
timer,manual,automated), rounding, overlap handling, and automation settings.
Enables time tracking integration with Clockify, including starting and stopping timers, managing projects and tasks, and summarizing time entries.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Clockify MCP Server start timer for project 'website' with description 'fixing navbar'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 | |
Granular Repo Integration | Initialize and configure on a per-repo basis | |
Easy Uninstallation | Skills and scripts rollback changes with guards to prevent overreach or harm | |
Good Hygiene | Plugin artifacts are gitignored by default | |
Three Time Entry Methods | Running timer, explicit start/stop times, automated using workflow triggers | |
IDE Layouts | Supports: single-window, multi-window, multi-root code workspace | |
Customize Time Entry | Configure nearest/up/down rounding, start/stop, increment, minimums, include seconds | |
Overlap guards | Handle overlapping time entries based on config | |
Init then Automate |
| |
Description templates | Tokenized strings ( | |
Timer Runaway Prevention | Ask when a running timer exceeds a ceiling so Clockify is ready for automation |
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 |
|
Automated | Agent follows Cursor rules from |
|
Getting started
Prerequisites
Need | Why |
Node 18+ (npm / npx) | Install script and the MCP |
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)
Create a Clockify API key (Preferences → Advanced → Manage API Keys).
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).Reload Cursor; confirm Customize → MCP shows clockify-agent-plugin enabled.
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)
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).Optional: run
/clockify-automatefor 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 | Pin workspace; write v3 base config + ignore defaults (no project ensure) |
| |
Repo | Full local teardown (keep plugin unless asked) |
| |
Mode | Agent mode on: forge + Cursor Plan/Debug + runaway, ensure, rules, hooks when runaway enabled |
| |
Mode | Pause automate: remove rule/hooks; keep forge/triggers/modes ( |
| |
Mode | Resume after disable: flip flags on, rewrite rule/hooks from preserved settings |
| |
Mode | Agent mode off: remove rule/hooks; reset |
| |
Timer | Start a running timer ( |
| |
Timer | Stop the running timer |
| |
Timer | Read-only running timer (or none) |
| |
Time | Completed range, no rounding ( |
| |
Review | Today / range totals |
|
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
Available Tools
14 toolsclockify_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
Scored across 14 tools
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.
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.
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.
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
Related MCP Connectors
Toggl 2.0 MCP server for tasks, projects, time entries, and workspace operations.
timesheet.io MCP server - manage timers, projects, tasks and reports
Track time in Clockify: time entries, projects, clients, tags and reports; start, stop and log time.
Billable-hours time tracking with rates and CSV export, running inside Claude or Cursor.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP Server to log time and view Jira statistics directly from Cursor IDE.ISC
- AlicenseBqualityDmaintenanceMCP server that enables AI agents to interact with Clockify time tracking via curated workflows and a generic API tool for managing workspaces, projects, tasks, and time entries.912 npmMIT
- AlicenseBqualityDmaintenanceMCP server for Clockify time tracking, enabling CRUD operations on workspaces, projects, tasks, clients, tags, users, and time entries.36MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that lets LLMs interact with your Clockify workspace for time-tracking automation and reporting, enabling natural language logging of time entries, querying entries, and generating reports.MIT