Clockify MCP Server
Provides tools for interacting with the Clockify time tracking API, enabling workspace and project management, time entry tracking with start/stop timers, detailed and summary reporting with filtering and grouping, and management of tags, tasks, and clients.
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 a timer for working on the API documentation"
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.
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-mcpOr use directly with npx:
npx @yikizi/clockify-mcpRelated 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
Go to Clockify User Settings
Scroll to "API" section
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-hereAvailable Tools
Convenience Tools (Recommended)
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 runningget_running_timer- Check if a timer is running and see elapsed timelog_time- Log completed time with human-readable duration ("1h30m", "2h", "45m")
Workspace Tools
get_workspaces- List all workspacesget_current_user- Get authenticated user infoget_workspace_users- List users in a workspace
Project Tools
get_projects- List projects (with archive filter)create_project- Create a new projectget_project_tasks- List tasks in a projectcreate_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 (usestart_timerorlog_timeinstead)stop_timer- Stop timer for specific user (usestop_current_timerinstead)update_time_entry- Update an existing entrydelete_time_entry- Delete a time entry
Reporting Tools
get_summary_report- Aggregated report grouped by project/user/clientget_detailed_report- Detailed list of time entries with filters
Tag & Client Tools
get_tags- List all tagscreate_tag- Create a new tagget_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-keyCLI argumentConfig: API key can be read from
.envfile in current directoryImprovement: Better error message showing all config options
v1.2.1
Bugfix:
get_running_timernow properly finds running timers (was only checking 1 entry)Bugfix:
stop_current_timernow correctly stops timersImprovement:
stop_current_timeraccepts optionalendtime for backdating
v1.2.0
Human-readable durations in responses (
1h 30minstead ofPT1H30M)Relative period filters for
get_time_entries:today,yesterday,this_week,last_week,this_month,last_monthget_time_entriesnow 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_timeAuto-detect user and workspace (no need to call
get_current_userfirst)Human-readable duration format ("1h30m") for
log_timeInput 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 toolscreate_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
Scored across 21 tools
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.
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.
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.
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
Track time in Clockify: time entries, projects, clients, tags and reports; start, stop and log time.
Connects AI assistants to TrackingTime for querying time entries, projects, tasks, customers, and team data using natural language.
Read your tracked time and projects, pause tracking or add a note, from Claude or ChatGPT.
Track time on usetimebook.com - start/stop timers, log entries, list projects/clients.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceIntegrates with Clockify to manage time entries through natural language prompts, allowing users to register and track their work time directly via LLM conversations.27MIT
- AlicenseNot gradedqualityDmaintenanceIntegrates with Clockify time tracking API to retrieve user information, manage projects, and log time entries with flexible time specifications across workspaces.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Clockify time tracking API to manage time entries, projects, tasks, and workspaces through natural language commands.33 npm5ISC
- AlicenseAqualityDmaintenanceEnables time tracking and management in Clockify through natural language commands. Supports creating time entries, managing projects, clients, and tags.1316 npmMIT