Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HARVEST_ACCOUNT_ID | Yes | Your Harvest Account ID, visible in the URL or settings when viewing developer tokens. | |
| HARVEST_ACCESS_TOKEN | Yes | Your Harvest personal access token. Obtain this from Harvest → Settings → Developers → Personal Access Tokens. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_company | Retrieve company information and settings for the authenticated account. Returns comprehensive company details including billing configuration, time tracking preferences, and enabled features. |
| list_time_entries | Retrieve a list of time entries with optional filtering. Supports filtering by user, client, project, task, billing status, date ranges, and more. Returns paginated results. |
| get_time_entry | Retrieve a specific time entry by its ID. Returns complete time entry details including project, task, user, and timing information. |
| create_time_entry | Create a new time entry. Requires project_id, task_id, and spent_date. Must provide either hours OR both started_time and ended_time. |
| update_time_entry | Update an existing time entry. Can modify project, task, hours, notes, and other fields. Only provided fields will be updated. |
| delete_time_entry | Delete a time entry permanently. This action cannot be undone. |
| start_timer | Start a timer for a new time entry. Creates a running time entry that tracks time automatically. |
| stop_timer | Stop a running timer and finalize the time entry with calculated hours. |
| restart_timer | Restart a previously stopped timer, creating a new running time entry based on an existing entry. |
| list_projects | Retrieve a list of projects with optional filtering by client, active status, and updated date. Returns paginated results with comprehensive project details. |
| get_project | Retrieve a specific project by its ID. Returns complete project details including client information, budget settings, billing configuration, and project dates. |
| create_project | Create a new project for a client. Requires project name and client ID. Supports extensive configuration including budget settings, billing preferences, and project timeline. |
| update_project | Update an existing project. Can modify any project settings including name, billing configuration, budget settings, and project timeline. Only provided fields will be updated. |
| delete_project | Delete (archive) a project. This action archives the project rather than permanently deleting it, preserving historical data while making it inactive. |
| list_project_task_assignments | Retrieve task assignments for a specific project. Shows which tasks are available for time tracking on the project and their specific settings. |
| create_project_task_assignment | Assign a task to a project, making it available for time tracking on that project. Allows setting project-specific rates and budgets. |
| update_project_task_assignment | Update an existing project task assignment including rates, budget, and active status. Only provided fields will be updated. |
| delete_project_task_assignment | Remove a task assignment from a project, making the task unavailable for time tracking on that project. |
| list_tasks | Retrieve a list of tasks with optional filtering. Tasks are the building blocks for time tracking and can be assigned to projects. |
| get_task | Retrieve a specific task by its ID. Returns complete task details including default billing settings and activity status. |
| create_task | Create a new task that can be assigned to projects for time tracking. Tasks define what type of work is being performed. |
| update_task | Update an existing task. Can modify task name, billing settings, and activity status. Only provided fields will be updated. |
| delete_task | Delete (archive) a task. This action archives the task rather than permanently deleting it, preserving historical data while making it inactive. |
| list_clients | Retrieve a list of clients with optional filtering by active status and updated date. Returns paginated results with client details including billing information. |
| get_client | Retrieve a specific client by its ID. Returns complete client details including contact information and billing configuration. |
| create_client | Create a new client for project management and billing. Requires client name and supports address and currency configuration. |
| update_client | Update an existing client. Can modify name, active status, address, and currency. Only provided fields will be updated. |
| delete_client | Delete (archive) a client. This action archives the client rather than permanently deleting it, preserving historical project and billing data. |
| list_users | Retrieve a list of users with optional filtering by active status and updated date. Returns paginated results with user profiles and permissions. |
| get_user | Retrieve a specific user by ID. Returns complete user profile including roles, permissions, and billing rates. |
| get_current_user | Retrieve the currently authenticated user's profile and permissions. |
| create_user | Create a new user with specified roles and permissions. Supports team member management and access control. |
| update_user | Update an existing user's profile, permissions, and rates. Only provided fields will be updated. |
| delete_user | Delete (archive) a user. This action archives the user rather than permanently deleting them, preserving time tracking history. |
| list_invoices | Retrieve invoices with optional filtering by client, project, state, and date ranges. Returns paginated results with complete invoice details. |
| get_invoice | Retrieve a specific invoice by ID with complete details including line items, payments, and billing information. |
| create_invoice | Create a new invoice for a client with optional line items and billing details. Supports custom terms, taxes, and payment configurations. |
| update_invoice | Update an existing invoice including subject, dates, terms, taxes, and other billing details. Only provided fields will be updated. |
| delete_invoice | Delete an invoice permanently. This action cannot be undone and will remove all associated billing data. |
| list_expenses | Retrieve expenses with filtering by user, client, project, billing status, and date ranges. Returns paginated results with expense details. |
| get_expense | Retrieve a specific expense by ID with complete details including receipts and billing information. |
| create_expense | Create a new expense entry for a project with category and cost details. Supports receipt attachment and billable status. |
| update_expense | Update an existing expense including project, category, cost, and billing details. Only provided fields will be updated. |
| delete_expense | Delete an expense permanently. This action cannot be undone. |
| list_expense_categories | Retrieve available expense categories for expense classification and organization. |
| list_estimates | Retrieve estimates with filtering by client, state, and date ranges. Returns paginated results with estimate details. |
| get_estimate | Retrieve a specific estimate by ID with complete details including line items, terms, and client information. |
| create_estimate | Create a new estimate for a client with optional line items and terms. Supports custom pricing, taxes, and discounts. |
| update_estimate | Update an existing estimate including subject, terms, taxes, and other details. Only provided fields will be updated. |
| delete_estimate | Delete an estimate permanently. This action cannot be undone. |
| get_time_report | Generate comprehensive time tracking reports with filtering by date range, users, clients, projects, and tasks. Supports grouping and billable status filtering. |
| get_expense_report | Generate comprehensive expense reports with filtering by date range, users, clients, projects, and categories. Supports grouping and billing status filtering. |
| get_project_budget_report | Generate project budget reports showing spending vs budgets across projects. Helps track project profitability and budget utilization. |
| get_uninvoiced_report | Generate reports of uninvoiced time and expenses within a date range. Essential for identifying billable work that hasn't been invoiced yet. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |