100+ integrations are ready to connect to your AI.Connect your first MCP

Clockify MCP server for your AI

Start and stop timers from chat, log the hours you forgot, ask where the team's time went this week, and turn billable hours into a draft invoice, in the Clockify workspace you already use.

PopMCPClockify

How many hours did my team log this week, by project and by person?

Supported Clockify tools

Every documented operation in the Clockify API, with the everyday time-tracking tools loaded by default and the rest, from rates and scheduling to time off balances, shared reports and the audit log, one search away.

172 tools in the full catalog: 64 read and 108 write. 40 load by default, and the rest are found with tool search.

clockify_create_invoice_from_time

Create a draft invoice for a client and fill it with the billable time of a date range.

clockify_create_time_off_request

Ask for time off for the connected user.

clockify_get_invoice

Get an invoice by ID.

clockify_list_invoices

List the workspace's invoices, newest first.

clockify_list_time_off_requests

List time off requests in the workspace with who, when and status.

clockify_create_time_entry

Log time for the connected user, or start a timer by leaving end out.

clockify_create_time_entry_for_user

Log time for another person (owners, admins, or managers with permission).

clockify_delete_time_entry

Delete one time entry.

clockify_get_running_timer

Is a timer running, and on what? For the connected user unless userId is given.

clockify_get_time_entry

Get one time entry by id.

clockify_list_running_timers

List every timer running right now across the workspace (who is working on what).

clockify_list_time_entries

List one person's time entries, newest first (defaults to the connected user).

clockify_log_time

Log a finished block of time: start plus end or durationMinutes, with project, task and tags as names or ids.

clockify_start_timer

Start a timer now for the connected user.

clockify_stop_timer

Stop the running timer, now unless end is given.

clockify_update_time_entry

Replace a time entry.

clockify_create_project

Create a project.

clockify_get_detailed_report

Every time entry in a date range across the workspace, with project, task, user, duration and amounts.

clockify_get_project

Get one project, its estimates and members.

clockify_get_summary_report

Total time and money grouped the way you ask, for any people and projects: the fastest way to answer how many hours per project, client or person.

clockify_get_weekly_report

Time per day across a week-style grid.

clockify_list_projects

List projects in the workspace.

clockify_time_summary

