Skip to main content
Harvest logo

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.

Actions

Every action this integration exposes. Agents pick the right one from the task; you do not call them by name.

ActionWhat it doesRequired inputs
HARVEST_CREATE_CLIENTTool to create a new client. use after gathering client details to register a new client in harvest.name
HARVEST_CREATE_CLIENT_CONTACTTool 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_ESTIMATETool to create a new estimate. use after gathering client and line item details.client_id
HARVEST_CREATE_ESTIMATE_ITEM_CATEGORYTool to create a new estimate item category in harvest. use after deciding to categorize line items within an estimate.name
HARVEST_CREATE_ESTIMATE_MESSAGETool 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_EXPENSETool 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_INVOICETool 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_CATEGORYTool 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_MESSAGETool 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_PAYMENTTool to create a new payment on an invoice. use when recording a payment against an existing invoice.invoice_id, amount
HARVEST_CREATE_PROJECTTool to create a new project. use after confirming the client exists.name, client_id
HARVEST_CREATE_TASKTool to create a new task. use after identifying task details to register it in harvest.name
HARVEST_CREATE_TIME_ENTRYTool 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_USERTool to create a new user. use after gathering user details to invite them to harvest.first_name, last_name, email
HARVEST_DELETE_CLIENTTool 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_CONTACTTool 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_ESTIMATETool 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_MESSAGETool 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_INVOICETool 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_CATEGORYTool 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_MESSAGETool 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_PAYMENTTool 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_PROJECTTool 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_TASKTool 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_ENTRYTool 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_USERTool 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_CLIENTTool to retrieve a specific client by id. use when you need details of a client before invoicing or reporting.client_id
HARVEST_GET_CLIENT_CONTACTTool 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_INFOTool to retrieve information about the authenticated user's company. use after authentication to fetch company settings for display or configuration.-
HARVEST_GET_ESTIMATETool to retrieve a specific estimate by id. use after confirming the estimate id. example: "get estimate with id 123456".estimate_id
HARVEST_GET_INVOICETool 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_PROJECTTool to retrieve a specific harvest project by id. use when you have a project id and need its details.project_id
HARVEST_GET_TASKTool to retrieve a specific task by id. use when you have a task id and need its detailed information.task_id
HARVEST_GET_TIME_ENTRYTool 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_USERTool 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_CLIENTSTool 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_CONTACTSTool to list client contacts. use when you need to retrieve contacts with optional filtering and pagination.-
HARVEST_LIST_ESTIMATE_MESSAGESTool 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_CATEGORIESTool 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_INVOICESTool 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_CATEGORIESTool to retrieve invoice item categories. use when you need to fetch a paginated list of invoice item categories in harvest.-
HARVEST_LIST_INVOICE_MESSAGESTool 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_PAYMENTSTool 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_PROJECTSTool 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_TASKSTool 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_ENTRIESTool 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_USERSTool to list users. use when you need to retrieve a paginated list of users from harvest.-
HARVEST_UPDATE_CLIENTTool 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_CONTACTTool to update a client contact. use when you have a contact id and need to modify its details.contact_id
HARVEST_UPDATE_COMPANY_INFOTool 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_ESTIMATETool 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_CATEGORYTool to update an estimate item category. use after retrieving the category to change its name.estimate_item_category_id
HARVEST_UPDATE_EXPENSETool 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_INVOICETool 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_PROJECTTool 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_TASKTool 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_ENTRYTool 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_USERTool to update an existing user. use when you need to modify a user's profile or settings after confirming the user id.user_id
We love our partners - FlyMy.AI builds with the best. Thanks, Harvest!