Harvest
Harvest is a time-tracking and invoicing tool designed for teams and freelancers, helping them log billable hours, manage projects, and streamline payments
This is a first-class FlyMyAI MCP. Agents discover it automatically via tool search and call the actions below on demand - you never wire it up by hand. See the Composio catalog for how discovery works.
Connect
Harvest connects with a single OAuth click - there is no token to paste. The first time an agent uses a Harvest action, FlyMyAI asks you to authorize your Harvest account. Approve it once and the connection is reused for every later run.
- Provider: Harvest
Actions
Every action this integration exposes. Agents pick the right one from the task; you do not call them by name.
| Action | What it does | Required inputs |
|---|---|---|
HARVEST_CREATE_CLIENT | Tool to create a new client. use after gathering client details to register a new client in harvest. | name |
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 retrieved or confirmed the client id. | client_id, first_name |
HARVEST_CREATE_ESTIMATE | Tool to create a new estimate. use after gathering client and line item details. | client_id |
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. | name |
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 event (send, accept, decline, re-open) on the estimate. | estimate_id |
HARVEST_CREATE_EXPENSE | Tool to create a new expense entry. use when recording costs against projects. ensure either units or total cost is provided. | project_id, expense_category_id, spent_date |
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. | client_id, line_items |
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. | name |
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 invoice details. | invoice_id |
HARVEST_CREATE_INVOICE_PAYMENT | Tool to create a new payment on an invoice. use when recording a payment against an existing invoice. | invoice_id, amount |
HARVEST_CREATE_PROJECT | Tool to create a new project. use after confirming the client exists. | name, client_id |
HARVEST_CREATE_TASK | Tool to create a new task. use after identifying task details to register it in harvest. | name |
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. | project_id, task_id, spent_date |
HARVEST_CREATE_USER | Tool to create a new user. use after gathering user details to invite them to harvest. | first_name, last_name, email |
HARVEST_DELETE_CLIENT | Tool to delete a client. use when you need to remove a client that has no associated projects, invoices, or estimates. call after confirming the client id exists and has no dependent resources. | client_id |
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 confirming the contact id exists. | contact_id |
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 estimate id exists and has no dependent resources. | estimate_id |
HARVEST_DELETE_ESTIMATE_MESSAGE | Tool to delete an estimate message. use when you need to remove a message from an estimate. call after confirming estimate id and message id are correct. | estimate_id, message_id |
HARVEST_DELETE_INVOICE | Tool to delete an invoice. use when you need to remove an invoice that has no associated payments. call after confirming the invoice id exists. | invoice_id |
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. call after confirming the invoice item category id exists. | invoice_item_category_id |
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. call after confirming the invoice id and message id. | invoice_id, message_id |
HARVEST_DELETE_INVOICE_PAYMENT | Tool to delete an invoice payment. use when you need to remove a payment from an invoice after confirming payment details. | invoice_id, payment_id |
HARVEST_DELETE_PROJECT | Tool to delete a project. use when you need to remove a project and all its associated time entries and expenses; invoices remain intact. call after confirming the project id exists. | project_id |
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 the task id exists and has no dependent time entries. | task_id |
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 projects/tasks). call after confirming the time entry id exists. | time_entry_id |
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 confirming the user id exists and has no dependent time entries or expenses. | user_id |
HARVEST_GET_CLIENT | Tool to retrieve a specific client by id. use when you need details of a client before invoicing or reporting. | client_id |
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 details. | client_id, contact_id |
HARVEST_GET_COMPANY_INFO | Tool to retrieve information about the authenticated user's company. use after authentication to fetch company settings for display or configuration. | - |
HARVEST_GET_ESTIMATE | Tool to retrieve a specific estimate by id. use after confirming the estimate id. example: "get estimate with id 123456". | estimate_id |
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 it. example: 'get invoice with id 13150378.' | invoice_id |
HARVEST_GET_PROJECT | Tool to retrieve a specific harvest project by id. use when you have a project id and need its details. | project_id |
HARVEST_GET_TASK | Tool to retrieve a specific task by id. use when you have a task id and need its detailed information. | task_id |
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. | time_entry_id |
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 details of user 3230547". | user_id |
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 access token in metadata before calling. | - |
HARVEST_LIST_CLIENT_CONTACTS | Tool to list client contacts. use when you need to retrieve contacts with optional filtering and pagination. | - |
HARVEST_LIST_ESTIMATE_MESSAGES | Tool to list messages for an estimate. use after obtaining an estimate id to retrieve associated messages, supports pagination and filtering by update time. | estimate_id |
HARVEST_LIST_EXPENSE_CATEGORIES | Tool to list expense categories. use when you need to retrieve a paginated list of expense categories, optionally filtering by active status or last update timestamp. | - |
HARVEST_LIST_INVOICES | Tool to list invoices. use when you need to retrieve invoices filtered by client, project, date range, or state. example: 'list invoices for client 5735776 from 2023-01-01 to 2023-01-31.' | - |
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 harvest. | - |
HARVEST_LIST_INVOICE_MESSAGES | Tool to list messages associated with a given invoice. use when you need to retrieve invoice messages with optional filtering by update time and pagination. | invoice_id |
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 confirming the invoice exists. | invoice_id |
HARVEST_LIST_PROJECTS | Tool to list projects. use when you need to retrieve a paginated list of projects from harvest. ensure a valid access token is present in metadata before calling. | - |
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 access token in metadata before calling. | - |
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 reporting or invoicing. example: "list time entries for project 123 between 2023-01-01 and 2023-01-31". | - |
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 updates; omit fields to leave them unchanged. | client_id |
HARVEST_UPDATE_CLIENT_CONTACT | Tool to update a client contact. use when you have a contact id and need to modify its details. | contact_id |
HARVEST_UPDATE_COMPANY_INFO | Tool to update information about the company. use to modify company settings such as name, timezone, or formatting options. use after obtaining current settings to apply changes. | - |
HARVEST_UPDATE_ESTIMATE | Tool to update an existing estimate. use when you need to modify specific fields of an estimate; omit parameters to leave other fields unchanged. | estimate_id |
HARVEST_UPDATE_ESTIMATE_ITEM_CATEGORY | Tool to update an estimate item category. use after retrieving the category to change its name. | estimate_item_category_id |
HARVEST_UPDATE_EXPENSE | Tool to update an existing expense. use after retrieving an expense to modify project, category, date, cost, or delete a receipt; omit fields to leave unchanged. | expense_id |
HARVEST_UPDATE_INVOICE | Tool to update an existing invoice. use after retrieving invoice details to modify its fields. supports partial updates; omit fields to leave unchanged. | invoice_id |
HARVEST_UPDATE_PROJECT | Tool to update an existing project. use when you need to modify one or more fields of a project by its id. invoke after confirming the project id and desired changes. | project_id |
HARVEST_UPDATE_TASK | Tool to update an existing task. use after retrieving task details to modify its attributes such as name, billing defaults, or status. supports partial updates; omit fields to leave them unchanged. | task_id |
HARVEST_UPDATE_TIME_ENTRY | Tool to update an existing time entry. use after retrieving the entry to adjust hours, notes, project, or task details. supports partial updates; omit fields to leave unchanged. | time_entry_id |
HARVEST_UPDATE_USER | Tool to update an existing user. use when you need to modify a user's profile or settings after confirming the user id. | user_id |
Links
We love our partners - FlyMy.AI builds with the best. Thanks, Harvest!