Harvest MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add -e "HARVEST_ACCESS_TOKEN=${HARVEST_ACCESS_TOKEN}" -e "HARVEST_ACCOUNT_ID=${HARVEST_ACCOUNT_ID}" harvest-mcp-server -- npx -y @ianaleck/harvest-mcp-server
Required:HARVEST_ACCESS_TOKENHARVEST_ACCOUNT_ID
README.md

Unofficial Model Context Protocol (MCP) server for the Harvest time tracking API

๐ŸŒพ Harvest MCP Server

Unofficial Model Context Protocol (MCP) server for seamless integration with the Harvest time tracking API

โš ๏ธ Disclaimer: This is an unofficial, third-party integration with the Harvest API. This project is not affiliated with, endorsed by, or sponsored by Harvest or Forecast (the company behind Harvest).

โœจ Features

  • ๐Ÿ”— Complete Harvest API v2 Coverage - 40+ tools covering all major endpoints
  • ๐Ÿ›ก๏ธ Type-Safe - Full TypeScript support with Zod validation
  • โšก High Performance - Built with async/await and proper rate limiting
  • ๐Ÿงช Thoroughly Tested - Comprehensive unit, integration, and contract tests
  • ๐Ÿ“Š Rich Logging - Structured logging for debugging and monitoring
  • ๐Ÿ”„ Auto-Retry - Intelligent retry logic with exponential backoff
  • ๐Ÿ“– MCP Compliant - Works with Claude Desktop and other MCP clients

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 18+
  • Harvest account with API access
  • MCP-compatible client (like Claude Desktop)

Installation

# Install globally
npm install -g @ianaleck/harvest-mcp-server

# Or install locally
npm install @ianaleck/harvest-mcp-server

Configuration

  1. Get your Harvest API credentials:

    • Go to Harvest โ†’ Settings โ†’ Developers โ†’ Personal Access Tokens
    • Create a new token
    • Note your Account ID (visible in URL or settings)
  2. Configure your MCP client (e.g., Claude Desktop):

{
  "mcpServers": {
    "harvest": {
      "command": "npx",
      "args": ["-y", "@ianaleck/harvest-mcp-server"],
      "env": {
        "HARVEST_ACCESS_TOKEN": "your_harvest_personal_access_token",
        "HARVEST_ACCOUNT_ID": "your_harvest_account_id"
      }
    }
  }
}
  1. Start using with Claude!

๐ŸŽฏ What You Can Do

Once connected, you can ask Claude to help with:

โฑ๏ธ Time Tracking

  • "Show me all my time entries for this week"
  • "Start a timer for the 'Development' task on the 'Website Project'"
  • "How many hours did I work on Project X last month?"

๐Ÿ“‹ Project Management

  • "List all active projects for client Acme Corp"
  • "Create a new project called 'Mobile App' for client TechStart"
  • "Show me project budget vs actual time spent"

๐Ÿ‘ฅ Team Management

  • "Who are all the users in our Harvest account?"
  • "Show me John's time entries for last week"

๐Ÿ’ฐ Financial Tracking

  • "Generate an expense report for Q4"
  • "Show me all unpaid invoices"
  • "What's our total billable hours this month?"

๐Ÿ› ๏ธ Available Tools

๐Ÿ“Š Company & Account (1 tool)
  • get_company - Get company information and settings
โฐ Time Entries (8 tools)
  • list_time_entries - List time entries with filtering
  • get_time_entry - Get specific time entry details
  • create_time_entry - Create new time entry
  • update_time_entry - Update existing time entry
  • delete_time_entry - Delete time entry
  • start_timer - Start a timer for a task
  • stop_timer - Stop running timer
  • restart_timer - Restart a previous time entry
๐Ÿ—๏ธ Projects (7 tools)
  • list_projects - List all projects with filtering
  • get_project - Get specific project details
  • create_project - Create new project
  • update_project - Update project details
  • delete_project - Delete project
  • list_project_task_assignments - List task assignments for project
  • create_project_task_assignment - Assign task to project
  • update_project_task_assignment - Update task assignment
  • delete_project_task_assignment - Remove task assignment
๐Ÿ“ Tasks (5 tools)
  • list_tasks - List all tasks
  • get_task - Get specific task details
  • create_task - Create new task
  • update_task - Update task details
  • delete_task - Delete task
๐Ÿข Clients (5 tools)
  • list_clients - List all clients
  • get_client - Get specific client details
  • create_client - Create new

Tools (26)

get_companyGet company information and settings
list_time_entriesList time entries with filtering
get_time_entryGet specific time entry details
create_time_entryCreate new time entry
update_time_entryUpdate existing time entry
delete_time_entryDelete time entry
start_timerStart a timer for a task
stop_timerStop running timer
restart_timerRestart a previous time entry
list_projectsList all projects with filtering
get_projectGet specific project details
create_projectCreate new project
update_projectUpdate project details
delete_projectDelete project
list_project_task_assignmentsList task assignments for project
create_project_task_assignmentAssign task to project
update_project_task_assignmentUpdate task assignment
delete_project_task_assignmentRemove task assignment
list_tasksList all tasks
get_taskGet specific task details
create_taskCreate new task
update_taskUpdate task details
delete_taskDelete task
list_clientsList all clients
get_clientGet specific client details
create_clientCreate new client

Environment Variables

HARVEST_ACCESS_TOKENrequiredPersonal access token for Harvest API authentication
HARVEST_ACCOUNT_IDrequiredHarvest account ID associated with the API access

Configuration

claude_desktop_config.json
{"mcpServers": {"harvest": {"command": "npx", "args": ["-y", "@ianaleck/harvest-mcp-server"], "env": {"HARVEST_ACCESS_TOKEN": "your_harvest_personal_access_token", "HARVEST_ACCOUNT_ID": "your_harvest_account_id"}}}}

Try it

โ†’Show me all my time entries for this week.
โ†’Start a timer for the 'Development' task on the 'Website Project'.
โ†’List all active projects for client Acme Corp.
โ†’What's our total billable hours this month?
โ†’Show me John's time entries for last week.

Frequently Asked Questions

What are the key features of Harvest MCP Server?

Complete Harvest API v2 coverage with 40+ tools. Type-safe implementation with Zod validation. High performance with async/await and rate limiting. Intelligent auto-retry logic with exponential backoff. MCP compliant for use with Claude Desktop.

What can I use Harvest MCP Server for?

Quickly logging time entries via natural language commands to Claude. Generating project budget vs actual time spent reports. Managing client and project task assignments without leaving the chat interface. Reviewing team productivity by querying specific user time entries.

How do I install Harvest MCP Server?

Install Harvest MCP Server by running: npm install -g @ianaleck/harvest-mcp-server

What MCP clients work with Harvest MCP Server?

Harvest MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Harvest MCP Server docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare