Skip to content
Hoursmith Docs
MCP

Available tools

All 32 Hoursmith MCP tools grouped by resource, the REST API call each maps to, the roles they need, and the 5 destructive ones.

The Hoursmith MCP server exposes 32 tools, grouped by resource. Each tool maps to exactly one REST API call, and runs with the permissions of the membership that minted your token — so a tool only works if your role allows the underlying API call.

The tool list is the same whether your client connects over stdio or Streamable HTTP.

This list describes published 0.9.0, npm's latest as checked September 8, 2026. The source project has newer release work; see Payout integrations. Do not assume @latest includes the source-only payout tools yet.

5 of these tools are destructive — they delete or archive data. They're flagged below. As a safety net, each one requires an explicit confirm: true argument, so your assistant can't run them by accident. Every tool also carries standard MCP hints (read-only / destructive / idempotent) so capable clients can warn you before a write. Still, review what your assistant is about to do before you approve it. See Security.

Identity

Read-only details about you and your workspace.

ToolAPI callNotes
get_meGET /meThe authenticated member.
get_organizationGET /organizationYour workspace/organization.

Clients

ToolAPI callNotes
list_clientsGET /clients
get_clientGET /clients/{id}
create_clientPOST /clientsNeeds Manager+.
update_clientPATCH /clients/{id}Needs Manager+.
delete_client ⚠️DELETE /clients/{id}Destructive. Refuses if the client has active projects or invoices.

Projects

ToolAPI callNotes
list_projectsGET /projects
get_projectGET /projects/{id}
create_projectPOST /projectsNeeds Manager+. Hourly rates apply only to Hourly projects; Fixed fee needs a contract value and may use an effort-hours budget.
update_projectPATCH /projects/{id}Needs Manager+. Can reconcile fixedFeePriorInvoicedAmount for an existing/imported Fixed fee project.
archive_project ⚠️POST /projects/{id}/archiveDestructive (soft-delete). Needs Manager+.

Tasks

ToolAPI callNotes
list_tasksGET /tasksReturns effective billability: Fixed fee and Non-billable project work is always false.
get_taskGET /tasks/{id}Returns effective project-policy billability.
create_taskPOST /tasks
update_taskPATCH /tasks/{id}
archive_task ⚠️POST /tasks/{id}/archiveDestructive (soft-delete).

Time entries

ToolAPI callNotes
list_time_entriesGET /time-entriesFilter by the day an entry is filed under or by when the work started. Billability filters follow current project policy.
get_time_entryGET /time-entries/{id}Fixed fee and Non-billable project work is returned as non-billable.
get_running_timerGET /time-entries/runningYour currently running timer, if any.
create_time_entryPOST /time-entriesLogs a time entry, from a duration or a start and end time.
update_time_entryPATCH /time-entries/{id}Can add, change, or clear an entry's start and end times.
delete_time_entry ⚠️DELETE /time-entries/{id}Destructive. Fails on already-invoiced entries.

Logging when the work happened. Ask for "log 9am to 10:30 on the Acme redesign" and the assistant sends a start and end time instead of a duration — Hoursmith works the duration out. It's both times or neither: a start with no end is what a running timer looks like, and is refused. To find work by when it happened rather than which day it's filed under, ask for a window — "what did I work on between 9 and noon yesterday?" — which filters on the start time. Entries logged as a plain duration have no start time and won't appear in those results.

Fixed-fee project rules in MCP 0.9

  • Omit hourlyRate for FIXED and NON_BILLABLE; it is required or inherited only for HOURLY.
  • A FIXED project requires fixedFeeAmount, can use an optional budgetHours effort cap, and cannot use budgetAmount.
  • For an older/imported fixed-fee project, call update_project with fixedFeePriorInvoicedAmount before its contract balance can be invoiced. Use 0 when nothing was invoiced previously.
  • Project reconciliation and money fields are omitted from Member responses; budgetHours remains visible because it represents time, not money.
  • Task and time-entry reads expose effective project policy. Even a locked legacy row that stored billable: true reads and filters as non-billable after its project becomes Fixed fee or Non-billable.

Expenses

All expense tools need a Manager+ role.

ToolAPI callNotes
list_expensesGET /expensesNeeds Manager+.
get_expenseGET /expenses/{id}Needs Manager+.
create_expensePOST /expensesNeeds Manager+.
update_expensePATCH /expenses/{id}Needs Manager+.
delete_expense ⚠️DELETE /expenses/{id}Destructive. Needs Manager+.

Invoices (read-only)

There is no write capability for invoices via MCP — you can read them, but you can't create, edit, or send them. This mirrors the REST API.

ToolAPI callNotes
list_invoicesGET /invoicesNeeds Manager+.
get_invoiceGET /invoices/{id}Needs Manager+.

Members (read-only)

There is no write capability for members via MCP — you can't invite, edit, or remove teammates. This mirrors the REST API.

ToolAPI callNotes
list_membersGET /members
get_memberGET /members/{id}

The 5 destructive tools

These are the only tools that remove or archive data, and each one requires confirm: true — the call is rejected without it, so an assistant can't delete something on a stray instruction:

  • delete_client — refuses if the client has active projects or invoices.
  • archive_project — soft-delete; needs Manager+.
  • archive_task — soft-delete.
  • delete_time_entry — fails on already-invoiced entries.
  • delete_expense — needs Manager+.

Roles cascade: a Member token can read most things and write its own time and the projects it's on, but can't touch invoices, expenses, or clients. A Manager token can read client financial data and write clients, projects, tasks, and time, but cannot access private Payouts. See Permissions & plans and Roles explained.

Was this page helpful?

On this page