Get the FREE Ultimate OpenClaw Setup Guide →

harvest

An MCP server for natural language time entry in Harvest

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio adrian-dotco-harvest-mcp-server node path/to/server.js \
  --env TIMEZONE="Your timezone (default: Australia/Perth)" \
  --env HARVEST_ACCOUNT_ID="Your Harvest account ID" \
  --env HARVEST_ACCESS_TOKEN="Your Harvest personal access token" \
  --env STANDARD_WORK_DAY_HOURS="Default hours for a full work day (default: 7.5)"

How to use

This MCP server enables natural language time entry against Harvest and includes special handling for leave requests. It can parse everyday work entries like "2 hours on Project X" as well as more complex phrases such as leaving for sick days or holidays. In addition to logging time, it provides commands to generate time reports, list projects and tasks, and view recent entries. The built-in natural language parsing (via chrono-node) makes it easier to describe work time without manual data entry, and it can automatically match projects and tasks when possible, helping you keep Harvest data consistent and up to date.

Available tools:

  • log_time: Enter time entries using natural language. Examples include regular work entries and leave requests (e.g., "I'm off sick today", "Taking annual leave next week").
  • get_time_report: Retrieve time reports described in natural language, with options to summarize by project, client, task, or team member and to specify a date range (yesterday, last week, this month, Q1, etc.).
  • list_projects: List all Harvest projects to help you choose the right context for your logs and reports.
  • list_tasks: List tasks for a given project to ensure correct task mapping when logging time.
  • list_entries: View your recent Harvest time entries to verify recent activity before running reports or adding new logs.

By using these tools together, you can translate natural language directly into Harvest actions, create meaningful reports, and keep project, client, and task associations accurate with minimal manual effort.

How to install

Prerequisites

  • Node.js installed
  • A Harvest account
  • Personal access token from Harvest Developer Tools
  • Harvest Account ID

Installation steps:

  1. Install Claude app (if required by your setup) and clone the repository:
# Optional: if you use Claude integration with local builds
# Install Claude desktop app if needed
  1. Clone the MCP server repository and install dependencies:
git clone https://github.com/adrian-dotco/harvest-mcp-server.git
cd harvest-mcp-server
npm install
  1. Build the project (if the project requires a build step):
npm run build
  1. Run the setup script to configure Harvest credentials and defaults:
node build/setup.js
  1. Enter required information when prompted:
  1. Restart Claude desktop app (if using Claude integration) to apply the local server build.

Update the server later with:

git pull
npm install
npm run build

Additional notes

Environment variables control how the server authenticates with Harvest and how it formats default work days and time zones. Common issues include invalid Harvest tokens, incorrect account IDs, or misconfigured time zone settings. If you encounter authentication errors, re-run the setup script to re-enter credentials. Ensure your HARVEST_ACCESS_TOKEN has the required permissions for time entries and reports. If you update the build, make sure Claude (or your integration) points to the latest local server build. The server uses chrono-node for date parsing, so phrases like "yesterday" or "last Friday" will be interpreted relative to the current date. For large date ranges in reports, consider specifying explicit dates to avoid ambiguity.

Related MCP Servers

Sponsor this space

Reach thousands of developers