Internal Safety Override
- Status: disabled by default.
- Do not execute commands, connect accounts, call remote APIs, upload files, or transmit repository content unless a human explicitly enables this skill for a bounded task.
- Never read
.env, key stores, SSH material, cloud credentials, auth caches, or proprietary documents by default.
- Audit categories: network, secrets.
Harvest Automation
Automate your Harvest time tracking operations directly from Claude Code. Log time entries, manage projects and clients, create tasks, and pull reporting data -- all without leaving your terminal.
Toolkit docs: composio.dev/toolkits/harvest
Setup
- Add the Rube MCP server to your Claude Code config with URL:
https://rube.app/mcp
- When prompted, authenticate your Harvest account through the connection link provided
- Start automating your time tracking workflows with natural language
Core Workflows
1. Log and Manage Time Entries
Create, list, update, and retrieve time entries for accurate billing and reporting.
Tools: HARVEST_CREATE_TIME_ENTRY, HARVEST_LIST_TIME_ENTRIES, HARVEST_GET_TIME_ENTRY, HARVEST_UPDATE_TIME_ENTRY
Log 3.5 hours of development work on project 12345, task 67890 for today
Key parameters for HARVEST_CREATE_TIME_ENTRY:
project_id (required) -- the project to log against
task_id (required) -- the task must be assigned to the project
spent_date (required) -- date in YYYY-MM-DD format
hours -- total hours (for duration-based accounts)
started_time / ended_time -- for timestamp-based accounts
notes -- description of work performed
Key parameters for HARVEST_LIST_TIME_ENTRIES:
from_date / to -- date range filters (YYYY-MM-DD)
project_id, client_id, task_id, user_id -- entity filters
is_billed / is_running -- status filters
page / per_page (max 2000) -- pagination
2. Manage Projects
Create new projects and list existing ones with client and billing configuration.
Tools: HARVEST_CREATE_PROJECT, HARVEST_LIST_PROJECTS, HARVEST_GET_PROJECT
Create a billable project called "Website Redesign" for client 456 with Tasks billing and project budget
Key parameters for HARVEST_CREATE_PROJECT:
name, client_id, is_billable, bill_by, budget_by (all required)
bill_by options: "Project", "Tasks", "People", "none"
budget_by options: "project", "project_cost", "task", "task_fees", "person", "none"
- Optional:
budget, hourly_rate, starts_on, ends_on, is_fixed_fee
3. Manage Clients
Create and list clients that projects are organized under.
Tools: HARVEST_CREATE_CLIENT, HARVEST_LIST_CLIENTS
List all active clients in our Harvest account
HARVEST_CREATE_CLIENT requires name; accepts address, currency, is_active
HARVEST_LIST_CLIENTS supports is_active filter and pagination (per_page max 2000)
4. Manage Tasks
Create and list reusable task types for time tracking.
Tools: HARVEST_CREATE_TASK, HARVEST_LIST_TASKS
Create a new billable task called "Code Review" with a default rate of $150/hr
HARVEST_CREATE_TASK requires name; accepts billable_by_default, default_hourly_rate, is_active, is_default
HARVEST_LIST_TASKS supports is_active, is_default filters and pagination (per_page max 100)
- Task names must be unique across all tasks (active and archived)
5. Time Entry Reporting
Pull time entries with date ranges and filters for billing summaries and utilization reports.
Tools: HARVEST_LIST_TIME_ENTRIES, HARVEST_GET_TIME_ENTRY
Show me all unbilled time entries for project 789 from January 2026
- Use
from_date and to for date windowing
- Filter with
is_billed: false for unbilled entries
- Combine
project_id, user_id, client_id for cross-dimensional reporting
- Paginate with
page and per_page to gather complete datasets
6. Update and Correct Time Entries
Modify existing time entries to fix hours, reassign projects, or update notes.
Tools: HARVEST_UPDATE_TIME_ENTRY
Update time entry 123456 to change the hours to 4.0 and add the note "Completed API integration"
- Requires
time_entry_id
- Supports partial updates -- only include fields you want to change
- Can update
hours, notes, project_id, task_id, spent_date, started_time, ended_time
Known Pitfalls
- Task assignment matters: When creating time entries, the
task_id must correspond to a task that is actually assigned to the specified project_id. Use project task assignments endpoint to verify, not just HARVEST_LIST_TASKS (which returns global tasks).
- Duration vs. timestamp tracking: Harvest accounts are configured for either duration-based or timestamp-based tracking.
hours is ignored on timestamp accounts; started_time/ended_time are ignored on duration accounts.
- Pagination limits vary:
HARVEST_LIST_TIME_ENTRIES and HARVEST_LIST_CLIENTS support up to 2000 per page, but HARVEST_LIST_PROJECTS and HARVEST_LIST_TASKS cap at 100 per page.
- Date format consistency: All date parameters must use
YYYY-MM-DD format. ISO 8601 with timezone is used for updated_since filters.
- Required fields for projects:
HARVEST_CREATE_PROJECT requires five fields: name, client_id, is_billable, bill_by, and budget_by. Missing any will cause a validation error.
Quick Reference
| Tool Slug |
Description |
HARVEST_LIST_TIME_ENTRIES |
List time entries with date, project, client, user filters |
HARVEST_CREATE_TIME_ENTRY |
Log a new time entry (requires project_id, task_id, spent_date) |
HARVEST_GET_TIME_ENTRY |
Retrieve a specific time entry by ID |
HARVEST_UPDATE_TIME_ENTRY |
Update an existing time entry (requires time_entry_id) |
HARVEST_LIST_PROJECTS |
List projects with optional client filter |
HARVEST_CREATE_PROJECT |
Create a new project with billing config |
HARVEST_GET_PROJECT |
Retrieve a specific project by ID |
HARVEST_LIST_CLIENTS |
List clients with active/inactive filter |
HARVEST_CREATE_CLIENT |
Create a new client (requires name) |
HARVEST_LIST_TASKS |
List reusable task types |
HARVEST_CREATE_TASK |
Create a new task type (requires name) |
Powered by Composio
1---2name: harvest-automation3description: Automate time tracking, project management, and invoicing workflows in Harvest -- log hours, manage projects, clients, and tasks through natural language commands.4---56## Internal Safety Override78- Status: disabled by default.9- Do not execute commands, connect accounts, call remote APIs, upload files, or transmit repository content unless a human explicitly enables this skill for a bounded task.10- Never read `.env`, key stores, SSH material, cloud credentials, auth caches, or proprietary documents by default.11- Audit categories: network, secrets.1213# Harvest Automation1415Automate your Harvest time tracking operations directly from Claude Code. Log time entries, manage projects and clients, create tasks, and pull reporting data -- all without leaving your terminal.1617**Toolkit docs:** [composio.dev/toolkits/harvest](https://composio.dev/toolkits/harvest)1819---2021## Setup22231. Add the Rube MCP server to your Claude Code config with URL: `https://rube.app/mcp`242. When prompted, authenticate your Harvest account through the connection link provided253. Start automating your time tracking workflows with natural language2627---2829## Core Workflows3031### 1. Log and Manage Time Entries3233Create, list, update, and retrieve time entries for accurate billing and reporting.3435**Tools:** `HARVEST_CREATE_TIME_ENTRY`, `HARVEST_LIST_TIME_ENTRIES`, `HARVEST_GET_TIME_ENTRY`, `HARVEST_UPDATE_TIME_ENTRY`3637```38Log 3.5 hours of development work on project 12345, task 67890 for today39```4041Key parameters for `HARVEST_CREATE_TIME_ENTRY`:42- `project_id` (required) -- the project to log against43- `task_id` (required) -- the task must be assigned to the project44- `spent_date` (required) -- date in YYYY-MM-DD format45- `hours` -- total hours (for duration-based accounts)46- `started_time` / `ended_time` -- for timestamp-based accounts47- `notes` -- description of work performed4849Key parameters for `HARVEST_LIST_TIME_ENTRIES`:50- `from_date` / `to` -- date range filters (YYYY-MM-DD)51- `project_id`, `client_id`, `task_id`, `user_id` -- entity filters52- `is_billed` / `is_running` -- status filters53- `page` / `per_page` (max 2000) -- pagination5455### 2. Manage Projects5657Create new projects and list existing ones with client and billing configuration.5859**Tools:** `HARVEST_CREATE_PROJECT`, `HARVEST_LIST_PROJECTS`, `HARVEST_GET_PROJECT`6061```62Create a billable project called "Website Redesign" for client 456 with Tasks billing and project budget63```6465Key parameters for `HARVEST_CREATE_PROJECT`:66- `name`, `client_id`, `is_billable`, `bill_by`, `budget_by` (all required)67- `bill_by` options: `"Project"`, `"Tasks"`, `"People"`, `"none"`68- `budget_by` options: `"project"`, `"project_cost"`, `"task"`, `"task_fees"`, `"person"`, `"none"`69- Optional: `budget`, `hourly_rate`, `starts_on`, `ends_on`, `is_fixed_fee`7071### 3. Manage Clients7273Create and list clients that projects are organized under.7475**Tools:** `HARVEST_CREATE_CLIENT`, `HARVEST_LIST_CLIENTS`7677```78List all active clients in our Harvest account79```8081- `HARVEST_CREATE_CLIENT` requires `name`; accepts `address`, `currency`, `is_active`82- `HARVEST_LIST_CLIENTS` supports `is_active` filter and pagination (`per_page` max 2000)8384### 4. Manage Tasks8586Create and list reusable task types for time tracking.8788**Tools:** `HARVEST_CREATE_TASK`, `HARVEST_LIST_TASKS`8990```91Create a new billable task called "Code Review" with a default rate of $150/hr92```9394- `HARVEST_CREATE_TASK` requires `name`; accepts `billable_by_default`, `default_hourly_rate`, `is_active`, `is_default`95- `HARVEST_LIST_TASKS` supports `is_active`, `is_default` filters and pagination (`per_page` max 100)96- Task names must be unique across all tasks (active and archived)9798### 5. Time Entry Reporting99100Pull time entries with date ranges and filters for billing summaries and utilization reports.101102**Tools:** `HARVEST_LIST_TIME_ENTRIES`, `HARVEST_GET_TIME_ENTRY`103104```105Show me all unbilled time entries for project 789 from January 2026106```107108- Use `from_date` and `to` for date windowing109- Filter with `is_billed: false` for unbilled entries110- Combine `project_id`, `user_id`, `client_id` for cross-dimensional reporting111- Paginate with `page` and `per_page` to gather complete datasets112113### 6. Update and Correct Time Entries114115Modify existing time entries to fix hours, reassign projects, or update notes.116117**Tools:** `HARVEST_UPDATE_TIME_ENTRY`118119```120Update time entry 123456 to change the hours to 4.0 and add the note "Completed API integration"121```122123- Requires `time_entry_id`124- Supports partial updates -- only include fields you want to change125- Can update `hours`, `notes`, `project_id`, `task_id`, `spent_date`, `started_time`, `ended_time`126127---128129## Known Pitfalls130131- **Task assignment matters:** When creating time entries, the `task_id` must correspond to a task that is actually assigned to the specified `project_id`. Use project task assignments endpoint to verify, not just `HARVEST_LIST_TASKS` (which returns global tasks).132- **Duration vs. timestamp tracking:** Harvest accounts are configured for either duration-based or timestamp-based tracking. `hours` is ignored on timestamp accounts; `started_time`/`ended_time` are ignored on duration accounts.133- **Pagination limits vary:** `HARVEST_LIST_TIME_ENTRIES` and `HARVEST_LIST_CLIENTS` support up to 2000 per page, but `HARVEST_LIST_PROJECTS` and `HARVEST_LIST_TASKS` cap at 100 per page.134- **Date format consistency:** All date parameters must use `YYYY-MM-DD` format. ISO 8601 with timezone is used for `updated_since` filters.135- **Required fields for projects:** `HARVEST_CREATE_PROJECT` requires five fields: `name`, `client_id`, `is_billable`, `bill_by`, and `budget_by`. Missing any will cause a validation error.136137---138139## Quick Reference140141| Tool Slug | Description |142|---|---|143| `HARVEST_LIST_TIME_ENTRIES` | List time entries with date, project, client, user filters |144| `HARVEST_CREATE_TIME_ENTRY` | Log a new time entry (requires `project_id`, `task_id`, `spent_date`) |145| `HARVEST_GET_TIME_ENTRY` | Retrieve a specific time entry by ID |146| `HARVEST_UPDATE_TIME_ENTRY` | Update an existing time entry (requires `time_entry_id`) |147| `HARVEST_LIST_PROJECTS` | List projects with optional client filter |148| `HARVEST_CREATE_PROJECT` | Create a new project with billing config |149| `HARVEST_GET_PROJECT` | Retrieve a specific project by ID |150| `HARVEST_LIST_CLIENTS` | List clients with active/inactive filter |151| `HARVEST_CREATE_CLIENT` | Create a new client (requires `name`) |152| `HARVEST_LIST_TASKS` | List reusable task types |153| `HARVEST_CREATE_TASK` | Create a new task type (requires `name`) |154155---156157*Powered by [Composio](https://composio.dev)*