Hours in a date range grouped by project, client, task, tag, date or person, in hours (Clockify's reports answer in seconds), with totals and amounts in cents.

clockify_update_project

Change a project's name, client, color, billable default, public access, note, or archive it.

clockify_create_expense

Record an expense.

clockify_list_expenses

Get all expenses on a workspace.

clockify_get_current_user

Who this API key belongs to: id, name, email, status and time zone settings.

clockify_get_workspace

The connected workspace: name, plan, currencies, default rates and settings (including which fields a time entry must have: forceProjects, forceTasks, forceTags, forceDescription).

clockify_list_users

List the workspace's members.

clockify_create_webhook

Have Clockify POST to your URL when something happens.

clockify_list_webhooks

List the workspace's webhooks.

clockify_create_task

Add a task to a project.

clockify_list_custom_fields

List the custom fields of the workspace.

clockify_list_tasks

List a project's tasks.

clockify_list_approval_requests

List timesheet and expense approval requests.

clockify_update_approval_request

Approve, reject or withdraw an approval request: state is APPROVED, REJECTED, WITHDRAWN_SUBMISSION, WITHDRAWN_APPROVAL or PENDING.

clockify_create_client

Add a new client.

clockify_create_tag

Add a new tag.

clockify_list_clients

List clients in the workspace.

clockify_list_tags

List tags in the workspace.

clockify_add_invoice_item

Add one line to an invoice.

clockify_add_invoice_payment

Add payment to an invoice.

clockify_create_balance_assignment

Creates a new balance assignment for an user in policy.

clockify_create_invoice

Create a draft invoice for a client.

clockify_create_time_off_policy

Create a time off policy.

clockify_create_time_off_request_for_user

Create a time off request for an user.

clockify_delete_balance_assignment

Deletes a specific balance assignment.

clockify_delete_invoice

Delete an invoice.

clockify_delete_invoice_item

Delete item from an invoice.

clockify_delete_invoice_payment

Delete payment from an invoice.

clockify_delete_time_off_policy

Delete a policy.

clockify_delete_time_off_request

Delete a time off request.

clockify_duplicate_invoice

Duplicate an invoice.

clockify_export_invoice

Download an invoice as a PDF, returned as base64.

clockify_filter_invoices

Filter out invoices.

clockify_get_invoice_settings

Get invoice settings.

clockify_get_time_off_policy

Get a time off policy.

clockify_import_invoice_items

Add the billable time (and optionally expenses) of a date range to an invoice as line items.

clockify_list_balance_assignments

Get all balance assignments of an user in policy.

clockify_list_invoice_payments

Get payments for an invoice.

clockify_list_policy_balances

Get balances for a policy.

clockify_list_time_off_policies

Get policies on a workspace.

clockify_list_user_balances

How much time off one person has left under each policy (defaults to the connected user).

clockify_update_balance_assignment

Updates a specific balance assignment.

clockify_update_invoice

Update an invoice.

clockify_update_invoice_settings

Change invoice settings.

clockify_update_invoice_status

Move an invoice to UNSENT, SENT, PAID, PARTIALLY_PAID, VOID or OVERDUE.

clockify_update_policy_balance

Update a balance.

clockify_update_time_off_policy

Update a policy.

clockify_update_time_off_policy_status

Change a policy status.

clockify_update_time_off_request_status

Approve or reject a time off request: status is APPROVED or REJECTED.

clockify_bulk_delete_time_entries

Delete several of one person's time entries.

clockify_bulk_update_time_entries

Edit many of one person's time entries at once.

clockify_duplicate_time_entry

Make a copy of a time entry, with the same times and fields.

clockify_get_time_entries_batch

Get several time entries by id in one call.

clockify_set_time_entries_invoiced

Mark time entries as invoiced or not invoiced.

clockify_stop_running_time_entry

Stop the running timer of a person (defaults to the connected user).

clockify_assign_project_users

Add people or user groups to a project, or take them off with remove=true.

clockify_create_project_from_template

Create project from a template.

clockify_create_shared_report

Create a shared report.

clockify_delete_project

Delete a project.

clockify_delete_shared_report

Delete a shared report.

clockify_get_attendance_report

Work, break, overtime and capacity per person per day in a date range.

clockify_get_audit_log_report

Who changed what in the workspace, from the audit log.

clockify_get_expense_report

Every expense in a date range with totals per category.

clockify_list_shared_reports

Get all my shared reports.

clockify_run_shared_report

Run a saved shared report by id.

clockify_set_project_template

Update a project template.

clockify_set_project_user_billable_rate

Update a project user's billable rate.

clockify_set_project_user_cost_rate

Update project user's cost rate.

clockify_update_project_estimate

Update project estimate.

clockify_update_project_memberships

Set per-person rates on a project: this replaces the memberships listed.

clockify_update_shared_report

Update a shared report.

clockify_copy_assignment

Copy a scheduled assignment.

clockify_create_assignment

Schedule a person on a project: userId, projectId, start, end and hoursPerDay.

clockify_create_expense_category

Add an expense category.

clockify_delete_assignment

Delete assignment.

clockify_delete_expense

Delete an expense.

clockify_delete_expense_category

Delete an expense category.

clockify_download_expense_receipt

Download an expense's receipt file, returned as base64.

clockify_get_expense

Get an expense by ID.

clockify_get_project_schedule_totals

Get all scheduled assignments on project.

clockify_get_user_capacity_totals

Get total capacity of an user.

clockify_list_assignments

List scheduled assignments in a date range (start and end are required; dates work).

clockify_list_expense_categories

Get all expense categories.

clockify_list_project_schedule_totals

Get all scheduled assignments per project.

clockify_list_user_capacity_totals

Get total of users' capacity on workspace.

clockify_publish_assignments

Publish assignments.

clockify_set_expense_category_archived

Archive an expense category.

clockify_update_assignment

Update assignment.

clockify_update_assignment_recurrence

Change the recurring period.

clockify_update_expense

Change an expense.

clockify_update_expense_category

Update an expense category.

clockify_add_limited_users

Add limited users.

clockify_add_user_role

Give manager role to an user.

clockify_create_workspace

Create a separate Clockify workspace.

clockify_filter_users

Search the workspace's members with more filters than clockify_list_users: roles, account statuses, user groups, project.

clockify_get_member_profile

Get a member's profile.

clockify_invite_user

Add a person to the workspace by email.

clockify_list_user_managers

Find user's team manager.

clockify_list_workspaces

The connected workspace (this connection is pinned to one Clockify workspace; other workspaces of the same login are not shown).

clockify_remove_user_role

Remove user's manager role.

clockify_set_user_billable_rate

Update an user's hourly rate.

clockify_set_user_cost_rate

Update an user's cost rate.

clockify_set_user_custom_field_value

Update an user's custom field.

clockify_set_workspace_billable_rate

Update workspace billable rate.

clockify_set_workspace_cost_rate

Update workspace cost rate.

clockify_update_member_profile

Update a member's profile.

clockify_update_user_status

Activate or deactivate a member of the workspace.

clockify_upload_image

Upload a picture and get back its URL, used as a profile picture with clockify_update_member_profile.

clockify_delete_webhook

Delete a webhook.

clockify_get_webhook

Get one webhook.

clockify_list_addon_webhooks

Get all webhooks for addon on a workspace.

clockify_list_webhook_event_statuses

Get webhook event statuses for a webhook.

clockify_list_webhook_logs

Get logs for a webhook.

clockify_rotate_webhook_token

Issue a new signing token for a webhook and cancel the old one.

clockify_update_webhook

Change a webhook's name, url, event or trigger.

clockify_create_custom_field

Create custom fields on a workspace.

clockify_delete_custom_field

Delete a custom field.

clockify_delete_task

Delete a task from a project.

clockify_get_task

Get a task by id.

clockify_list_project_custom_fields

Get custom fields on a project.

clockify_remove_project_custom_field

Remove custom field from a project.

clockify_set_task_billable_rate

Update a task's billable rate.

clockify_set_task_cost_rate

Update a task's cost rate.

clockify_update_custom_field

Update custom field on workspace.

clockify_update_project_custom_field

Update custom field on a project.

clockify_update_task

Replace a task.

clockify_add_user_to_group

Add users to a group.

clockify_create_user_group

Add a new group.

clockify_delete_user_group

Delete a group.

clockify_list_user_groups

List the workspace's user groups.

clockify_remove_user_from_group

Remove an user from a group.

clockify_resubmit_approval_entries

Submit non pending/approved entries/expenses for approval to an existing approval request.

clockify_resubmit_approval_entries_for_user

Re-submit rejected/withdrawn entries/expenses for an approval of an user.

clockify_submit_approval_request

Submit approval request with type.

clockify_submit_approval_request_for_user

Submit approval request for user with type.

clockify_update_user_group

Update a group.

clockify_create_holiday

Create a holiday.

clockify_delete_client

Delete a client.

clockify_delete_holiday

Delete a holiday.

clockify_delete_tag

Delete a tag.

clockify_get_client

Get a client by ID.

clockify_get_tag

Get a tag by ID.

clockify_list_holidays

List the workspace's holidays.

clockify_list_holidays_in_period

List holidays in a date range for one person (assigned-to defaults to the connected user; dates work).

clockify_update_client

Change a client.

clockify_update_holiday

Update a holiday.

clockify_update_tag

Rename or archive a tag.

clockify_list_created_entities

What was created in a date range, for keeping another system in sync.

clockify_list_deleted_entities

What was deleted in a date range, for keeping another system in sync.

clockify_list_updated_entities

What was updated in a date range, for keeping another system in sync.

Connect Clockify to Claude, ChatGPT and Claude Code

Credentials off one Clockify screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

In Clockify open Profile settings, then Preferences, then the Advanced tab, click Manage API keys, then Generate new, and paste the key into PopMCP. Every plan can do this, free included, with no app or approval. PopMCP finds your data region, lists your workspaces and locks the connection to the one you choose.

API key••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • “How many hours did my team log this week, by project and by person?”

    • time_summary
  • “Start a timer on the Website project for the homepage copy”

    • start_timer
  • “Am I tracking anything right now? If so, stop it”

    • get_running_timer
    • stop_timer
  • “Log 90 minutes yesterday morning on the Acme project for the client call”

    • log_time
  • “Who has a timer running at the moment, and on what?”

    • list_running_timers
    • list_users
  • “Create a draft invoice for Acme from last month's billable hours”

    • create_invoice_from_time

Use Clockify from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Clockify MCP server questions

What teams ask before putting Clockify behind an AI client.

What does PopMCP need to connect Clockify?

One API key. In Clockify open Profile settings, then Preferences, then the Advanced tab, click Manage API keys, then Generate new, name it, click Generate and copy it, because Clockify shows it only once. Paste it into PopMCP, which stores it encrypted and shows you your workspaces to choose from. The key never reaches your AI client.

Does it work on Clockify's free plan?

Yes, with one limit that is Clockify's own: the free plan allows 30 API requests an hour per workspace, against 20 a second on paid plans. So PopMCP keeps connecting cheap, remembers who you are instead of asking each time, and offers tools such as time_summary that answer a whole question in one request. Reports on the free plan cover at most 31 days.

My workspace is in the EU, UK or Australia. Do I need to set anything?

No. Clockify runs separate data regions and a key only works in its own, so PopMCP tries each region's address when you connect and remembers the one that accepts your key. Regular calls and reports then go to that region. Clockify documents its audit log on one global address only, so that one report may not reach a regional workspace.

Can the AI see all my workspaces?

A Clockify key can reach every workspace you belong to, so each PopMCP connection is locked to the one workspace you pick. The workspace is filled in on every call and a request for another one is refused, not answered with the wrong data. To work with several, connect each one.

Do I have to know project names and ids?

No. start_timer and log_time take a project, task and tag by name and look up the id. If a name fits more than one project, the tool lists the matches for the AI to choose from instead of guessing. Plain dates work everywhere, and the AI can pass me for the person who made the key.

Can I stop the AI from changing my time entries?

Yes. Every connection starts read-only, which keeps timesheets, reports and project lists readable and blocks every change. An owner or admin can allow write actions later. The role of the person who made the key still applies: Clockify refuses anything their role or plan does not allow.

Which Clockify events can start a workflow?

PopMCP can register Clockify's own webhooks with your key, so a workflow can start when a timer starts or stops, a time entry changes, a project, task or client is added, an invoice changes, a timesheet is submitted or decided, or time off is requested. Only workspace owners and admins can create webhooks, and the free plan allows three.

Do I have to run or host the Clockify MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Clockify to Claude Code?

Connect Clockify in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Clockify on the consent screen. The Clockify tools are then available in that session, and no Clockify credential is stored on your machine.

Why do only 40 of the 172 tools load by default?

Loading 172 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 40-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 172 here. A trigger is something PopMCP watches for you: 26 Clockify events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Clockify.

Connect Clockify to your AI in minutes

Launch a hosted MCP endpoint for Clockify, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP