ClickTime MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.2.4Updated Nov 7, 2026

Read jobs, timesheets and reports; log time, update entries and submit timesheets in ClickTime.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableProductivity & WorkflowData & Analytics

Overview

AI-generated overview

Hosted ClickTime connector that lets an assistant read jobs, timesheets, time off and reports, and log, edit or submit the user's own time.

What you can do
  • Read account context: current user, company settings, jobs, clients, tasks, job-task pairs and job phases
  • Review time entries and timesheets, including per-date status and available submit or recall actions
  • Check time off types and balances, time off taken, time off requests, expense sheets and expense items
  • Run company-wide time reports and grouped time summaries by job, task, user, month, date or work type
  • Log, update and submit or recall the user's own time entries and timesheets
  • Create clients and jobs, and check usage, upgrade or cancel the subscription
When to use it
Useful when someone tracks work in ClickTime and wants an assistant to answer questions about logged hours, open or rejected timesheets, time off balances and project time, or to record and submit their own time without opening the web app.
Requirements
Remote MCP endpoint, no local install. Connect with the server URL only; sign-in uses OAuth and the login page asks for a ClickTime API token from My Preferences (Authentication Token tab), which the server stores per user. Manager or Admin rights are needed for user lists, reports and creating clients or jobs; some tools need the Expenses, TimeOffAccruals or sub-job phase modules enabled.
Before you install
Write tools change ClickTime data: creating time entries is not idempotent and submitting a timesheet locks entries and notifies the approver, so confirm details first. Creating clients or jobs can produce duplicates. The ClickTime API token is entered at login and stored by the third-party host. Usage is metered: free plan 50 calls per month, paid plans cost money and are billed through a checkout link.

Installation

In SourceWeft

  1. Open ClickTime MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fclicktime/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "clicktime-by-usefulapi": {
      "type": "http",
      "url": "https://clicktime.usefulapi.io/mcp"
    }
  }
}

README

ClickTime MCP by usefulapi

Use your ClickTime account from Claude, Cursor, or any MCP client. Read jobs, timesheets, time off and company reports, and log, edit or submit your own time. Hosted, no local install: connect with your own credentials.

Live endpoint: https://clicktime.usefulapi.io/mcp · Homepage: https://usefulapi.io

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://clicktime.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http clicktime https://clicktime.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "clicktime": {      "url": "https://clicktime.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your ClickTime credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/clicktime/

On first connect you provide your ClickTime API token, found in ClickTime under My Preferences, then the Authentication Token tab. The server validates it and stores it per user. No keys go in config files.

Tools

ToolTypeWhat it does
clicktime_get_mereadGet my user
clicktime_get_companyreadGet company settings
clicktime_list_jobsreadList jobs (projects)
clicktime_get_jobreadGet job
clicktime_list_clientsreadList clients
clicktime_list_tasksreadList tasks
clicktime_list_job_task_controlsreadList valid job and task pairs
clicktime_list_job_phasesreadList job phases
clicktime_list_time_entriesreadList my time entries
clicktime_get_time_entryreadGet time entry
clicktime_list_timesheetsreadList my timesheets
clicktime_get_timesheet_by_datereadGet timesheet covering a date
clicktime_list_timesheet_actionsreadList actions available on my timesheet
clicktime_list_time_off_typesreadList time off types and balances
clicktime_list_time_offreadList my time off
clicktime_list_time_off_requestsreadList my time off requests
clicktime_list_expense_sheetsreadList my expense sheets
clicktime_list_expense_itemsreadList my expense items
clicktime_list_usersreadList users
clicktime_time_reportreadTime report (company-wide)
clicktime_time_summaryreadTime summary (grouped)
clicktime_create_time_entrywriteLog time
clicktime_update_time_entrywriteUpdate time entry
clicktime_submit_timesheetwriteSubmit or recall my timesheet
clicktime_create_clientwriteCreate client
clicktime_create_jobwriteCreate job
clicktime_usage_statusmetaUsage status (free-tier meter)
clicktime_request_featuremetaRequest a missing feature
clicktime_upgrademetaUpgrade to Pro or Pro+
clicktime_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per user)$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with clicktime_upgrade (it returns a Stripe Checkout link). Cancel any time with clicktime_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running clicktime_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT — see LICENSE. Documentation only; the server is hosted.

