Connect Harvest to your AI agents.

Connect Harvest data to AI agents with Combined. Explore time entries, projects, clients, source setup, MCP access and read-only business queries.

Put Harvest records to work in the agent you already use. Combined syncs business data into a managed data layer and exposes scoped, read-only queries through MCP.

Start with 5 million MAR without a card; usage after the trial is $5 per million MAR, with no monthly minimum. Combined offers 1,125 connectors across catalog sources and connectors generated through desktop automation.

How to connect Harvest to Combined

  1. Add your source. Open Connected Apps in Combined and select Harvest. Use the account or workspace that contains the records you want to analyze.
  2. Authorize access. Complete the connection flow and choose the required permissions. The setup reference below shows the upstream source's configurable fields; the Combined flow may handle some of them for you.
  3. Select datasets and sync. Choose the relevant data, set any available history filters, and wait for the first successful sync.
  4. Grant your agent access. Use the Set up or Access workspace to connect your agent through MCP and scope it to the sources it needs.
  5. Ask a first question. Discover the synced schema, check freshness, and run a bounded read-only query. Then add another source for a cross-app analysis.

The onboarding guide covers the workspace flow. Prepare these Harvest settings before connecting:

Harvest source setup reference
SettingWhen neededInput
Account IDRequired by source schemaCredential entered in the connection flow
Authentication mechanismOptionalAuthenticate via Harvest (OAuth) / Authenticate with Personal Access Token
Client IDDepends on selected setup optionstring
Client SecretDepends on selected setup optionCredential entered in the connection flow
Refresh TokenDepends on selected setup optionCredential entered in the connection flow
Personal Access TokenDepends on selected setup optionCredential entered in the connection flow
Number of Concurrent ThreadsOptionalinteger
End DateOptionalstring
Start DateRequired by source schemastring

Authentication choices are alternatives. Supply the settings for your selected method; enter credentials in the connection flow, rather than in an agent prompt.

Harvest datasets you can evaluate

This reference comes from the upstream source catalog and connector definition, version 1.2.48. Your account permissions, selected streams and successful sync determine what your agent can query. Discover the actual table and field names in Combined before writing SQL.

Harvest dataset and schema reference
DatasetRecord keyUpdate fieldExample fields
time_entriesidupdated_atbillable, billable_rate, budgeted, client, cost_rate (28 fields in reference)
projectsidupdated_atbill_by, budget, budget_by, budget_is_monthly, client (24 fields in reference)
clientsidupdated_ataddress, created_at, currency, id, is_active (8 fields in reference)
usersidupdated_ataccess_roles, avatar_url, calendar_integration_enabled, calendar_integration_source, can_create_invoices (25 fields in reference)
rolesidupdated_atcreated_at, id, name, updated_at, user_ids
tasksidupdated_atbillable_by_default, created_at, default_hourly_rate, id, is_active (8 fields in reference)
contactsidupdated_atclient, created_at, email, fax, first_name (11 fields in reference)
task_assignmentsidupdated_atbillable, budget, created_at, hourly_rate, id (9 fields in reference)
time_projectsInspect schematobillable_amount, billable_hours, client_id, client_name, currency (10 fields in reference)
user_assignmentsidupdated_atbudget, created_at, hourly_rate, id, is_active (10 fields in reference)
companyInspect schemaInspect sync configurationapproval_feature, approval_required, base_uri, currency, currency_code_display (25 fields in reference)
invoicesidupdated_atamount, client, client_key, closed_at, created_at (34 fields in reference)
project_assignmentsidupdated_atbudget, client, created_at, hourly_rate, id (12 fields in reference)
time_tasksInspect schematobillable_amount, billable_hours, currency, from, task_id (8 fields in reference)
estimate_item_categoriesidupdated_atcreated_at, id, name, updated_at
estimatesidupdated_ataccepted_at, amount, client, client_key, created_at (24 fields in reference)
expense_categoriesidupdated_atcreated_at, id, is_active, name, unit_name (7 fields in reference)
expensesidupdated_atbillable, client, created_at, expense_category, id (19 fields in reference)
invoice_item_categoriesidupdated_atcreated_at, id, name, updated_at, use_as_expense (6 fields in reference)
expenses_categoriesInspect schematobillable_amount, currency, expense_category_id, expense_category_name, from (7 fields in reference)
expenses_clientsInspect schematobillable_amount, client_id, client_name, currency, from (7 fields in reference)
expenses_projectsInspect schematobillable_amount, client_id, client_name, currency, from (9 fields in reference)
expenses_teamInspect schematobillable_amount, currency, from, is_contractor, to (8 fields in reference)
project_budgetInspect schemaInspect sync configurationbudget, budget_by, budget_is_monthly, budget_remaining, budget_spent (12 fields in reference)
time_clientsInspect schematobillable_amount, billable_hours, client_id, client_name, currency (8 fields in reference)
time_teamInspect schematoavatar_url, billable_amount, billable_hours, currency, from (11 fields in reference)
uninvoicedInspect schematoclient_id, client_name, currency, from, project_id (11 fields in reference)
estimate_messagesidupdated_atbody, created_at, event_type, id, parent_id (13 fields in reference)
invoice_messagesidupdated_atattach_pdf, body, created_at, event_type, id (18 fields in reference)
invoice_paymentsidupdated_atamount, created_at, id, notes, paid_at (12 fields in reference)
billable_ratesidInspect sync configurationamount, created_at, end_date, id, parent_id (7 fields in reference)
cost_ratesidInspect sync configurationamount, created_at, end_date, id, parent_id (7 fields in reference)

