harvest-mcp-server
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. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_companyA | Retrieve company information and settings for the authenticated account. Returns comprehensive company details including billing configuration, time tracking preferences, and enabled features. |
| list_time_entriesA | 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_entryA | Retrieve a specific time entry by its ID. Returns complete time entry details including project, task, user, and timing information. |
| create_time_entryA | 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_entryA | Update an existing time entry. Can modify project, task, hours, notes, and other fields. Only provided fields will be updated. |
| delete_time_entryA | Delete a time entry permanently. This action cannot be undone. |
| start_timerB | Start a timer for a new time entry. Creates a running time entry that tracks time automatically. |
| stop_timerA | Stop a running timer and finalize the time entry with calculated hours. |
| restart_timerA | Restart a previously stopped timer, creating a new running time entry based on an existing entry. |
| list_projectsA | Retrieve a list of projects with optional filtering by client, active status, and updated date. Returns paginated results with comprehensive project details. |
| get_projectA | Retrieve a specific project by its ID. Returns complete project details including client information, budget settings, billing configuration, and project dates. |
| create_projectA | 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_projectB | 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_projectA | Delete (archive) a project. This action archives the project rather than permanently deleting it, preserving historical data while making it inactive. |
| list_project_task_assignmentsA | 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_assignmentA | 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_assignmentA | Update an existing project task assignment including rates, budget, and active status. Only provided fields will be updated. |
| delete_project_task_assignmentA | Remove a task assignment from a project, making the task unavailable for time tracking on that project. |
| list_tasksB | Retrieve a list of tasks with optional filtering. Tasks are the building blocks for time tracking and can be assigned to projects. |
| get_taskA | Retrieve a specific task by its ID. Returns complete task details including default billing settings and activity status. |
| create_taskC | Create a new task that can be assigned to projects for time tracking. Tasks define what type of work is being performed. |
| update_taskA | Update an existing task. Can modify task name, billing settings, and activity status. Only provided fields will be updated. |
| delete_taskA | Delete (archive) a task. This action archives the task rather than permanently deleting it, preserving historical data while making it inactive. |
| list_clientsA | Retrieve a list of clients with optional filtering by active status and updated date. Returns paginated results with client details including billing information. |
| get_clientA | Retrieve a specific client by its ID. Returns complete client details including contact information and billing configuration. |
| create_clientB | Create a new client for project management and billing. Requires client name and supports address and currency configuration. |
| update_clientA | Update an existing client. Can modify name, active status, address, and currency. Only provided fields will be updated. |
| delete_clientA | Delete (archive) a client. This action archives the client rather than permanently deleting it, preserving historical project and billing data. |
| list_usersA | Retrieve a list of users with optional filtering by active status and updated date. Returns paginated results with user profiles and permissions. |
| get_userA | Retrieve a specific user by ID. Returns complete user profile including roles, permissions, and billing rates. |
| get_current_userA | Retrieve the currently authenticated user's profile and permissions. |
| create_userB | Create a new user with specified roles and permissions. Supports team member management and access control. |
| update_userA | Update an existing user's profile, permissions, and rates. Only provided fields will be updated. |
| delete_userA | Delete (archive) a user. This action archives the user rather than permanently deleting them, preserving time tracking history. |
| list_invoicesA | Retrieve invoices with optional filtering by client, project, state, and date ranges. Returns paginated results with complete invoice details. |
| get_invoiceA | Retrieve a specific invoice by ID with complete details including line items, payments, and billing information. |
| create_invoiceC | Create a new invoice for a client with optional line items and billing details. Supports custom terms, taxes, and payment configurations. |
| update_invoiceB | Update an existing invoice including subject, dates, terms, taxes, and other billing details. Only provided fields will be updated. |
| delete_invoiceA | Delete an invoice permanently. This action cannot be undone and will remove all associated billing data. |
| list_expensesA | Retrieve expenses with filtering by user, client, project, billing status, and date ranges. Returns paginated results with expense details. |
| get_expenseA | Retrieve a specific expense by ID with complete details including receipts and billing information. |
| create_expenseC | Create a new expense entry for a project with category and cost details. Supports receipt attachment and billable status. |
| update_expenseA | Update an existing expense including project, category, cost, and billing details. Only provided fields will be updated. |
| delete_expenseA | Delete an expense permanently. This action cannot be undone. |
| list_expense_categoriesC | Retrieve available expense categories for expense classification and organization. |
| list_estimatesA | Retrieve estimates with filtering by client, state, and date ranges. Returns paginated results with estimate details. |
| get_estimateA | Retrieve a specific estimate by ID with complete details including line items, terms, and client information. |
| create_estimateB | Create a new estimate for a client with optional line items and terms. Supports custom pricing, taxes, and discounts. |
| update_estimateA | Update an existing estimate including subject, terms, taxes, and other details. Only provided fields will be updated. |
| delete_estimateA | Delete an estimate permanently. This action cannot be undone. |
| get_time_reportC | Generate comprehensive time tracking reports with filtering by date range, users, clients, projects, and tasks. Supports grouping and billable status filtering. |
| get_expense_reportA | Generate comprehensive expense reports with filtering by date range, users, clients, projects, and categories. Supports grouping and billing status filtering. |
| get_project_budget_reportB | Generate project budget reports showing spending vs budgets across projects. Helps track project profitability and budget utilization. |
| get_uninvoiced_reportB | 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 | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ianaleck/harvest-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server