Source: servers/clicktime/README.md at commit 4046075

Tools

26

clicktime_get_me

Get my user

The ClickTime user this API token belongs to: id, name, email, security level (Standard, Manager, Admin), division, default task, approvers and timesheet preferences. The API token itself is never returned. GET /Me.

Takes no parameters.

clicktime_get_company

Get company settings

Company configuration: name, currency, week start, timesheet model, how the company names jobs/clients/tasks, restriction methods, and which optional modules are on (Expenses, TimeOffAccruals, SubJob phases). Call this first before using expense, time-off-request or phase tools. GET /Company.

Takes no parameters.

clicktime_list_jobs

List jobs (projects)

List the jobs (projects) the token's user can log time to, by name, with job number, client, dates and active state. Use the ids to log time or filter entries. GET /Me/Jobs.

Parametersnamelimitoffsetmy_jobsverboseclient_idis_activejob_number

clicktime_get_job

Get job

One job (project) by id: name, number, client, start/end dates, active state. GET /Me/Jobs/{jobID}.

Parametersjob_idrequiredverbose

clicktime_list_clients

List clients

List the clients the token's user can see, with client number, short name and active state. GET /Me/Clients.

Parametersnamelimitoffsetis_activeshort_nameclient_number

clicktime_list_tasks

List tasks

List the tasks (work categories) the token's user can log time against, with task code and active state. When the company restricts tasks per job, use clicktime_list_job_task_controls instead. GET /Me/Tasks.

Parametersnamelimitoffsetmy_tasksis_activetask_code

clicktime_list_job_task_controls

List valid job and task pairs

The (job, task) combinations the user may log time on. Only valid when the company's TaskRestrictionMethod is 'byjob' (see clicktime_get_company); otherwise ClickTime answers 403. Active rows only unless filtered. GET /Me/Jobs/TaskControls.

Parameterslimitjob_idoffsettask_id

clicktime_list_job_phases

List job phases

The phases (sub-jobs, level 1) defined on a job. Needs the company's SubJob/phases module (see clicktime_get_company). Use the phase id when logging time on a phased job. GET /Me/Jobs/{jobID}/JobPhase.

Parameterslimitjob_idrequiredoffset

clicktime_list_time_entries

List my time entries

List the token user's time entries, newest first: date, hours, job, task, comment, start/end time. Filter by one day (entry_date), a date range (start_date + end_date), job or task. Only days with logged time appear. Add verbose to get job/client names and the billable flag. GET /Me/TimeEntries.

Parameterslimitjob_idoffsettask_idverboseend_dateentry_datestart_date

clicktime_get_time_entry

Get time entry

One of the user's time entries by id, with hours, comment, date, job, task, phase and custom fields. GET /Me/TimeEntries/{timeEntryID}.

Parametersverbosetime_entry_idrequired

clicktime_list_timesheets

List my timesheets

List the user's timesheets (pay periods), newest first, with period dates, status (Open, Waiting, Approved, Rejected, Locked...), total hours and who submitted or approved. GET /Me/Timesheets.

Parameterslimitoffsetstatusto_datefrom_date

clicktime_get_timesheet_by_date

Get timesheet covering a date

The user's timesheet whose period contains a given day: period dates, status, day totals and the general actions (Submit, UndoSubmit...). GET /Me/Timesheets/{date}.

Parametersdaterequired

clicktime_list_timesheet_actions

List actions available on my timesheet

The status actions the user can take right now on the timesheet covering a date (Submit, UndoSubmit...). Check this before clicktime_submit_timesheet. GET /Me/Timesheets/{date}/Actions.

Parametersdaterequired

clicktime_list_time_off_types

List time off types and balances

The time off types the user can take (vacation, sick...) with CurrentBalance, accrual and whether approval is required. Use for balance questions. GET /Me/TimeOffTypes.

Parameterslimitoffsetis_activerequires_approval

clicktime_list_time_off

List my time off

Time off the user has taken or booked, newest first: date, hours, type, notes. Not requests or balances. GET /Me/TimeOff.

Parameterslimitoffsetto_datefrom_datetime_off_type_id

clicktime_list_time_off_requests

