clockify-mcp is a Model Context Protocol (MCP) server for the Clockify time tracking API, with the goal of letting AI assistants access Clockify data through natural language, such as querying workspaces, projects, and time entries, generating reports, logging work hours, and managing clients, invoices, and more. The project claims to cover 18 domains with a total of 112 tools, and uses a three-tier access model: read-only, time tracking, and full access.
Main capabilities
- Tool coverage: 112 tools distributed across 18 domains, including invoices, scheduling, time off, and approvals.
- Read-only tools: currently provides 48 read-only tools (Phase 0–8b, 18 domains).
- Write tools: 64 write tools (create/update/delete clients, projects, tasks, tags, time entries, holidays, expenses and expense categories, as well as time off policy/request management, approval submission/resubmission/update, custom field creation/update/deletion and project assignment, scheduling assignment management, invoice and payment management, shared report management, Webhook creation/update/deletion/token). These tools are registered when CLOCKIFY_ACCESS_MODE=full is set (or the backward-compatible CLOCKIFY_ENABLE_WRITES=true).
- Intermediate mode: time-tracking mode exposes only the time entry write tools used for logging work hours.
- Paid feature notice: time off, holidays, expenses, approvals, custom fields, scheduling, invoices, and Webhooks are Clockify paid features, and without the corresponding plan these tools will return errors (HTTP 402/403/404). generate_attendance_report and generate_expense_report (as well as export_report for these two categories) require the workspace's attendance/expense add-ons; time-based reports (detailed/summary/weekly) and shared reports are available on the free plan.
- Observability: optionally enable OpenTelemetry tracing, metrics, and logs, vendor-neutral, exportable to any OTLP-compatible backend (such as Dynatrace, Grafana, Datadog, Jaeger, etc.). When disabled, opentelemetry is not imported.
Usage
- One-click install: download the prebuilt clockify-mcp.mcpb and double-click it; Claude Desktop will open the installer and prompt for the Clockify API key, with no need for Python, npx/uvx, or a configuration file. The .mcpb is attached to each GitHub Release and mirrored on Smithery.
- It can also be run with a package manager or container, or run without installation (requires uv). Container images are pushed to GHCR on every release.
- Connect Claude Desktop: add the configuration to claude_desktop_config.json and restart Claude Desktop, then you can ask "What workspaces do I have in Clockify?".
- Get an API key: log in to Clockify → Profile Settings → API → copy the API key.
- Configuration resolution order (highest to lowest priority): environment variables (always take precedence), TOML configuration located at ~/.config/clockify-mcp/config.toml.
- Access modes: read exposes only read-only tools; time-tracking adds time entry write tools (create/update/delete/duplicate/bulk) for logging work hours, and does not include other writes; full exposes all write tools. This setting determines which MCP tools the server registers, and cannot replace the permissions of the API key itself.
- Run modes: the default STDIO stays local; sse and streamable-http transports have no built-in authentication and should only be used when bound to a loopback address or placed behind an authenticated reverse proxy.
- Workspace scope: almost all Clockify operations are scoped to a workspace (/workspaces/{workspaceId}/...). Tools accept an optional workspace_id; when omitted, it falls back to CLOCKIFY_DEFAULT_WORKSPACE_ID. If neither is set, the tool will require resolving a workspace first via list_workspaces.
- Pagination: list tools accept optional page/page_size and return one page. High-volume lists (list_time_entries, list_projects, list_clients, list_tasks, list_tags, list_users) also accept fetch_all=true to follow pagination and return the concatenated results of all pages (may make multiple API calls).
- Error classification: failures carry a category—PLAN_REQUIRED, ACCESS_DENIED, or AUTH—so the assistant can determine whether to prompt for a plan upgrade, enable a module, or fix the key.
Use cases
- Query Clockify workspaces, projects, and time entries via natural language.
- Generate reports (time-based detailed/summary/weekly reports, shared reports, and attendance/expense reports that require add-ons).
- Log work hours (time-tracking mode).
- Manage clients, invoices, payments, scheduling, time off, approvals, custom fields, and Webhooks (requires the corresponding plan and modules, and writes must be enabled).
Limitations and notes
- Read-only by default; writes must be explicitly enabled. Write mode allows the connected agent to create, modify, and delete real data through your Clockify credentials; delete_* tools and withdraw_time_off_request are irreversible.
- Many domains are gated by two independent conditions: the workspace plan must include the feature (otherwise the API returns 402 or a subscription message, and the server throws PLAN_REQUIRED); and the module must be enabled in the workspace (even if the plan is correct, an admin must enable Time off, Expenses, Approval, Invoicing, Scheduling in Clockify → Workspace Settings; otherwise the API returns 403 Access Denied, and the server throws ACCESS_DENIED). Custom fields, Webhooks, and reports do not require a separate toggle.
- In time-tracking mode, duplicate/bulk always apply to the authenticated user; for update/delete by id, the assistant is prompted to confirm before touching entries that may belong to others.
- OTLP endpoints and headers are configured via standard OpenTelemetry environment variables (not in the TOML file). CLOCKIFY_TELEMETRY_DETAIL controls how much parameter/payload data is attached (metadata default → ids → full); API keys are always redacted. Required token scopes: openTelemetryTrace.ingest, metrics.ingest, logs.ingest. Dynatrace's OTLP metrics ingestion requires delta temporality, otherwise metric export fails with 400 Bad Request.
- Specific installation commands, configuration examples, pricing, and plan details are not fully provided in the materials and are not yet available.