clokio-mcp
A thin, stateless MCP client for the Clokio Public API (key in X-API-Key) that lets you read and manage tasks, projects/clients, employees, and attendance in natural language — though this schema's ~34 tools are a subset of the README's 137 (no docs, tickets, invoices, timers, attachments, bulk or recurring tools).
Tasks: list with filters (project, status slug, priority, assignee employee_code, label, search, open-only, created_before/due_before) and page or cursor; get one; create (title, description, status, due date, priority, labels, assignees, creator); update (title, status, priority, due date incl. clearing, description); delete (irreversible).
Task extras: set assignees (add / replace / remove by employee_code), list and add comments (attributing an author), read the activity/audit log, list dependencies, add a
blocks/waiting_ondependency (cycles rejected), set one custom field byfield_key(public fields only), bulk status/priority changes via repeated updates.Projects & clients: list projects (name/client search), a project's resolved task statuses, its public custom-field definitions, its client's contacts, get a client by id, add a client contact.
Reference data: organisation-wide task statuses with
is_open, task labels with colours, and locations — use these to resolve valid status slugs and label names.Employees: list with name search, look up a person by name/email to get their
employee_code, per-employee open / delayed / past-due task stats (stale_days1–365), create or reactivate an employee (optional or auto-generated PIN, returned once), set status to active / inactive / resign.Attendance: daily attendance for a date, a range (max 31 days), one employee's attendance, a monthly summary, clock in (optional PIN and location), clock out, start and end breaks.
Time tracking: list time entries filtered by employee and date range, and read leave / hour balances.
Not in this schema (per the README): logging time on tasks and timers, documents, tickets, invoices, attachments and file downloads, bulk updates, recurring series, project status/custom-field editing, webhooks,
whoami, and the reads of images/Markdown conversions.
Sends WhatsApp messages to customers through Clokio tickets: lists a WhatsApp number's approved message templates and the slots to fill, and opens a new ticket by WhatsApp template — sent immediately or saved as a draft for a person to send.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@clokio-mcp What tasks are due this week in the Website Revamp project?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Clokio MCP Server
Changes per release: CHANGELOG.md. After an update, start a new session and check clokio_whoami's mcp_version.
A Model Context Protocol server for the Clokio Public API. Connect Claude - or any MCP client - to your Clokio workspace to read and manage tasks, projects, clients, employees and attendance in natural language.
Every request is authenticated with your own Clokio API key (clk_...),
sent in the X-API-Key header. The key carries its own scopes, so this
server never re-implements authorization: it is a thin, stateless client, and a
403 / 422 from the API is surfaced verbatim.
Auth header: the Clokio Public API accepts the key only in
X-API-Key. AnAuthorization: Bearer <key>header is not recognised and returns401. If you call the API directly (not through this server), useX-API-Key.
Install
You need a Clokio API key. Create and scope keys in the admin dashboard at
Settings → API Keys (/admin/api-keys/). Each person uses their own key, so
permissions and the audit trail stay per-user.
Claude Code
claude mcp add clokio \
--env CLOKIO_API_KEY=clk_your_key_here \
-- npx -y clokio-mcp@latestClaude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"clokio": {
"command": "npx",
"args": ["-y", "clokio-mcp@latest"],
"env": { "CLOKIO_API_KEY": "clk_your_key_here" }
}
}
}Acting as yourself: an employee key
An admin clk_ key reaches the whole organisation. If you are not an admin, or you want
every write bound by your own roles and project permissions, use a personal employee key
instead - any employee can issue one at Profile → API keys:
claude mcp add clokio \
--env CLOKIO_EMPLOYEE_KEY=your_personal_key \
-- npx -y clokio-mcp@latestSet exactly one of CLOKIO_API_KEY / CLOKIO_EMPLOYEE_KEY. In employee mode the server
talks to /api/employee with X-Employee-Key, announces who it is acting as at startup
(acting as Anil Pujara (00081)), and fails there if the key is revoked or expired. It
registers only what that surface allows: your assigned-task queue, reading and creating
tasks where you may, updating, commenting, attachments, logging time, and the whole Docs
module. Nothing takes an employee_code to credit a writer: the key is the identity, and a
403 from Clokio means you may not do that in that project. CLOKIO_TOOLSETS may name
tasks and/or docs (clokio_whoami and clokio_list_projects are always on);
CLOKIO_DEFAULT_ACTOR is refused. Employee mode needs a Clokio server with
GET /api/employee/me (app.clokio.io has it since 2026-10-26). If the startup check cannot
reach Clokio, the server says so and does not blame the key.
Cursor / Cline / Zed / any MCP client
Use the same command - npx -y clokio-mcp@latest with CLOKIO_API_KEY in the env.
MCP is an open standard.
Optional: set CLOKIO_BASE_URL to point at a different Clokio installation
(defaults to https://app.clokio.io).
Optional: set CLOKIO_DEFAULT_ACTOR to an employee_code (e.g. 00055) to
attribute tasks, comments and updates that name no author. You usually do not
need it - an unnamed write is already credited to the person who issued the API
key. Use it only for a shared or service key whose issuer is not the person
acting. An explicit code on a tool call always takes precedence.
Optional: set CLOKIO_TOOLSETS to register only the tool groups you need, e.g.
CLOKIO_TOOLSETS=tasks. This cuts the per-session tool-list cost - a
task-focused session drops from 137 tools to 48. Optional groups are tasks,
employees, attendance (which includes leave, time entries and logging time), docs,
tickets and invoices (read only: needs invoices:read and billing access);
combine them with commas. If your key cannot open documents (no acts-as
employee and no explicit docs scopes), leaving docs out saves 33 tools it
cannot use. The projects group (project/client lookups, task statuses
and labels, and whoami) is always on, because the task tools resolve names
through it.
Related MCP server: Timesheet MCP Server
Tools
137 tools across seven areas. Read-only tools carry the MCP readOnlyHint; writes
are marked mutating (deletes are destructive).
Area | Tools |
Tasks | list (with |
Projects & clients | list projects, project statuses (and create / edit / delete them; a status in use moves its tasks to |
Reference | task statuses, task labels, locations, list webhooks (read-only), whoami |
Employees | list (name search), lookup by PIN, task-stats, inbox (mentions, new assignments, others' status changes; with the tickets toolset, also the acting employee's open tickets), create, set status |
Attendance | daily, range, per-employee, monthly summary, clock in/out, break start/end, time entries (local times in the person's zone; edit / delete your own), leaves (with |
Documents (see Documents for who a key acts as) | list, tree, search, get (Markdown / HTML / JSON), create, replace content, update meta, move, archive, restore, delete, templates + create from template, members (by |
Tickets (see Tickets) | list (filters incl. several labels, created dates, needs reply, sort + cursor), open a new ticket by email or WhatsApp template (sent, or as a draft a person sends; |
Invoices ( | list invoices (client, number, months, several statuses, minimum total; rows carry billable hours), get one (with |
Conventions
People are identified by
employee_code(e.g.00080), not internal ids. Useclokio_list_employees(withsearch) to resolve a name to a code, orclokio_lookup_employee_by_pinfor a kiosk PIN.Shared boards. On a project shared with a client organisation, its people appear on your tasks with
external: trueandorganization {id, name}. List them withclokio_list_project_peopleand assign them as{employee_code, organization_id}: an employee code is unique only within one organisation, so a bare code always means yours.Attribution is automatic. An unnamed write is credited to the key's issuer (see
clokio_whoami), so you rarely set an author. Passcreated_by_employee_code/author_employee_codeonly to credit someone else, or setCLOKIO_DEFAULT_ACTORfor a shared key.Write Markdown. Descriptions and comment bodies accept Markdown (paragraphs, lists,
**bold**,`code`, links, headings, fenced code); the server converts it to the HTML Clokio stores. Text that already starts with an HTML tag is passed through untouched.Status slugs come from
clokio_list_task_statuses/clokio_get_project_statuses.Recurring tasks are templates. Pass
recurrenceon create/update ({frequency, every?, days_of_week?, day_of_month?, anchor?}) and the task becomes the series template; moving it to a done status starts the schedule. A fresh copy (same content, assignees, labels, estimate) is created early on each matching day, due that day, independent of earlier copies. Pause/resume withrecurrence_active, stop withrecurrence: null;recurrence.armedon a task says whether the series is live, a copy names its template asrecurrence.spawned_from, andseries_ofon the list tool returns every occurrence of one series.An API key sees public custom fields only. A dropdown or multi-select value may be the option's value or its label as shown on screen.
Logging time
clokio_log_time, clokio_start_timer, clokio_stop_timer and
clokio_get_active_timer (0.21.0) call /api/v1/time-entries and
/api/v1/timer/*. The time is always the key's acting person's (its
"acts as" employee, else the person who issued it); no tool takes an
employee and the server refuses one.
Scopes:
time_entries:writefor the three writes,time_entries:readfor the running timer.time_entries:writeis part of Full access; a key with chosen permissions must tick it.clokio_log_timetakestask_idand EITHERdate+start+end,date+start+duration_minutes, orduration_minutesalone (the entry then ends now). Times are local to that person. At most 12 hours per entry; nothing may start or end more than 10 minutes in the future; an overlap with another time entry of the same person (their running timer and an overnight entry from the day before included) is refused.clokio_update_time_entryandclokio_delete_time_entry(0.22.0) change or remove one of the acting person's own entries (ids fromclokio_list_time_entries, which prints local times in the person's current zone since 0.23.0, or UTC on an older server); edits take local times in that same zone and get the same checks; a running entry must be stopped before its times change or it is deleted.clokio_start_timeris refused while a timer runs;force: truestops it and starts the new one.clokio_stop_timeris refused when nothing runs.The task must be visible to that person, on an active project of your organisation; a board another organisation shared with you is refused.
Documents
The Docs tools call /api/v1/docs... with the same CLOKIO_API_KEY as
everything else, but documents are permissioned per person, so every
docs call acts as one employee - the key's effective actor:
The key's "acts as" employee, when it has one (set in Settings > API keys). Only an admin may make a key act as someone else.
Otherwise, the person who created the key - when the key has Full access or lists
docs:read/docs:write. Keys converted from the old wildcard*with no acts-as employee do not hold them, so such an integration key never opens its creator's private documents.
So, to use the Docs tools, either set an acts-as employee on the key, or add
docs:read and docs:write to its scope list (it then acts as you, its
creator). Otherwise every docs tool answers 403, the same for every
document id.
Scopes: docs:read for the read tools (every GET) and docs:write for
everything else. Full access includes both; a key with chosen permissions
must include them (otherwise 403 naming required_scope).
The key then sees exactly what its acting employee sees and can do on the web, never more, and writes (comments, versions, activity) are attributed to that employee:
A document the employee cannot see answers
404, the same as one that does not exist (the API never confirms an id to someone not allowed to know it).A visible document they may not change answers
403.Two separate gates, both named in each tool's description:
the employee's role must hold the section permission:
docs.viewfor reads,docs.createfor creating, editing, moving, archiving, comments, version restores and uploads,docs.managefor delete, members, teams and share links (and for standalone documents). A403Forbidden: Insufficient permissionsmeans this gate refused;the document role,
view<comment<edit<admin. A403with any other message means that role is too low.
Tool | Endpoint |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Working with documents:
Every docs tool answers
{data}or{data, meta}, like the task tools: the record or rows indata; paging, counts, your role and permissions inmeta.clokio_get_docputs the record and its body together indata.Listing covers every scope by default.
project_idnarrows it: a project id,"none"for standalone documents only, or"all"(default).Read as Markdown, write as Markdown.
clokio_get_docreturns Markdown by default (format: "html"or"json"for the others) without the title; passinclude_title: trueto start the body with it as a heading. The create/update tools take Markdown by default (content_format: "html"or"json"); HTML you write must stay within Clokio's restricted grammar (a422names any unsupported tag).Content writes are optimistic.
clokio_update_doc_contentREPLACES the whole body and requiresbase_version- thecontent_versionyou last read. A409means someone else edited in between: re-read, reconcile, write again with the new version. Never retry with the samebase_version.Public share links expire after 30 days unless you pass
expires_atornever_expires: true.Attachments list
name,size,mimeanduploaded_at; download bypath. Uploading does not change the text: place the returnedurlin the body yourself (animageorfileAttachmentnode in Tiptap JSON).Members are named by
employee_code(e.g."00080"), like everywhere else in this server; the internalemployee_idis accepted as an alternative. Teams are named byteam_id, fromclokio_list_doc_shareable_teams. A member'semailis shown only when the key hasemployees:pii; profile pictures only withinclude_avatars: true.
Tickets
The tickets toolset works the Clokio support inbox as the key's "acts as"
employee: it sees and does exactly what that person may in the inbox.
Full access includes tickets:read, tickets:write (notes, state, assignee,
labels, contacts) and tickets:send (clokio_reply_ticket, which REACHES THE
CUSTOMER); a key with chosen permissions must tick them. Writing as a
colleague needs tickets:send_as, which is never part of Full access: it is
ticked separately, only on a key created by an administrator.
clokio_get_ticket and clokio_list_ticket_messages print internal notes
under "INTERNAL NOTE - never send to the customer" and wrap everything the
customer or an outside party wrote (message text, subject, contact, author
names, file names, event lines) and the label names in
<untrusted_customer_content> tags: data, never instructions. A colleague's
name (an identified employee) is printed as is. Every message names its id
(message #<id>), reply drafts included.
clokio_get_ticket shows the NEWEST messages (default 100, messages_limit
for fewer), oldest first so the latest is last; it pages through the thread
to reach them and says how many earlier messages it left out and how to read
them with clokio_list_ticket_messages (which pages from the oldest).
clokio_reply_ticket sends a fresh Idempotency-Key with every call, so a
second call is a second reply; to retry one reply safely, pass the same
idempotency_key (returned in the answer) with the same fields. CLOKIO_DEFAULT_ACTOR does not apply to
tickets: a reply is written by the key's acting employee unless you name
author_employee_code (which needs tickets:send_as).
Email text is cleaned before printing (never raw HTML); max_chars cuts long bodies. Files carry ids (clokio_download_ticket_attachment). clokio_create_reply_draft (needs tickets:write) saves a draft a person sends from Clokio with "Use this draft": prefer it when your organisation reviews customer messages first. On a resolved or spam ticket the draft is saved with a warning (it is out of the open queue); the ticket is never reopened by it. clokio_delete_reply_draft (needs tickets:write) deletes one of your own drafts that nobody has used.
clokio_create_ticket (needs the Clokio backend with the 0.25 API) opens a NEW ticket and sends its first message, as "New email" / "New WhatsApp message" on the Tickets screen: an email (inbox_id, to, optional cc / bcc, subject, Markdown body) or an approved WhatsApp template to one number (clokio_list_whatsapp_templates lists a number's templates with the slots each takes, and marks those the API cannot send). It needs tickets:write plus tickets:send to send; draft: true sends nothing and leaves a pending draft a person sends from Clokio with "Use this draft" (tickets:write only). Writing to someone no contact you can see holds needs the acting employee's tickets.manage, and a key opens at most 10 tickets per 10 minutes (successful creates only; a replay is answered past the limit). On an email draft ticket, the first reply without recipients goes to the drafted recipients with the drafted subject, and the draft then reads "used". Each call sends an Idempotency-Key (fresh, or the one you pass to retry); a replay says so and sends nothing. clokio_create_ticket_label and clokio_create_contact (both need tickets.manage) add a label or a contact; a contact whose address or number a contact you can see already holds is a 409 naming that contact. clokio_list_tickets takes label_ids, created_after / created_before, needs_reply and sort (pass the same sort with a cursor).
Files on an outgoing email (needs the Clokio backend with POST /tickets/attachments): clokio_create_ticket (email, not a draft) and clokio_reply_ticket (a ticket of a connected Gmail / Microsoft 365 mailbox) take file_paths (files on this machine; the tool uploads them) and / or attachment_ids (from clokio_upload_ticket_attachment). Up to 5 files, each at most 10 MB and together within 10 MB: pdf, images, doc / docx, xls / xlsx, txt, csv, zip. They go out as real attachments. An uploaded id belongs to the acting employee, is used once and expires after 24 hours. A retry with the same idempotency_key in the same session reuses the files already uploaded, so the retry replays instead of sending twice. clokio_update_ticket takes send_survey: false with state: "resolved" to close a ticket without the satisfaction survey.
A replayed idempotent write (a reply, a task from a ticket, a new ticket) says it was replayed and that nothing new was made. The ticket API names a missing project ("That project is not available.") and a missing draft ("This draft no longer exists."); those come back as they are, and only a plain "Not found." adds that an older server is one possible cause.
clokio_create_task_from_ticket opens a task linked to the ticket, as the ticket screen's "Task" button does, and copies the ticket files you name into it (a file tasks refuse is listed in skipped_files). It needs BOTH tickets:write and tasks:write, and the acting employee's own right to create tasks in that project. Each call sends an Idempotency-Key (a fresh one, returned in the answer, or the one you pass to retry). clokio_list_ticket_tasks (needs tickets:read and tasks:read) lists the tasks opened from a ticket, and clokio_get_task names the ticket a task came from (linked_ticket).
A customer's work (needs the Clokio backend with task #6204): clokio_get_contact names the client (company) a contact is linked to, and clokio_get_contact_client (needs tickets:read AND tasks:read, and the acting employee's tickets.view_all) answers "what is the status of my task?": the client, its active projects with their open task counts, its open tasks nearest due first (status, due date, OVERDUE, assignees, link; at most 8, or up to 100 with all: true) and the last 5 tasks done in 60 days. Only what the acting employee may see is listed.
Reports (needs the Clokio backend with the ticket reports API): clokio_ticket_report_overview, _agents, _satisfaction, _satisfaction_ratings and _workload answer the four Tickets > Reports tabs with the web's numbers. They take from / to (YYYY-MM-DD, the organisation's time zone, default the last 30 days, at most 366), inbox_id, label (an id or none) and, except the overview, team_id; the ratings list also takes page and low. The acting employee needs tickets.reports (403 otherwise), restricted channels they are not granted are not counted, AI answer quality is not part of the API, and agent availability appears only when they may open the Daily Attendance board. At most 30 report calls a minute per key. Rating comments, ticket titles and contact names are wrapped as untrusted content.
Security
The server contains no secrets. Your API key lives only in your local environment (
CLOKIO_API_KEY), never in this code or repository.The key is sent only to
/api/v1: a path argument cannot steer a request outside it, and the key is never forwarded on a redirect (attachment downloads that redirect to signed storage are followed with no credential attached).The server adds no permissions. What a key can do is decided by the Clokio API from that key's scopes - this server only forwards the request. Scope each key to what its holder needs.
All authorization, tenancy (
organization_idscoping) and rate limiting are enforced server-side by the Clokio API, exactly as for any other API consumer.
Local development
git clone https://github.com/AmitMatat/clokio-mcp.git
cd clokio-mcp
npm install # includes devDependencies (typescript)
npm run build # rebuilds dist/The prebuilt dist/ is committed so npx can run the server with no build step
(this also keeps it working when NODE_ENV=production, where npm skips
devDependencies). Rebuild and commit dist/ alongside any source change.
The tool surface tracks the Clokio Public API v1; its OpenAPI spec is served
(unauthenticated) at /api/v1/openapi.json and is the source of truth for
request shapes.
License
MIT © Matat Technologies LTD
Available Tools
36 toolsclokio_add_client_contactC
Add a contact to a client.
Inputs: name (required), client_id (required), role, email, +1 more.
clokio_add_task_commentA
Add a comment to a task. Set author_employee_code to attribute it to a person; otherwise it shows as the API key owner ("External System"). Use readable formatting (paragraphs, bullet lists); markdown tables are not rendered.
Inputs: id (required), body (required), author_employee_code.
clokio_add_task_dependencyB
Add a dependency between two tasks. Circular dependencies are rejected by the API.
Inputs: id (required), depends_on_task_id (required), type.
clokio_attendance_dailyARead-only
Attendance for a single date (YYYY-MM-DD, defaults to today).
Inputs: date.
clokio_attendance_for_employeeBRead-only
One employee's attendance. Optionally scope to a date range.
Inputs: employee_code (required), end_date, start_date.
clokio_attendance_rangeARead-only
Attendance for a date range (max 31 days).
Inputs: end_date (required), start_date (required).
clokio_attendance_summaryCRead-only
Monthly attendance summary.
Inputs: month.
clokio_break_endC
End a break for an employee.
Inputs: employee_code (required), pin.
clokio_break_startC
Start a break for an employee.
Inputs: employee_code (required), pin.
clokio_clock_inA
Clock an employee in. A PIN may be required depending on org configuration. Timestamps are clamped to +/-10 minutes of server time.
Inputs: employee_code (required), pin, location_id.
clokio_clock_outC
Clock an employee out.
Inputs: employee_code (required), pin.
clokio_create_employeeA
Create (or reactivate) an employee. Reactivating an existing inactive employee never resets their password. A pin (4-6 digits, org-unique) can be supplied or is auto-generated; it is returned only here.
Inputs: name (required), pin, email, phone, +1 more.
clokio_create_taskB
Create a task in a project. assignees/creator use employee_code (e.g. "00080"), not internal ids. To attribute the task to a person set creator_employee_code, otherwise it shows as the API key owner.
Inputs: title (required), project_id (required), status, due_date, +5 more.
clokio_delete_taskADestructive
Delete a task by id. This is irreversible.
Inputs: id (required).
clokio_get_balancesCRead-only
Leave / hour balances.
Inputs: employee_code.
clokio_get_clientARead-only
Get a client by id.
Inputs: client_id (required).
clokio_get_employee_task_statsARead-only
One employee's open / delayed_from_open / past_due task counts. stale_days sets the 'delayed' threshold (default 7, range 1-365). A task with N assignees counts for each of them.
Inputs: employee_code (required), stale_days.
clokio_get_project_contactsCRead-only
The contacts for a project's client.
Inputs: project_id (required).
clokio_get_project_custom_fieldsBRead-only
A project's custom-field definitions, in sort order. An API key sees PUBLIC fields only.
Inputs: project_id (required).
clokio_get_project_statusesARead-only
A project's resolved task-status set, in order (what a task in this project may become).
Inputs: project_id (required).
clokio_get_taskARead-only
Get one task by id, with its full detail (assignees, labels, status, custom fields, task_url).
Inputs: id (required).
clokio_get_task_activityBRead-only
Get the activity log (audit trail) for a task.
Inputs: id (required).
clokio_list_employeesARead-only
List employees. Returns employee_code (the stable id used everywhere else, e.g. for assignees), name, and non-PII fields. email is only returned if the key holds the employees:pii scope.
Inputs: page, search.
clokio_list_locationsARead-only
List the organisation's locations.
Inputs: no named parameters.
clokio_list_projectsARead-only
List projects, optionally filtered by a search term (name / client).
Inputs: search.
clokio_list_task_commentsARead-only
List the comments on a task.
Inputs: id (required).
clokio_list_task_dependenciesARead-only
List a task's dependencies (blocks / waiting-on).
Inputs: id (required).
clokio_list_task_labelsARead-only
List the available task labels (tags), with names and colors.
Inputs: no named parameters.
clokio_list_tasksARead-only
List tasks. Supports filters: project_id, status (slug), priority, assignee (employee_code), label, search, open (1 = only open tasks), created_before / due_before (YYYY-MM-DD, org timezone). Paginate with page, or crawl with cursor. Each task carries a task_url.
Inputs: open, page, label, cursor, +7 more.
clokio_list_task_statusesARead-only
The organisation-wide task-status vocabulary, with is_open per slug (including project-specific slugs). Use this to discover valid status slugs before creating/updating a task.
Inputs: no named parameters.
clokio_list_time_entriesARead-only
List time-tracking entries. Filterable by employee_code and date range.
Inputs: end_date, start_date, employee_code.
clokio_lookup_employeeARead-only
Look up an employee by name or email to resolve their employee_code. Use this before assigning a task when you only know the person's name.
Inputs: name, email.
clokio_set_employee_statusC
Set an employee's status (active / inactive / resign).
Inputs: status (required), employee_code (required).
clokio_set_task_assigneesA
Set a task's assignees. mode "add" appends, "replace" overwrites, "remove" removes. Assignees are employee_codes (e.g. "00080").
Inputs: id (required), employee_codes (required), mode.
clokio_set_task_custom_fieldA
Set one custom field value on a task, identified by field_key (never field_id). An API key sees PUBLIC fields only.
Inputs: id (required), value (required), field_key (required).
clokio_update_taskA
Update a task. Only the fields you pass are changed. status/priority/title/description/due_date are supported.
Inputs: id (required), title, status, due_date, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 36 tools
Every tool has a clearly distinct purpose: tasks, projects, employees, attendance, time entries, balances, comments, dependencies, custom fields. Even similar tools like attendance_daily vs attendance_range are scoped differently. No two tools appear to do the same thing.
All tools share the clokio_ prefix followed by a consistent verb_noun pattern (list_, get_, create_, update_, delete_, set_, add_, clock_in, break_start). The minor variation between 'add' and 'create' aligns with resource types and is predictable.
36 tools is on the higher end, but the server covers a broad domain (project management and HR), so each tool earns its place. It's not bloated with redundant or trivial tools, and the count is justified by the scope.
The tool surface is quite complete for tasks (full CRUD plus assignees, comments, dependencies, custom fields, activity) and employees (create, status, attendance, stats). Minor gaps exist, like no client creation or project update, but these don't break core workflows.
Maintenance
Related MCP Connectors
Connects AI assistants to TrackingTime for querying time entries, projects, tasks, customers, and team data using natural language.
Track time in Clockify: time entries, projects, clients, tags and reports; start, stop and log time.
Read your tracked time and projects, pause tracking or add a note, from Claude or ChatGPT.
Connect Claude, ChatGPT or any MCP client to your Atwork sheets, tasks, pages and dashboards.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Clockify time tracking API to manage time entries, projects, tasks, and workspaces through natural language commands.33 npm5ISC

Timesheet MCP Serverofficial
AlicenseBqualityBmaintenanceEnables natural language control of the Timesheet API for timer management, task tracking, and project management through MCP tools.50103 npm1MIT- AlicenseCqualityCmaintenanceEnables interacting with Clockify time-tracking data through natural language, providing tools to manage workspaces, projects, time entries, reports, and more via the MCP protocol.4843 PyPI1MIT
- AlicenseNot gradedqualityCmaintenanceEnables natural language time tracking and booking for WorkTracker via MCP tools, allowing users to assign time, list projects, and manage daily schedules through conversational commands.MIT