List my time off requests

The user's time off requests with status and dates. Needs the company's TimeOffAccruals module (see clicktime_get_company). GET /Me/TimeOffRequests.

Parameterslimitoffsetstatusto_datefrom_date

clicktime_list_expense_sheets

List my expense sheets

The user's expense sheets with status, total and reimbursable amount, paid flag. Needs the company's Expenses module (see clicktime_get_company). GET /Me/ExpenseSheets.

Parameterspaidlimitoffsetstatusto_datefrom_date

clicktime_list_expense_items

List my expense items

The user's expense items: date, type, amount, description, job, billable flag, sheet. Receipt images are not fetched. Needs the Expenses module. GET /Me/ExpenseItems.

Parameterslimitjob_idoffsetto_datefrom_dateexpense_sheet_id

clicktime_list_users

List users

List people in the company with name, email, security level, division, approvers and active state. Needs a Manager or Admin token (others get 403). Cost and billing rates are included for Admins. GET /Users.

Parametersnameemaillimitoffsetis_activedivision_id

clicktime_time_report

Time report (company-wide)

Company-wide time entries (what the Time report shows): date, user, job, client, task, hours, billable flag, rates. Filter by date range, user, job, client, task, division or billable. Needs an Admin, or a Manager allowed to run company reports. Up to 2500 rows per page. GET /Reports/Time.

Parameterslimitjob_idoffsettask_iduser_idend_dateclient_idstart_datedivision_idis_billable

clicktime_time_summary

Time summary (grouped)

Hours, billable hours, billings and cost totals grouped by Job, Task, User, Month, Date or WorkType (several groupings combine, for example Job + User). Needs a Manager or Admin token. ClickTime requires at least one of job_id, user_id or task_id as a filter. GET /Reports/TimeSummary.

Parameterslimitjob_idoffsettask_iduser_idend_dategroup_byrequiredstart_datejob_is_active

clicktime_create_time_entry

Log time

WRITE: log a time entry on the token user's own timesheet. Needs job_id and hours; task_id falls back to the user's default task; date defaults to today. Creates a NEW entry each call (not idempotent) and fails on a locked or submitted timesheet. Confirm date, hours, job, task and comment with the user first. POST /Me/TimeEntries.

Parametersdatehoursrequiredjob_idrequiredcommenttask_idend_timephase_idbreak_timestart_timesub_phase_iddcaa_explanation

clicktime_update_time_entry

Update time entry

WRITE: change one of the user's own time entries (hours, comment, job, task, start/end time, break). Only the fields you pass change; the date cannot be changed. Overwrites the previous values; a locked timesheet rejects it. Show the current and new values to the user first. PATCH /Me/TimeEntries/{timeEntryID}.

Parametershoursjob_idcommenttask_idend_timephase_idbreak_timestart_timesub_phase_idtime_entry_idrequireddcaa_explanation

clicktime_submit_timesheet

Submit or recall my timesheet

WRITE: submit the user's timesheet covering a date for approval (action Submit), or recall it (UndoSubmit). Submitting locks the entries and notifies the approver; confirm with the user first. Check the available actions with clicktime_list_timesheet_actions first. POST /Me/Timesheets/{date}/Actions.

Parametersdaterequiredactionrequiredcommenthas_attestation

clicktime_create_client

Create client

WRITE: create a client. Needs an Admin, or a Manager allowed to add clients. Creates a NEW client each call (not idempotent); check clicktime_list_clients first to avoid duplicates. POST /Clients.

Parametersnamerequirednotesis_activeshort_namerequiredclient_number

clicktime_create_job

Create job

WRITE: create a job (project) under a client. Needs an Admin, or a Manager allowed to add jobs. Creates a NEW job each call (not idempotent); check clicktime_list_jobs first to avoid duplicates. POST /Jobs.

Parametersnamerequirednotesend_dateclient_idrequiredis_activejob_numberrequiredstart_dateis_billable

Version history

6
  1. v1.2.4LatestNov 7, 2026
  2. v1.1.3Nov 5, 2026
  3. v1.1.2Nov 5, 2026
  4. v1.1.1Nov 4, 2026
  5. v1.1.0Nov 3, 2026
  6. v1.0.1Nov 3, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations