Harvest Natural Language Time Entry MCP Server
local-only server
The server can only run on the clientβs local machine because it depends on local resources.
Integrations
Runs as a Node.js application, connecting Harvest's time tracking service with Claude's AI interface to enable natural language processing of time entries and leave requests.
Harvest Natural Language Time Entry MCP Server
An MCP server that lets you log Harvest time entries using natural language, including special handling for leave requests. This server makes time tracking more intuitive by understanding natural language inputs and automatically handling common scenarios like leave requests.
Features
- π£οΈ Natural language time entry parsing
- ποΈ Special leave request handling (e.g., "I'm off sick today")
- β° Configurable work day hours
- π Timezone support
- π― Automatic project and task matching
- π Smart date parsing (today, yesterday, etc.)
Prerequisites
- Node.js installed
- A Harvest account
- Personal access token from Harvest Developer Tools
- Account ID (shown on the same page as your token)
Installation
Installation
- Install the Claude desktop app
- Clone this repository:
- Install dependencies and build:
- Run the setup script:
- Follow the prompts to enter your:
- Harvest Personal Access Token (from https://id.getharvest.com/developers)
- Harvest Account ID
- Standard work day hours (default: 7.5)
- Timezone (default: Australia/Perth)
- Restart Claude desktop app
That's it! You can now use natural language time tracking in Claude.
Staying Updated
To update to the latest version:
The setup script will have configured Claude to use your local build of the server, so any updates you pull will be automatically available after rebuilding.
Usage
The server provides several tools for interacting with Harvest:
log_time
Log time entries using natural language. Examples:
Regular time entries:
Leave requests (automatically uses standard work day hours):
get_time_report
Get time reports using natural language queries. Examples:
- Time Period Options:
- Report Types:
- By Project (default):
- By Client:
- By Task:
- By Team Member:
- Report Details: Each report includes:
- Total hours worked
- Billable vs non-billable hours
- Billable amounts (if you have permission)
- Project/client/task/user details based on report type
list_projects
List all available Harvest projects:
list_tasks
List available tasks for a specific project:
list_entries
View recent time entries:
Configuration
The server supports these environment variables:
HARVEST_ACCESS_TOKEN
: Your Harvest personal access tokenHARVEST_ACCOUNT_ID
: Your Harvest account IDSTANDARD_WORK_DAY_HOURS
: Default hours for a full work day (default: 7.5)TIMEZONE
: Your timezone (default: Australia/Perth)
Development
The server is built using:
- TypeScript
- MCP SDK
- chrono-node for natural language date parsing
- Harvest API v2
To contribute:
- Fork the repository
- Create a feature branch
- Submit a pull request
License
MIT License - see LICENSE for details
You must be authenticated.
Enables natural language time tracking and reporting for Harvest, including automatic leave requests, project/task matching, and date parsing.