A cursor tracks changes for a source stream. It is not automatically the right date for a business metric: invoice date, close date and record-update date can answer different questions.

Useful Harvest questions for your AI agent

Start with the datasets you have granted. These prompts turn the referenced schema into checks and summaries; the agent should verify each field against your synced data.

  • Count current records in time entries where the updated_at field falls within the reporting window.
  • Count current records in projects where the updated_at field falls within the reporting window.
  • Summarize clients by currency for a defined reporting window; keep currencies separate.
  • Count current records in users where the updated_at field falls within the reporting window.

Combine Harvest with another business app

Connect the second source, identify a maintained customer, account or project mapping, and aggregate each dataset before joining. Keep unmatched records visible and define the reporting window. The CRM-and-billing worked example includes runnable SQL demonstrating how a many-to-many join can double the result.

Use Harvest data in Claude Code, Cursor or another MCP client

Once the source is synced, the agent connects to Combined's MCP interface. Use the generated account-specific configuration from your workspace, keep credentials local, and grant only the sources needed for the task. Follow the Claude Code walkthrough or the MCP setup reference.

Use Combined to analyze my Harvest data.
List my granted sources, discover the datasets and describe their fields.
Look for datasets corresponding to time_entries, projects, clients, users, roles, tasks.
Check the last successful sync and report the available date coverage.
Propose three useful questions based on the fields actually available.
For the question I choose, run read-only SQL over the complete matching dataset.
Use a bounded result; include source names, time window and query receipt.
Ask for a missing join key or metric definition instead of inventing one.

Download this Harvest guide as Markdown to use alongside your agent instructions.

Which Harvest connection fits the task?

Managed data for complete questions across apps

Choose Combined when you want to analyze synced records, calculate totals, or join Harvest with other business data without operating a separate ingestion and query stack. The agent works with your source grants and read-only SQL access.

Application tools for live operations

For a task that must change Harvest immediately, evaluate its available API, native agent tools or desktop workflow. Keep application-action permissions separate from read-only analytics access. A live lookup and an aggregate over synced history solve different jobs.

Desktop-generated connectors for workflows beyond the catalog

Combined's 1,125-connector coverage includes connections generated through computer use. Choose this route when the workflow depends on an application's desktop or browser interface, and establish the fields, access and refresh behavior for that connection.

Read the direct MCP versus managed data comparison and compare business-data MCP options.

Troubleshoot your Harvest connection

  • Authorization fails: check the selected authentication method, credential validity, source permissions and target account.
  • History is missing: check the source's start-date or history filter and allow the initial sync to finish before comparing totals.
  • The wrong records appear: verify the workspace, account, project or domain selected in the source settings.
  • A dataset is absent: check whether it is enabled and permitted for your account, then inspect discovery and sync status.
  • The agent cannot query it: confirm the source is included in the agent's grant and that its sync succeeded.
  • A total looks wrong: inspect record keys, duplicate rows, time zones, currencies and join fanout before changing the prompt.

Source details reviewed September 10, 2026. Harvest upstream connector documentation · Versioned connector definition. See also Combined Sources and data freshness for AI agents.