The read side is filterable rather than a dump: list_time_entries narrows by user, client, project, task, billing state and date range, and returns paginated results. Deletion is not uniform, and the difference matters — delete_project, delete_task, delete_client and delete_user archive the record and keep its history, while delete_time_entry, delete_invoice, delete_expense and delete_estimate are permanent. Writing time has its own shape too: create_time_entry needs project_id, task_id and spent_date, plus either hours or both started_time and ended_time.
A client for the Harvest time-tracking and billing API, 54 tools reaching from the running timer through projects, tasks, clients and users to invoices, estimates, expenses and reports.
- Time entries and live timers: list_time_entries, get_time_entry, create_time_entry, update_time_entry and delete_time_entry, with start_timer, stop_timer and restart_timer driving a running entry.
- Project structure: list_projects, get_project, create_project, update_project and delete_project carrying budget, hourly_rate and is_billable, plus list_project_task_assignments, create_project_task_assignment, update_project_task_assignment and delete_project_task_assignment for which tasks a project can book against.
- Tasks and clients as their own records: list_tasks, get_task, create_task, update_task, delete_task; list_clients, get_client, create_client, update_client, delete_client.
- People, permissions and rates: list_users, get_user, get_current_user, create_user, update_user and delete_user, covering is_admin, is_project_manager and is_contractor as well as cost_rate and default_hourly_rate.
- Billing documents: list_invoices, get_invoice, create_invoice, update_invoice and delete_invoice alongside list_estimates, get_estimate, create_estimate, update_estimate and delete_estimate, with currency, discount, tax and payment_term.
- Expenses: list_expenses, get_expense, create_expense, update_expense and delete_expense, with list_expense_categories for classification.
- Reporting: get_time_report and get_expense_report with grouping and billable filters, get_project_budget_report for spend against budget, and get_uninvoiced_report for work that has not been billed.
HARVEST_ACCESS_TOKEN and HARVEST_ACCOUNT_ID for the Harvest account the tools act on.
One command plus a key — npm install -g @ianaleck/harvest-mcp-server, then supply credentials
