Clockify Time Tracking MCP server
io.github.tracegazer/clockify-mcp·v0.3.2·1 starsClockify time-tracking MCP: 112 tools across 18 domains, read-only by default with opt-in writes.
1 stars
Reviews
Write oneNobody has reviewed Clockify Time Tracking yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Clockify Time Tracking tools (100, 46 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
add_invoice_itemAdd a line item to an invoice.
add_invoice_paymentRecord a payment against an invoice (amount in minor units; payment_date ISO-8601).
approve_time_off_requestApprove a time-off request (sets status APPROVED).
archive_expense_categoryArchive (archived=True) or restore (archived=False) an expense category.
bulk_update_time_entrieswrite actionBulk-edit a user's time entries. Each entry dict MUST include its 'id'.
change_invoice_statusChange an invoice's status: UNSENT/SENT/PAID/PARTIALLY_PAID/VOID/OVERDUE.
copy_assignmentCopy an assignment to another user (user_id required).
create_assignmentwrite actionCreate a scheduled assignment. Pass weeks (and repeat) to make it recurring.
create_clientwrite actionCreate a client on the workspace.
create_expensewrite actionCreate an expense; receipt_path optionally attaches a local receipt file.
create_expense_categorywrite actionCreate an expense category.
create_holidaywrite actionCreate a holiday on the workspace.
create_invoicewrite actionCreate an invoice (empty — add items separately).
create_projectwrite actionCreate a project on the workspace. client_id links it to a client.
create_shared_reportwrite actionCreate a shared report. type is DETAILED/WEEKLY/SUMMARY/EXPENSE_DETAILED/ ATTENDANCE/etc.; the filter needs a date range and the type's sub-filter (a default is added for DETAILED/SUMMARY/WEEKLY/ATTENDANCE; pass report_filter to customize or for other types). is_public=True shares it publicly; otherwise scope with visible_to_users / visible_to_user_groups.
create_tagwrite actionCreate a tag on the workspace.
create_taskwrite actionCreate a task on a project. status is ACTIVE or DONE.
create_time_entrywrite actionCreate a time entry for the authenticated user. Omit end for a running timer.
create_time_entry_for_userwrite actionCreate a time entry for another user (admin). Resolve user_id with list_users.
create_time_off_policywrite actionCreate a time-off policy on the workspace.
create_time_off_requestwrite actionCreate a time-off request for the authenticated user under a policy.
create_workspace_custom_fieldwrite actionCreate a workspace custom field. type is TXT, NUMBER, DROPDOWN_SINGLE, DROPDOWN_MULTIPLE, CHECKBOX, or LINK; entity_type is TIMEENTRY or USER.
delete_assignmentwrite actionDelete an assignment. IRREVERSIBLE. series_update_option is THIS_ONE/THIS_AND_FOLLOWING/ALL for recurring series.
delete_clientwrite actionDelete a client. IRREVERSIBLE. The client must be archived first (update_client archived=True); the API rejects deleting an active client.
delete_expensewrite actionDelete an expense. IRREVERSIBLE — the expense is permanently removed.
delete_expense_categorywrite actionDelete an expense category. IRREVERSIBLE — permanently removed.
delete_holidaywrite actionDelete a holiday. IRREVERSIBLE — the holiday is permanently removed.
delete_invoicewrite actionDelete an invoice. IRREVERSIBLE — permanently removed.
delete_invoice_paymentwrite actionDelete a recorded invoice payment. IRREVERSIBLE.
delete_projectwrite actionDelete a project. IRREVERSIBLE. The project must be archived first (update_project archived=True); the API rejects deleting an active project.
delete_shared_reportwrite actionDelete a shared report. IRREVERSIBLE — the saved report and share link are permanently removed.
delete_tagwrite actionDelete a tag. IRREVERSIBLE — the tag is permanently removed.
delete_taskwrite actionDelete a task. IRREVERSIBLE — the task is permanently removed.
delete_time_entrywrite actionDelete a time entry. IRREVERSIBLE — the entry is permanently removed.
delete_workspace_custom_fieldwrite actionDelete a workspace custom field. IRREVERSIBLE — the field and its values are permanently removed.
download_expense_receiptDownload an expense's receipt file to a local path.
duplicate_invoiceDuplicate an invoice (creates a new draft copy).
duplicate_time_entryDuplicate a user's time entry. Resolve user_id with get_current_user.
export_reportExport a report as a file (PDF/CSV/XLSX). report_type is detailed/summary/ weekly/attendance/expenses; fmt is PDF/CSV/XLSX; bytes are written to save_path.
generate_attendance_reportGenerate an attendance report (per user/day: work, break, capacity, overtime, time off) for a date range. Requires the attendance/time-tracking add-on.
generate_detailed_reportGenerate a detailed report (one row per time entry) for a date range.
generate_expense_reportGenerate a detailed expense report ({"expenses": [...], "totals": {...}}) for a date range. Requires the Expenses add-on.
generate_summary_reportGenerate a summary report (totals grouped by one or more keys) for a date range.
generate_weekly_reportGenerate a weekly report for a date range.
get_clientGet a single client by id.
get_expenseGet a single expense by id.
get_invoiceGet a single invoice by id.
get_invoice_paymentsList an invoice's payments (paginated).
get_projectGet a single project by id.
get_project_scheduling_totalsGet scheduled-assignment totals per project (POST filter body).
get_shared_reportGenerate (fetch the data of) a shared report by id. Optional params override the saved range/sort/format; export_type is JSON/PDF/CSV/XLSX/ZIP.
get_tagGet a single tag by id.
get_taskGet a single task by id (within its project).
get_time_entryGet a single time entry by id.
get_time_off_policyGet a single time-off policy by id.
get_user_scheduling_totalsGet users' scheduling capacity totals (POST filter body).
import_invoice_itemsImport time entries (and optionally expenses) into an invoice as items.
list_approval_requestsList approval requests (paginated).
list_clientsList clients on the workspace, optionally filtered by name (paginated). fetch_all=True follows pagination and returns every page concatenated.
list_expense_categoriesList expense categories (paginated).
list_expensesList expenses on the workspace (paginated), optionally for one user.
list_holidaysList holidays on the workspace, optionally filtered to a user.
list_holidays_in_periodList holidays overlapping a date range for a user.
list_invoicesList invoices (paginated).
list_project_custom_fieldsList a project's custom fields (status INACTIVE/VISIBLE/INVISIBLE).
list_projectsList projects on the workspace with optional filters (paginated). fetch_all=True follows pagination and returns every page concatenated.
list_scheduled_assignmentsList scheduled assignments in a date range (start/end ISO-8601, required).
list_shared_reportsList the workspace's shared reports. shared_reports_filter is ALL (default), CREATED_BY_ME, or SHARED_WITH_ME.
list_tagsList tags on the workspace, optionally filtered by name (paginated). fetch_all=True follows pagination and returns every page concatenated.
list_tasksList tasks on a project, optionally filtered by name/active state (paginated). fetch_all=True follows pagination and returns every page concatenated.
list_time_entriesList a user's time entries on the workspace (paginated). fetch_all=True follows pagination and returns every page concatenated.
list_time_off_balances_by_policyList per-user time-off balances for a policy (paginated).
list_time_off_balances_by_userList a user's time-off balances across policies (paginated).
list_time_off_policiesList time-off policies on the workspace (paginated).
list_time_off_requestsList/filter time-off requests (filter sent as a POST body).
list_user_groupsList user groups on the workspace, optionally filtered by name (paginated).
list_usersList workspace users, optionally filtered by name/email/status (paginated). fetch_all=True follows pagination and returns every page concatenated.
list_workspace_custom_fieldsList workspace custom fields (status INACTIVE/VISIBLE/INVISIBLE).
publish_assignmentswrite actionPublish scheduled assignments in a date range (start/end required).
reject_time_off_requestReject a time-off request (sets status REJECTED).
remove_project_custom_fieldwrite actionRemove a custom field's project-level override (the workspace field itself is unaffected).
resubmit_approval_entriesResubmit rejected/withdrawn entries for approval (authenticated user).
set_project_custom_fieldApply or override a workspace custom field on a project (sets its project-level default value and/or status).
stop_running_timerStop a user's currently running timer by setting its end (ISO-8601).
submit_approval_requestwrite actionSubmit an approval request for the authenticated user.
submit_approval_request_for_userwrite actionSubmit an approval request on behalf of another user (manager action).
update_approval_requestwrite actionChange an approval request's state (APPROVED/REJECTED/PENDING/WITHDRAWN_*).
update_assignmentwrite actionUpdate an assignment (start/end required).
update_clientwrite actionUpdate a client. name is required by the Clockify API (pass the current name if unchanged). Pass archived=True/False to archive or restore it.
update_expensewrite actionUpdate an expense (multipart; changeFields derived from passed fields).
update_expense_categorywrite actionUpdate an expense category (name required).
update_holidaywrite actionUpdate a holiday (full replace; occurs_annually required).
update_invoicewrite actionUpdate an invoice (full replace).
update_projectwrite actionUpdate a project. Pass archived=True/False to archive or restore it.
update_shared_reportwrite actionUpdate a shared report's metadata/visibility (name required). type and filter are fixed at creation — delete and recreate to change them.
update_tagwrite actionUpdate a tag. Pass archived=True/False to archive or restore it.
update_taskwrite actionUpdate a task. name is required by the API. status is ACTIVE or DONE.
update_time_entrywrite actionUpdate a time entry. start is required by the API (pass the existing start if unchanged).
update_workspace_custom_fieldwrite actionUpdate a workspace custom field. name and type are required by the API (pass current values if unchanged).
withdraw_time_off_requestWithdraw/cancel a time-off request. IRREVERSIBLE — the request is deleted.
Public scan report
scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it
- Code scan32 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 69 days ago12/15
- Maintainer identityregistry namespace matches repository owner6/10
How Clockify Time Tracking compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 75/100
- higher than 45% of 48,255 servers
- Tools
- 100
- the typical server has 7
- Tools that change things
- 46%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 1
- more than 65% of 28,688 servers
What its tools let an agent do: 42 read · 23 create · 18 change · 15 delete · 1 send or post · 1 run or deploy
Install Clockify Time Tracking in Claude Code, Cursor or VS Code
claude mcp add clockify-mcp -- uvx clockify-mcp
What the publisher says
From the Clockify Time Tracking repository's README, as published. We do not edit it. Read it on GitHub
clockify-mcp
<!-- mcp-name: io.github.tracegazer/clockify-mcp -->
A Model Context Protocol server for the Clockify time-tracking API.
Give your AI assistant access to your Clockify data — query workspaces, projects, and time entries, generate reports, log hours, and manage clients, invoices, and more — all through natural language.
112 tools across 18 domains. Read-only by default, with optional write operations behind explicit opt-in.
Install in one click
The easiest way to use this server with Claude Desktop (and other MCPB-compatible clients) is the prebuilt bundle:
➡️ Download clockify-mcp.mcpb — then double-click it. Claude Desktop opens the installer, prompts for your Clockify API key, and you're done. No Python, no npx/uvx, no config files.
The .mcpb is attached to every GitHub Release and mirrored on Smithery. Prefer a package manager or container? See Quick start below.
What can it do?
48 read-only tools are available today (Phase 0–8b — 18 domains). 64 write tools (create/update/delete across clients, projects, tasks, tags, time entries, holidays, expenses, and expense categories, plus time-off policy/request management, approval submit/resubmit/update, custom-field create/update/delete and project assignment, scheduling assignment management, invoice and payment management, shared-report management, and webhook create/update/delete/token) register when you set CLOCKIFYACCESSMODE=full (or the back-compat CLOCKIFYENABLEWRITES=true). A middle time-tracking mode exposes only the time-entry writes for logging hours — see Access modes.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Clockify Time Tracking: common questions
- Is Clockify Time Tracking MCP server safe?
- Mostly: it is graded B (75/100). Read the Clockify Time Tracking safety report
- How do I install Clockify Time Tracking?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Clockify Time Tracking need an API key?
- Yes. The registry entry asks for
CLOCKIFY_API_KEY. - Is Clockify Time Tracking maintained?
- The last commit was 107 days ago (2026-07-20). The latest release is v0.3.2.
- How does Clockify Time Tracking compare with other MCP servers?
- safety score 75/100 (higher than 45% of 48,255 servers); tools 100 (the typical server has 7); tools that change things 46% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.