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!