Clockify MCP by usefulapi
Track time in Clockify: time entries, projects, clients, tags and reports; start, stop and log time.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"clockify": {
"url": "https://clockify.usefulapi.io/mcp"
}
}
}Remote endpoints
https://clockify.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (21)
🟢clockify_get_current_user
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.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clockify_list_workspaces(roles)
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.
Input Schema
{
"type": "object",
"properties": {
"roles": {
"description": "Only workspaces where you have one of these roles.",
"minItems": 1,
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"WORKSPACE_ADMIN",
"OWNER",
"TEAM_MANAGER",
"PROJECT_MANAGER"
]
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clockify_list_users(workspace_id, name, email, status, project_id, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"name": {
"description": "Only users whose name contains this text.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"email": {
"description": "Only users whose email contains this text.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"description": "Membership status filter.",
"type": "string",
"enum": [
"PENDING",
"ACTIVE",
"DECLINED",
"INACTIVE",
"ALL"
]
},
"project_id": {
"description": "Only users with access to this project.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clockify_list_clients(workspace_id, name, archived, page, page_size)
List the clients of a workspace (id, name, email, address, currency, archived). GET /v1/workspaces/{workspaceId}/clients.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"name": {
"description": "Only clients whose name contains this text.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"archived": {
"description": "true = only archived clients, false = only active ones. Default: both.",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clockify_list_projects(workspace_id, name, client_ids, user_ids, archived, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"name": {
"description": "Only projects whose name contains this text.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"client_ids": {
"description": "Only these clients (ids).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"user_ids": {
"description": "Only these users (projects these users are members of) (ids).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"archived": {
"description": "true = only archived projects. Default: archived and active.",
"type": "boolean"
},
"billable": {
"description": "true = only billable projects. Default: all.",
"type": "boolean"
},
"hydrated": {
"description": "true = include more detail (custom fields, memberships, estimates).",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clockify_get_project(workspace_id, project_id, hydrated)
One project by id: name, client, billable, color, note, estimate, duration tracked, rates and memberships. GET /v1/workspaces/{workspaceId}/projects/{projectId}.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"project_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Project id (from clockify_list_projects)."
},
"hydrated": {
"description": "true = include more detail (custom fields, estimates).",
"type": "boolean"
}
},
"required": [
"project_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clockify_list_tasks(workspace_id, project_id, name, is_active, page, ...)
List the tasks of a project (id, name, status, assignees, estimate, duration tracked). GET /v1/workspaces/{workspaceId}/projects/{projectId}/tasks.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"project_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Project id (from clockify_list_projects)."
},
"name": {
"description": "Only tasks whose name contains this text.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"is_active": {
"description": "true = only active tasks, false = only done tasks. Default: both.",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
}
},
"required": [
"project_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clockify_list_tags(workspace_id, name, archived, page, page_size)
List the tags of a workspace (id, name, archived). GET /v1/workspaces/{workspaceId}/tags.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"name": {
"description": "Only tags whose name contains this text.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"archived": {
"description": "true = only archived tags, false = only active ones. Default: both.",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clockify_list_time_entries(workspace_id, user_id, start, end, description, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"user_id": {
"description": "User id (from clockify_list_users). Default: you. Other users' entries need an admin or manager role.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"start": {
"description": "Only entries starting at or after this time (ISO 8601 with a timezone).",
"type": "string"
},
"end": {
"description": "Only entries starting before this time (ISO 8601 with a timezone).",
"type": "string"
},
"description": {
"description": "Only entries whose description contains this text.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"project_id": {
"description": "Only entries on this project.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"task_id": {
"description": "Only entries on this task.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"tag_ids": {
"description": "Only these tags (ids).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"hydrated": {
"description": "true = embed the project, task and tag objects instead of ids only.",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clockify_get_time_entry(workspace_id, time_entry_id, hydrated)
One time entry by id: description, project, task, tags, billable, rates, custom fields and timeInterval. GET /v1/workspaces/{workspaceId}/time-entries/{id}.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"time_entry_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Time entry id (from clockify_list_time_entries)."
},
"hydrated": {
"description": "true = embed the project, task and tag objects.",
"type": "boolean"
}
},
"required": [
"time_entry_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clockify_get_running_timer(workspace_id, user_id)
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.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"user_id": {
"description": "User id. Default: you.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clockify_summary_report(workspace_id, from, to, user_ids, project_ids, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"from": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "First day of the report, yyyy-mm-dd (inclusive). On Clockify's FREE plan a report spans at most 31 days."
},
"to": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "Last day of the report, yyyy-mm-dd (inclusive)."
},
"user_ids": {
"description": "Only these users (ids).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"project_ids": {
"description": "Only these projects (ids).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"client_ids": {
"description": "Only these clients (ids).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"tag_ids": {
"description": "Only these tags (ids).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"billable": {
"description": "true = only billable time, false = only non-billable. Default: both.",
"type": "boolean"
},
"description": {
"description": "Only entries whose description contains this text.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"time_zone": {
"description": "IANA time zone the dates are read in, e.g. Europe/Berlin. Default: your Clockify profile's time zone.",
"type": "string",
"maxLength": 64,
"pattern": "^[A-Za-z]+(?:[/_+-][A-Za-z0-9_+-]+){0,3}$"
},
"group_by": {
"description": "Grouping levels, outermost first (default [PROJECT, TIMEENTRY]).",
"minItems": 1,
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"PROJECT",
"CLIENT",
"TASK",
"TAG",
"USER",
"USER_GROUP",
"DATE",
"WEEK",
"MONTH",
"TIMEENTRY"
]
}
}
},
"required": [
"from",
"to"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢clockify_detailed_report(workspace_id, from, to, user_ids, project_ids, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"from": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "First day of the report, yyyy-mm-dd (inclusive). On Clockify's FREE plan a report spans at most 31 days."
},
"to": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "Last day of the report, yyyy-mm-dd (inclusive)."
},
"user_ids": {
"description": "Only these users (ids).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"project_ids": {
"description": "Only these projects (ids).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"client_ids": {
"description": "Only these clients (ids).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"tag_ids": {
"description": "Only these tags (ids).",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"billable": {
"description": "true = only billable time, false = only non-billable. Default: both.",
"type": "boolean"
},
"description": {
"description": "Only entries whose description contains this text.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"time_zone": {
"description": "IANA time zone the dates are read in, e.g. Europe/Berlin. Default: your Clockify profile's time zone.",
"type": "string",
"maxLength": 64,
"pattern": "^[A-Za-z]+(?:[/_+-][A-Za-z0-9_+-]+){0,3}$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Results per page, 1-200 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 200
}
},
"required": [
"from",
"to"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡clockify_create_time_entry(workspace_id, start, end, description, project_id, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"start": {
"description": "Start time, ISO 8601 with a timezone. Default: now.",
"type": "string"
},
"end": {
"description": "End time. Omit to start a running timer.",
"type": "string"
},
"description": {
"description": "What the time was spent on.",
"type": "string",
"maxLength": 3000
},
"project_id": {
"description": "Project id (from clockify_list_projects).",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"task_id": {
"description": "Task id on that project (from clockify_list_tasks).",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"tag_ids": {
"description": "Tag ids (from clockify_list_tags).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"billable": {
"description": "Billable. Default: the project's billable setting (read from the project), else not billable.",
"type": "boolean"
},
"type": {
"description": "REGULAR (default) or BREAK.",
"type": "string",
"enum": [
"REGULAR",
"BREAK"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴clockify_stop_timer(workspace_id, user_id, end)
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.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"user_id": {
"description": "User id. Default: you. Stopping someone else's timer needs an admin role.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"end": {
"description": "Stop time, ISO 8601 with a timezone. Default: now.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴clockify_update_time_entry(workspace_id, time_entry_id, start, end, description, ...)
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}.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"time_entry_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Time entry id."
},
"start": {
"description": "New start time.",
"type": "string"
},
"end": {
"description": "New end time (also stops a running timer).",
"type": "string"
},
"description": {
"description": "New description.",
"type": "string",
"maxLength": 3000
},
"project_id": {
"description": "New project id.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"task_id": {
"description": "New task id (on the entry's project).",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"tag_ids": {
"description": "New tag ids (replaces the tags; [] removes them all).",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"billable": {
"description": "New billable flag.",
"type": "boolean"
}
},
"required": [
"time_entry_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴clockify_delete_time_entry(workspace_id, time_entry_id)
WRITE (destructive): permanently delete one time entry. It cannot be undone. DELETE /v1/workspaces/{workspaceId}/time-entries/{id}.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"time_entry_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Time entry id to delete."
}
},
"required": [
"time_entry_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡clockify_create_project(workspace_id, name, client_id, billable, is_public, ...)
WRITE: create a project in a workspace (needs an admin or project-manager role, depending on workspace settings). POST /v1/workspaces/{workspaceId}/projects.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"name": {
"type": "string",
"minLength": 2,
"maxLength": 250,
"description": "Project name, 2-250 characters (unique per client)."
},
"client_id": {
"description": "Client id (from clockify_list_clients).",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"billable": {
"description": "Billable by default.",
"type": "boolean"
},
"is_public": {
"description": "Visible to the whole workspace. Default false: the project is private (visible to its members only).",
"type": "boolean"
},
"color": {
"description": "Color, #RRGGBB.",
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"note": {
"description": "Project note.",
"type": "string",
"maxLength": 16384
}
},
"required": [
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡clockify_create_task(workspace_id, project_id, name, assignee_ids, estimate)
WRITE: add a task to a project. POST /v1/workspaces/{workspaceId}/projects/{projectId}/tasks.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"project_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Project id."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "Task name."
},
"assignee_ids": {
"description": "User ids to assign.",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
}
},
"estimate": {
"description": "Time estimate, ISO 8601 duration such as PT1H30M.",
"type": "string",
"pattern": "^PT(?=\\d)(?:\\d{1,5}H)?(?:\\d{1,5}M)?(?:\\d{1,5}S)?$"
}
},
"required": [
"project_id",
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡clockify_create_client(workspace_id, name, email, address, note)
WRITE: add a client to a workspace. POST /v1/workspaces/{workspaceId}/clients.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Client name (unique in the workspace)."
},
"email": {
"description": "Client email.",
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"address": {
"description": "Client address.",
"type": "string",
"maxLength": 3000
},
"note": {
"description": "Note.",
"type": "string",
"maxLength": 3000
}
},
"required": [
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡clockify_create_tag(workspace_id, name)
WRITE: add a tag to a workspace. POST /v1/workspaces/{workspaceId}/tags.
Input Schema
{
"type": "object",
"properties": {
"workspace_id": {
"description": "Workspace id (from clockify_list_workspaces). Default: your active workspace.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Tag name (unique in the workspace)."
}
},
"required": [
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence