Tick MCP by usefulapi

io.usefulapi/tick

Read Tick clients, projects, tasks, users and time entries; log and edit time entries.

Yes, your AI can use this right now.Answered a live MCP handshake in 134 ms with no sign-in needed and exposes 14 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://tick.usefulapi.io/mcp

14 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
tick_list_clientsread-only

List Tick clients. By default only clients that have open projects; set include_all=true for every client (also archived or without projects). 100 per page. GET /clients.json or /clients/all.json.

tick_get_clientread-only

One client by id, with a summary of its projects (count and URL). GET /clients/{id}.json.

tick_list_projectsread-only

List Tick projects with budget (hours or money), billable flag, client_id and owner_id. Open projects by default; status=closed for closed ones. 100 per page. GET /projects.json or /projects/closed.json.

tick_get_projectread-only

One project by id, with total_hours entered, a summary of its tasks (count and URL) and its client. GET /projects/{id}.json.

tick_list_tasksread-only

List Tick tasks (the budget lines that time entries are logged against). Across all projects, or for one project when project_id is given. Open tasks by default; status=closed for closed ones. You need a task id to log time. 100 per page. GET /tasks.json, /tasks/closed.json, /projects/{id}/tasks.json or /projects/{id}/tasks/closed.json.

tick_get_taskread-only

One task by id, with total_hours entered, a summary of its entries (count and URL) and its project. GET /tasks/{id}.json.

tick_list_usersread-only

List the users of the Tick subscription (id, name, e-mail, timezone). A non-administrator sees only themself. Use deleted=true for removed users who still have time entries (administrators only). GET /users.json or /users/deleted.json.

tick_list_entriesread-only

List time entries. Tick requires EITHER start_date AND end_date (entries dated in that range) OR updated_at (entries created or changed after that time). Optional filters: project_id, task_id, user_id, billable, billed. Each entry has date, hours, notes, task_id, user_id. 100 per page. GET /entries.json.

tick_get_entryread-only

One time entry by id, with its task. GET /entries/{id}.json.

tick_create_entry

WRITE: log a new time entry on a task (POST /entries.json). Needs the task id (see tick_list_tasks). hours is a decimal (1.5 = 1h30m). user_id is only honored for administrators (otherwise the entry is yours). Creates a new entry every call; nothing is sent to anyone.

tick_update_entrycan modify

WRITE: change an existing time entry (PUT /entries/{id}.json): hours, notes, date, task, or mark it billed. Only the fields you pass change; the previous values are overwritten.

tick_create_client

WRITE: create a new client (POST /clients.json). Tick administrators only (403 otherwise). Creates a new client every call.

tick_create_project

WRITE: create a new project (POST /projects.json). Tick administrators only. The project has no tasks: create at least one with tick_create_task before time can be logged. Creates a new project every call.

tick_create_task

WRITE: create a new task on a project (POST /tasks.json). Tick administrators only. Creates a new task every call.

Alternatives in Productivity

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”