Clockify MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.4.3 · published by io.usefulapi
Track time in Clockify: time entries, projects, clients, tags and reports; start, stop and log time.
21 tools: 3 can delete or cancel things, 2 do something that can't be undone, 5 change things and 11 only read.
Scanned Oct 21, 2026
- Deletes or cancels3Claude Code: deny: see these tools
- Can't be undone2Claude Code: ask: see these tools
- Changes things5Claude Code: ask: see these tools
- Only reads11Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http clockify https://clockify.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "clockify_summary_report" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.
The server marks "clockify_detailed_report" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
21 tools
Deletes or cancels 3Claude Code: deny
clockify_delete_time_entryWRITE (destructive): permanently delete one time entry.No findings
Why it is in this group
- The name "clockify_delete_time_entry" says "delete": a word for removing or ending something.
- The description says "permanently delete".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE (destructive): permanently delete one time entry. It cannot be undone. DELETE /v1/workspaces/{workspaceId}/time-entries/{id}.
Annotations the server declares
- title: Delete a time entry
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
clockify_stop_timerWRITE: stop the running timer of a user (default: you) at end (default now).No findings
Why it is in this group
- The name "clockify_stop_timer" says "stop": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: stop the running timer of a user (default: you) at end (default now). Clockify answers 404 if no timer is running. PATCH /v1/workspaces/{workspaceId}/user/{userId}/time-entries.
Annotations the server declares
- title: Stop running timer
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
clockify_update_time_entryWRITE: change a time entry's start, end, description, project, task, tags or billable.No findings
Why it is in this group
- The name "clockify_update_time_entry" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: change a time entry's start, end, description, project, task, tags or billable. Only the fields you pass change: the entry is read first and every other field (custom fields included) is sent back as it was. The entry is rewritten (PUT) from a fresh read, so an edit made to the same entry in between (e.g. in the Clockify app) can be lost. A new project without task_id clears the task. GET then PUT /v1/workspaces/{workspaceId}/time-entries/{id}.
Annotations the server declares
- title: Update a time entry
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Can't be undone 2Claude Code: ask
clockify_detailed_reportEvery time entry in a date range across the workspace (user, project, client, task, tags, description, start/end, duration in seconds, amount), with totals; newest first, paged.1 finding
Why it is in this group
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "clockify_detailed_report" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.
Description, as the server wrote it Every time entry in a date range across the workspace (user, project, client, task, tags, description, start/end, duration in seconds, amount), with totals; newest first, paged. POST reports /v1/workspaces/{workspaceId}/reports/detailed.
Annotations the server declares
- title: Detailed report
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
clockify_summary_reportTotals of tracked time (seconds) and amounts for a date range across the workspace, grouped by up to 3 levels (default project → time entry), e.g.1 finding
Why it is in this group
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "clockify_summary_report" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.
Description, as the server wrote it Totals of tracked time (seconds) and amounts for a date range across the workspace, grouped by up to 3 levels (default project → time entry), e.g. hours per user per project last month. Respects the filters. POST reports /v1/workspaces/{workspaceId}/reports/summary.
Annotations the server declares
- title: Summary report
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
Changes things 5Claude Code: ask
clockify_create_clientWRITE: add a client to a workspace.No findings
Why it is in this group
- The name "clockify_create_client" says "create": a word for a change.
Description, as the server wrote it WRITE: add a client to a workspace. POST /v1/workspaces/{workspaceId}/clients.
Annotations the server declares
- title: Create a client
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
clockify_create_projectWRITE: create a project in a workspace (needs an admin or project-manager role, depending on workspace settings).No findings
Why it is in this group
- The name "clockify_create_project" says "create": a word for a change.
Description, as the server wrote it WRITE: create a project in a workspace (needs an admin or project-manager role, depending on workspace settings). POST /v1/workspaces/{workspaceId}/projects.
Annotations the server declares
- title: Create a project
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
clockify_create_tagWRITE: add a tag to a workspace.No findings
Why it is in this group
- The name "clockify_create_tag" says "create": a word for a change.
Description, as the server wrote it WRITE: add a tag to a workspace. POST /v1/workspaces/{workspaceId}/tags.
Annotations the server declares
- title: Create a tag
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
clockify_create_taskWRITE: add a task to a project.No findings
Why it is in this group
- The name "clockify_create_task" says "create": a word for a change.
Description, as the server wrote it WRITE: add a task to a project. POST /v1/workspaces/{workspaceId}/projects/{projectId}/tasks.
Annotations the server declares
- title: Create a task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
clockify_create_time_entryWRITE: add a time entry for yourself.No findings
Why it is in this group
- The name "clockify_create_time_entry" says "create": a word for a change.
Description, as the server wrote it WRITE: add a time entry for yourself. With end = a finished entry (log time); without end = a running timer that starts at start (default now). A workspace with required custom fields may refuse it. POST /v1/workspaces/{workspaceId}/time-entries.
Annotations the server declares
- title: Log time or start a timer
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 11Claude Code: allow
clockify_get_current_userThe Clockify user this API key belongs to: id, name, email, status, active and default workspace ids, and profile settings (time zone, week start, date/time format).No findings
Why it is in this group
- The name "clockify_get_current_user" says "get": a word for reading.
Description, as the server wrote it The Clockify user this API key belongs to: id, name, email, status, active and default workspace ids, and profile settings (time zone, week start, date/time format). GET /v1/user.
Annotations the server declares
- title: Get current user
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
clockify_get_projectOne project by id: name, client, billable, color, note, estimate, duration tracked, rates and memberships.No findings
Why it is in this group
- The name "clockify_get_project" says "get": a word for reading.
Description, as the server wrote it One project by id: name, client, billable, color, note, estimate, duration tracked, rates and memberships. GET /v1/workspaces/{workspaceId}/projects/{projectId}.
Annotations the server declares
- title: Get a project
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
clockify_get_running_timerThe timer that is running right now for a user (default: you), or running: false.No findings
Why it is in this group
- The name "clockify_get_running_timer" says "get": a word for reading.
Description, as the server wrote it The timer that is running right now for a user (default: you), or running: false. GET /v1/workspaces/{workspaceId}/user/{userId}/time-entries?in-progress=true.
Annotations the server declares
- title: Get running timer
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
clockify_get_time_entryOne time entry by id: description, project, task, tags, billable, rates, custom fields and timeInterval.No findings
Why it is in this group
- The name "clockify_get_time_entry" says "get": a word for reading.
Description, as the server wrote it One time entry by id: description, project, task, tags, billable, rates, custom fields and timeInterval. GET /v1/workspaces/{workspaceId}/time-entries/{id}.
Annotations the server declares
- title: Get a time entry
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
clockify_list_clientsList the clients of a workspace (id, name, email, address, currency, archived).No findings
Why it is in this group
- The name "clockify_list_clients" says "list": a word for reading.
Description, as the server wrote it List the clients of a workspace (id, name, email, address, currency, archived). GET /v1/workspaces/{workspaceId}/clients.
Annotations the server declares
- title: List clients
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
clockify_list_projectsList the projects of a workspace: id, name, client, billable, public, color, archived, duration tracked, estimate and rates.No findings
Why it is in this group
- The name "clockify_list_projects" says "list": a word for reading.
Description, as the server wrote it List the projects of a workspace: id, name, client, billable, public, color, archived, duration tracked, estimate and rates. Filter by name, client, user, billable or archived. GET /v1/workspaces/{workspaceId}/projects.
Annotations the server declares
- title: List projects
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
clockify_list_tagsList the tags of a workspace (id, name, archived).No findings
Why it is in this group
- The name "clockify_list_tags" says "list": a word for reading.
Description, as the server wrote it List the tags of a workspace (id, name, archived). GET /v1/workspaces/{workspaceId}/tags.
Annotations the server declares
- title: List tags
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
clockify_list_tasksList the tasks of a project (id, name, status, assignees, estimate, duration tracked).No findings
Why it is in this group
- The name "clockify_list_tasks" says "list": a word for reading.
Description, as the server wrote it List the tasks of a project (id, name, status, assignees, estimate, duration tracked). GET /v1/workspaces/{workspaceId}/projects/{projectId}/tasks.
Annotations the server declares
- title: List project tasks
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
clockify_list_time_entriesList the time entries of one user (default: you), newest first: id, description, project, task, tags, billable and timeInterval (start, end, ISO 8601 duration).No findings
Why it is in this group
- The name "clockify_list_time_entries" says "list": a word for reading.
Description, as the server wrote it List the time entries of one user (default: you), newest first: id, description, project, task, tags, billable and timeInterval (start, end, ISO 8601 duration). Filter by time range, project, task, tags or description. For totals across users use clockify_summary_report. GET /v1/workspaces/{workspaceId}/user/{userId}/time-entries.
Annotations the server declares
- title: List time entries
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
clockify_list_usersList the members of a workspace: id, name, email, status and settings.No findings
Why it is in this group
- The name "clockify_list_users" says "list": a word for reading.
Description, as the server wrote it List the members of a workspace: id, name, email, status and settings. Filter by name, email, status or project access. GET /v1/workspaces/{workspaceId}/users.
Annotations the server declares
- title: List workspace users
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
clockify_list_workspacesList the Clockify workspaces you belong to: id, name, plan (featureSubscriptionType), subdomain, currencies and default hourly/cost rate.No findings
Why it is in this group
- The name "clockify_list_workspaces" says "list": a word for reading.
Description, as the server wrote it List the Clockify workspaces you belong to: id, name, plan (featureSubscriptionType), subdomain, currencies and default hourly/cost rate. Use the id as workspace_id in other tools. GET /v1/workspaces.
Annotations the server declares
- title: List workspaces
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.4.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http clockify https://clockify.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__clockify__clockify_get_current_user",
"mcp__clockify__clockify_list_workspaces",
"mcp__clockify__clockify_list_users",
"mcp__clockify__clockify_list_clients",
"mcp__clockify__clockify_list_projects",
"mcp__clockify__clockify_get_project",
"mcp__clockify__clockify_list_tasks",
"mcp__clockify__clockify_list_tags",
"mcp__clockify__clockify_list_time_entries",
"mcp__clockify__clockify_get_time_entry",
"mcp__clockify__clockify_get_running_timer"
],
"ask": [
"mcp__clockify__clockify_summary_report",
"mcp__clockify__clockify_detailed_report",
"mcp__clockify__clockify_create_time_entry",
"mcp__clockify__clockify_create_project",
"mcp__clockify__clockify_create_task",
"mcp__clockify__clockify_create_client",
"mcp__clockify__clockify_create_tag"
],
"deny": [
"mcp__clockify__clockify_stop_timer",
"mcp__clockify__clockify_update_time_entry",
"mcp__clockify__clockify_delete_time_entry"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as clockify. Review it before you use it.