Harvest
The Harvest agent connector is a Python package that equips AI agents to interact with Harvest through strongly typed, well-documented tools. It's ready to use directly in your Python app, in an agent framework, or exposed through an MCP.
Connector for the Harvest time-tracking and invoicing API (v2). Provides read access to time tracking data including users, clients, projects, tasks, time entries, invoices, estimates, expenses, and more. Harvest is a cloud-based time tracking and invoicing solution that helps teams track time, manage projects, and streamline invoicing.
Example questions
The Harvest connector is optimized to handle prompts like these.
- List all users in Harvest
- Show me all active projects
- List all clients
- Show me recent time entries
- List all invoices
- Show me all tasks
- List all expense categories
- Get company information
- How many hours were logged last week?
- Which projects have the most time entries?
- Show me all unbilled time entries
- What are the active projects for a specific client?
- List all overdue invoices
- Which users logged the most hours this month?
Unsupported questions
The Harvest connector isn't currently able to handle prompts like these.
- Create a new time entry in Harvest
- Update a project budget
- Delete an invoice
- Start a timer for a task
Installation
uv pip install airbyte-agent-harvest
Usage
Connectors can run in open source or hosted mode.
Open source
In open source mode, you provide API credentials directly to the connector.
from airbyte_agent_harvest import HarvestConnector
from airbyte_agent_harvest.models import HarvestPersonalAccessTokenAuthConfig
connector = HarvestConnector(
auth_config=HarvestPersonalAccessTokenAuthConfig(
token="<Your Harvest personal access token>",
account_id="<Your Harvest account ID>"
)
)
@agent.tool_plain # assumes you're using Pydantic AI
@HarvestConnector.tool_utils
async def harvest_execute(entity: str, action: str, params: dict | None = None):
return await connector.execute(entity, action, params or {})
Hosted
In hosted mode, API credentials are stored securely in Airbyte Cloud. You provide your Airbyte credentials instead.
If your Airbyte client can access multiple organizations, also set organization_id.
This example assumes you've already authenticated your connector with Airbyte. See Authentication to learn more about authenticating. If you need a step-by-step guide, see the hosted execution tutorial.
from airbyte_agent_harvest import HarvestConnector, AirbyteAuthConfig
connector = HarvestConnector(
auth_config=AirbyteAuthConfig(
customer_name="<your_customer_name>",
organization_id="<your_organization_id>", # Optional for multi-org clients
airbyte_client_id="<your-client-id>",
airbyte_client_secret="<your-client-secret>"
)
)
@agent.tool_plain # assumes you're using Pydantic AI
@HarvestConnector.tool_utils
async def harvest_execute(entity: str, action: str, params: dict | None = None):
return await connector.execute(entity, action, params or {})
Full documentation
Entities and actions
This connector supports the following entities and actions. For more details, see this connector's full reference documentation.
| Entity | Actions |
|---|---|
| Users | List, Get, Context Store Search |
| Clients | List, Get, Context Store Search |
| Contacts | List, Get, Context Store Search |
| Company | Get, Context Store Search |
| Projects | List, Get, Context Store Search |
| Tasks | List, Get, Context Store Search |
| Time Entries | List, Get, Context Store Search |
| Invoices | List, Get, Context Store Search |
| Invoice Item Categories | List, Get, Context Store Search |
| Estimates | List, Get, Context Store Search |
| Estimate Item Categories | List, Get, Context Store Search |
| Expenses | List, Get, Context Store Search |
| Expense Categories | List, Get, Context Store Search |
| Roles | List, Get, Context Store Search |
| User Assignments | List, Context Store Search |
| Task Assignments | List, Context Store Search |
| Time Projects | List, Context Store Search |
| Time Tasks | List, Context Store Search |
Authentication
For all authentication options, see the connector's authentication documentation.
Harvest API docs
See the official Harvest API reference.
Version information
- Package version: 0.1.16
- Connector version: 1.0.3
- Generated with Connector SDK commit SHA: c5258debd165ab701252c1436d4acfb475bf92b9
- Changelog: View changelog
Metadata
Release files for airbyte-agent-harvest 0.1.16
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| airbyte_agent_harvest-0.1.16.tar.gz | 185.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| airbyte_agent_harvest-0.1.16-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 394.6 kB
Release files / airbyte_agent_harvest-0.1.16.tar.gz
| Download URL | airbyte_agent_harvest-0.1.16.tar.gz |
|---|---|
| Size | 185.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4cf07dd1d3e1e9e1fc9d7405c330e34eb8eb7f5b5229b18cb4d845362a0ab83e
|
|
BLAKE2b-256 checksum How to use checksums |
bc0011bcd82dc0e649d0de274afb34d00e5ee6d7ee328bbfe6dd4e424caef60f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / airbyte_agent_harvest-0.1.16-py3-none-any.whl
| Download URL | airbyte_agent_harvest-0.1.16-py3-none-any.whl |
|---|---|
| Size | 208.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7a9c52e31b17b0e2b58d85c5127f0eabc62b01b24111d8f823e0bce572ace81a
|
|
BLAKE2b-256 checksum How to use checksums |
c9715103875f47dbc648805030ca15dbf70cb58a92a8e990916e79124a037b3e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|