Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate time tracking, project management, and invoicing workflows in Harvest -- log hours, manage projects, clients, and tasks through natural language commands.
.claude/skills/composiohq-harvest-automation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | 118% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 40% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 259% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 107% | 0% |
| case-04 | ✓→✗ | ▼ Worse | 558% | 0% |
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
https://rube.app/mcpCreate, 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 todayKey parameters for HARVEST_CREATE_TIME_ENTRY:
project_id (required) -- the project to log againsttask_id (required) -- the task must be assigned to the projectspent_date (required) -- date in YYYY-MM-DD formathours -- total hours (for duration-based accounts)started_time / ended_time -- for timestamp-based accountsnotes -- description of work performedKey parameters for HARVEST_LIST_TIME_ENTRIES:
from_date / to -- date range filters (YYYY-MM-DD)project_id, client_id, task_id, user_id -- entity filtersis_billed / is_running -- status filterspage / per_page (max 2000) -- paginationCreate 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 budgetKey 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"budget, hourly_rate, starts_on, ends_on, is_fixed_feeCreate and list clients that projects are organized under.
Tools: HARVEST_CREATE_CLIENT, HARVEST_LIST_CLIENTS
List all active clients in our Harvest accountHARVEST_CREATE_CLIENT requires name; accepts address, currency, is_activeHARVEST_LIST_CLIENTS supports is_active filter and pagination (per_page max 2000)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/hrHARVEST_CREATE_TASK requires name; accepts billable_by_default, default_hourly_rate, is_active, is_defaultHARVEST_LIST_TASKS supports is_active, is_default filters and pagination (per_page max 100)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 2026from_date and to for date windowingis_billed: false for unbilled entriesproject_id, user_id, client_id for cross-dimensional reportingpage and per_page to gather complete datasetsModify 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"time_entry_idhours, notes, project_id, task_id, spent_date, started_time, ended_timetask_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).hours is ignored on timestamp accounts; started_time/ended_time are ignored on duration accounts.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.YYYY-MM-DD format. ISO 8601 with timezone is used for updated_since filters.HARVEST_CREATE_PROJECT requires five fields: name, client_id, is_billable, bill_by, and budget_by. Missing any will cause a validation error.| 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
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 6,393 | 4,341 | -32% | 1 | 1 | 0% | 1,218 | 2,021 | +66% | 0 | 0 | — |
case-02 | fail→fail | 4,589 | 3,794 | -17% | 1 | 1 | 0% | 933 | 2,040 | +119% | 0 | 0 | — |
case-03 | fail→fail | 4,019 | 4,465 | +11% | 1 | 1 | 0% | 738 | 2,068 | +180% | 0 | 0 | — |
case-04 | pass→fail | 2,408 | 4,194 | +74% | 1 | 1 | 0% | 332 | 2,186 | +558% | 0 | 0 | — |
case-09 | fail→fail | 5,285 | 5,042 | -5% | 1 | 1 | 0% | 1,129 | 2,205 | +95% | 0 | 0 | — |
case-05 | pass→fail | 4,993 | 13,918 | +179% | 1 | 1 | 0% | 849 | 3,026 | +256% | 0 | 0 | — |
case-06 | fail→fail | 7,967 | 7,499 | -6% | 1 | 1 | 0% | 1,635 | 2,083 | +27% | 0 | 0 | — |
case-07 | pass→fail | 7,945 | 5,322 | -33% | 1 | 1 | 0% | 621 | 2,114 | +240% | 0 | 0 | — |
case-08 | pass→pass | 6,333 | 3,900 | -38% | 1 | 1 | 0% | 1,148 | 2,465 | +115% | 0 | 0 | — |
case-10 | fail→pass | 15,458 | 7,972 | -48% | 1 | 1 | 0% | 1,255 | 2,732 | +118% | 0 | 0 | — |
case-11 | fail→pass | 9,497 | 3,977 | -58% | 1 | 1 | 0% | 1,774 | 2,487 | +40% | 0 | 0 | — |
case-12 | fail→pass | 3,416 | 2,170 | -36% | 1 | 1 | 0% | 592 | 2,128 | +259% | 0 | 0 | — |
case-13 | pass→pass | 6,629 | 2,746 | -59% | 1 | 1 | 0% | 1,271 | 2,298 | +81% | 0 | 0 | — |
case-14 | fail→pass | 5,365 | 2,478 | -54% | 1 | 1 | 0% | 1,045 | 2,165 | +107% | 0 | 0 | — |
case-15 | fail→fail | 7,560 | 2,010 | -73% | 1 | 1 | 0% | 1,350 | 1,914 | +42% | 0 | 0 | — |
case-16 | fail→fail | 6,175 | 5,514 | -11% | 1 | 1 | 0% | 405 | 2,056 | +408% | 0 | 0 | — |
case-17 | pass→fail | 6,623 | 4,293 | -35% | 1 | 1 | 0% | 785 | 2,114 | +169% | 0 | 0 | — |
case-18 | fail→fail | 3,774 | 3,283 | -13% | 1 | 1 | 0% | 721 | 2,247 | +212% | 0 | 0 | — |
case-19 | pass→pass | 5,674 | 3,521 | -38% | 1 | 1 | 0% | 1,109 | 2,496 | +125% | 0 | 0 | — |
case-20 | fail→fail | 5,528 | 3,276 | -41% | 1 | 1 | 0% | 1,093 | 1,968 | +80% | 0 | 0 | — |
case-21 | pass→fail | 5,759 | 5,426 | -6% | 1 | 1 | 0% | 1,165 | 2,233 | +92% | 0 | 0 | — |
case-22 | pass→fail | 6,511 | 5,353 | -18% | 1 | 1 | 0% | 1,387 | 2,125 | +53% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 10 counted toward the lift figure. The other 12 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of -9 percentage points is the difference between those two pass rates over the 10 comparable cases. 7 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.