Harvest Natural Language Time Entry MCP Server

Harvest Natural Language Time Entry MCP Server

Enables natural language time tracking and reporting for Harvest, including automatic leave requests, project/task matching, and date parsing.

adrian-dotco

OS Automation
Calendar Management
Developer Tools
Visit Server

Tools

list_tasks

List available tasks for a project

log_time

Log time entry using natural language

list_projects

List available Harvest projects

list_entries

List recent time entries

get_time_report

Get time reports using natural language

README

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

  1. Install the Claude desktop app

  2. Clone this repository:

git clone https://github.com/adrian-dotco/harvest-mcp-server.git
cd harvest-mcp-server
  1. Install dependencies and build:
npm install
npm run build
  1. Run the setup script:
node build/setup.js
  1. 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)
  2. 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:

git pull
npm install
npm run build

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:

"2 hours on Project X doing development work today"
"45 minutes on Project Y testing yesterday"
"3.5 hours on Project Z meetings last Friday"

Leave requests (automatically uses standard work day hours):

"I'm off sick today"
"I'm unwell today"
"Taking annual leave next week"

get_time_report

Get time reports using natural language queries. Examples:

  1. Time Period Options:
"Show time report for last month"
"Get time summary for this week"
"Show hours from January 1st to January 31st"
"Report time for Q1"
"Show me yesterday's hours"
  1. Report Types:
  • By Project (default):
    "Show time report for last month"
    "Get project hours for this week"
    
  • By Client:
    "Show time report by client for this month"
    "Get hours by client for Q1"
    
  • By Task:
    "Show time summary by task for January"
    "Get task breakdown for last week"
    
  • By Team Member:
    "Show team hours for last week"
    "Get time report by user for this month"
    
  1. 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 my projects

list_tasks

List available tasks for a specific project:

Show tasks for Project X

list_entries

View recent time entries:

Show my recent time entries

Configuration

The server supports these environment variables:

  • HARVEST_ACCESS_TOKEN: Your Harvest personal access token
  • HARVEST_ACCOUNT_ID: Your Harvest account ID
  • STANDARD_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:

  1. Fork the repository
  2. Create a feature branch
  3. Submit a pull request

License

MIT License - see LICENSE for details

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
MCP Package Docs Server

MCP Package Docs Server

Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.

Featured
Local
TypeScript
Claude Code MCP

Claude Code MCP

An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.

Featured
Local
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.

Featured
Local
JavaScript
google-calendar-mcp

google-calendar-mcp

Lets LLMs read and manage Google Calendar events.

Featured
Local
TypeScript
Linear MCP Server

Linear MCP Server

Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.

Featured
JavaScript
mermaid-mcp-server

mermaid-mcp-server

A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.

Featured
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP server to provide Jira Tickets information to AI coding agents like Cursor

Featured
TypeScript
Linear MCP Server

Linear MCP Server

A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Featured
JavaScript