# Harvest (verified)

Log billable hours, manage projects, and send invoices. Track time across tasks, review team capacity, and generate expense reports.

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add harvest

# Browse available tools
npx -y @smithery/cli@latest tool list harvest

# Get full schema for a tool
npx -y @smithery/cli@latest tool get harvest HARVEST_CREATE_CLIENT

# Call a tool
npx -y @smithery/cli@latest tool call harvest HARVEST_CREATE_CLIENT '{}'
```

## Direct MCP Connection

Endpoint: `https://harvest.run.tools`

## Tools (58)

- `HARVEST_CREATE_CLIENT` — Tool to create a new client. Use after gathering client details to register a new client in Harvest.
- `HARVEST_CREATE_CLIENT_CONTACT` — Tool to create a new client contact. Use when you need to add a contact under an existing client. Call after you've ret…
- `HARVEST_CREATE_ESTIMATE` — Tool to create a new estimate. Use after gathering client and line item details.
- `HARVEST_CREATE_ESTIMATE_ITEM_CATEGORY` — Tool to create a new estimate item category in Harvest. Use after deciding to categorize line items within an estimate.
- `HARVEST_CREATE_ESTIMATE_MESSAGE` — Tool to create a new message for an estimate. Use when you have an estimate ID and want to send a message or run an eve…
- `HARVEST_CREATE_EXPENSE` — Tool to create a new expense entry. Use when recording costs against projects. Ensure either units or total_cost is pro…
- `HARVEST_CREATE_INVOICE` — Tool to create a new invoice. Use when you have gathered all invoice details and need to bill a client in Harvest.
- `HARVEST_CREATE_INVOICE_ITEM_CATEGORY` — Tool to create a new invoice item category. Use after you have decided on the category name to register it in Harvest.
- `HARVEST_CREATE_INVOICE_MESSAGE` — Tool to create a new message for an invoice. Use after confirming the invoice ID when you need to notify a client with …
- `HARVEST_CREATE_INVOICE_PAYMENT` — Tool to create a new payment on an invoice. Use when recording a payment against an existing invoice.
- `HARVEST_CREATE_PROJECT` — Tool to create a new project. Use after confirming the client exists.
- `HARVEST_CREATE_TASK` — Tool to create a new task. Use after identifying task details to register it in Harvest.
- `HARVEST_CREATE_TIME_ENTRY` — Tool to create a new time entry. Use when logging hours for a project by specifying start/end times or duration.
- `HARVEST_CREATE_USER` — Tool to create a new user. Use after gathering user details to invite them to Harvest.
- `HARVEST_DELETE_CLIENT` — Tool to delete a client. Use when you need to remove a client that has no associated projects, invoices, or estimates. …
- `HARVEST_DELETE_CLIENT_CONTACT` — Tool to delete a client contact. Use when you need to remove a contact that is no longer relevant. Call after confirmin…
- `HARVEST_DELETE_ESTIMATE` — Tool to delete an estimate. Use when you need to remove an estimate that is no longer needed. Call after confirming the…
- `HARVEST_DELETE_ESTIMATE_MESSAGE` — Tool to delete an estimate message. Use when you need to remove a message from an estimate. Call after confirming estim…
- `HARVEST_DELETE_INVOICE` — Tool to delete an invoice. Use when you need to remove an invoice that has no associated payments. Call after confirmin…
- `HARVEST_DELETE_INVOICE_ITEM_CATEGORY` — Tool to delete an invoice item category. Use when you need to remove an obsolete or incorrect invoice item category. Ca…
- `HARVEST_DELETE_INVOICE_MESSAGE` — Tool to delete a message from an invoice. Use when you need to remove a specific message that is no longer relevant. Ca…
- `HARVEST_DELETE_INVOICE_PAYMENT` — Tool to delete an invoice payment. Use when you need to remove a payment from an invoice after confirming payment detai…
- `HARVEST_DELETE_PROJECT` — Tool to delete a project. Use when you need to remove a project and all its associated time entries and expenses; invoi…
- `HARVEST_DELETE_TASK` — Tool to delete a task. Use when you need to remove a task that has no associated time entries. Call after confirming th…
- `HARVEST_DELETE_TIME_ENTRY` — Tool to delete a time entry. Use when removing an existing time entry that is deletable (not closed or on archived proj…
- `HARVEST_DELETE_USER` — Tool to delete a user. Use when you need to remove a user that has no associated time entries or expenses. Call after c…
- `HARVEST_GET_CLIENT` — Tool to retrieve a specific client by ID. Use when you need details of a client before invoicing or reporting.
- `HARVEST_GET_CLIENT_CONTACT` — Tool to retrieve a specific client contact. Use when you have client_id and contact_id to fetch and verify contact deta…
- `HARVEST_GET_COMPANY_INFO` — Tool to retrieve information about the authenticated user's company. Use after authentication to fetch company settings…
- `HARVEST_GET_ESTIMATE` — Tool to retrieve a specific estimate by ID. Use after confirming the estimate ID. Example: "Get estimate with ID 123456…
- `HARVEST_GET_INVOICE` — Tool to retrieve a specific invoice by ID. Use when you need the full details of an invoice after selecting or creating…
- `HARVEST_GET_PROJECT` — Tool to retrieve a specific Harvest project by ID. Use when you have a project ID and need its details.
- `HARVEST_GET_TASK` — Tool to retrieve a specific task by ID. Use when you have a task ID and need its detailed information.
- `HARVEST_GET_TIME_ENTRY` — Tool to retrieve a single time entry by ID. Use when you have a specific time entry ID and need its full details.
- `HARVEST_GET_USER` — Tool to retrieve a specific user by ID. Use after obtaining a valid user ID (for example via List Users). Example: "Get…
- `HARVEST_LIST_CLIENT_CONTACTS` — Tool to list client contacts. Use when you need to retrieve contacts with optional filtering and pagination.
- `HARVEST_LIST_CLIENTS` — Tool to list clients. Use when you need to retrieve a paginated list of clients from Harvest. Ensure you have a valid a…
- `HARVEST_LIST_ESTIMATE_MESSAGES` — Tool to list messages for an estimate. Use after obtaining an estimate ID to retrieve associated messages, supports pag…
- `HARVEST_LIST_EXPENSE_CATEGORIES` — Tool to list expense categories. Use when you need to retrieve a paginated list of expense categories, optionally filte…
- `HARVEST_LIST_INVOICE_ITEM_CATEGORIES` — Tool to retrieve invoice item categories. Use when you need to fetch a paginated list of invoice item categories in Har…
- `HARVEST_LIST_INVOICE_MESSAGES` — Tool to list messages associated with a given invoice. Use when you need to retrieve invoice messages with optional fil…
- `HARVEST_LIST_INVOICE_PAYMENTS` — Tool to retrieve payments for a specific invoice. Use when you need to list all payments applied to an invoice after co…
- `HARVEST_LIST_INVOICES` — Tool to list invoices. Use when you need to retrieve invoices filtered by client, project, date range, or state. Exampl…
- `HARVEST_LIST_PROJECTS` — Tool to list projects. Use when you need to retrieve a paginated list of projects from Harvest. Ensure a valid access t…
- `HARVEST_LIST_TASKS` — Tool to list tasks. Use when you need to retrieve a paginated list of tasks from Harvest. Ensure you have a valid acces…
- `HARVEST_LIST_TIME_ENTRIES` — Tool to retrieve a list of time entries. Use when you need to fetch tracked hours with filters or date ranges for repor…
- `HARVEST_LIST_USERS` — Tool to list users. Use when you need to retrieve a paginated list of users from Harvest.
- `HARVEST_UPDATE_CLIENT` — Tool to update an existing client. Use after retrieving client details to modify its properties. Supports partial updat…
- `HARVEST_UPDATE_CLIENT_CONTACT` — Tool to update a client contact. Use when you have a contact_id and need to modify its details.
- `HARVEST_UPDATE_COMPANY_INFO` — Tool to update information about the company. Use to modify company settings such as name, timezone, or formatting opti…

---
*Response truncated. Use `npx -y @smithery/cli@latest` for complete data.*
