90trust / 100

Harvest MCP by usefulapi

by harvest.usefulapi.io in Markets & finance

MCP serverPassing, checked 2 h ago

Read time entries, projects, clients, tasks and invoices; log and update tracked time.

https://harvest.usefulapi.io/mcp

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
219 ms typical, 219 ms slowest 5%
Last check
2 h ago
Next check
in 5 h

How to call it

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "harvest-mcp-by-usefulapi": {
      "type": "http",
      "url": "https://harvest.usefulapi.io/mcp"
    }
  }
}

20 tools

  • harvest_list_time_entries

    List time entries, optionally filtered by user, project, client, task, date range, running/billed status, or updated-since. Paginated. Harvest REST: GET /time_entries.

  • harvest_get_time_entry

    Retrieve a single time entry by id. Harvest REST: GET /time_entries/{id}.

  • harvest_list_projects

    List projects, optionally filtered by active status or client, or updated-since. Paginated. Harvest REST: GET /projects.

  • harvest_get_project

    Retrieve a single project by id. Harvest REST: GET /projects/{id}.

  • harvest_list_clients

    List clients, optionally filtered by active status or updated-since. Paginated. Harvest REST: GET /clients.

  • harvest_get_client

    Retrieve a single client by id. Harvest REST: GET /clients/{id}.

  • harvest_list_tasks

    List tasks (the billable/non-billable work categories that can be assigned to projects), optionally filtered by active status or updated-since. Paginated. Harvest REST: GET /tasks.

  • harvest_list_users

    List users in the account, optionally filtered by active status or updated-since. Paginated. Harvest REST: GET /users.

  • harvest_get_current_user

    Retrieve the currently authenticated user (whom the access token belongs to). Harvest REST: GET /users/me.

  • harvest_list_project_assignments

    List the authenticated user's active project assignments — the projects and their assignable tasks the current user can log time against (use this to find the project_id + task_id for harvest_create_time_entry). Paginated. Harvest REST: GET /users/me/project_assignments.

  • harvest_list_invoices

    List invoices, optionally filtered by client, project, state, date range, or updated-since. Paginated. Harvest REST: GET /invoices.

  • harvest_get_invoice

    Retrieve a single invoice by id, including its line items. Harvest REST: GET /invoices/{id}.

  • harvest_list_estimates

    List estimates, optionally filtered by client, state, date range, or updated-since. Paginated. Harvest REST: GET /estimates.

  • harvest_list_expenses

    List expenses, optionally filtered by user, client, project, date range, billed status, or updated-since. Paginated. Harvest REST: GET /expenses.

  • harvest_get_company

    Retrieve the company/account settings for the authenticated account (name, currency, time/date formats, week start, feature flags). Harvest REST: GET /company.

  • harvest_create_time_entry

    Create a time entry. Requires project_id, task_id and spent_date. Provide `hours` to log a specific duration; OR provide `started_time` (+ optional `ended_time`) for a timestamped entry; OR omit both to start a running timer (on a timestamp-tracking account). Use harvest_list_pro

  • harvest_update_time_entry

    Update an existing time entry's hours, notes, spent date, or project/task. Only the fields you provide are changed. Harvest REST: PATCH /time_entries/{id}. WRITE — modifies data.

  • harvest_stop_time_entry

    Stop a currently running time entry (no-op error if it is already stopped). Harvest REST: PATCH /time_entries/{id}/stop. WRITE — modifies data.

  • harvest_restart_time_entry

    Restart a previously stopped time entry, resuming its timer (error if it is already running). Harvest REST: PATCH /time_entries/{id}/restart. WRITE — modifies data.

  • harvest_delete_time_entry

    Permanently delete a time entry by id. This cannot be undone. Harvest REST: DELETE /time_entries/{id}. WRITE — destroys data.

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTime
2 h agoPassed200219 ms
11 h agoPassed200697 ms