Get the FREE Ultimate OpenClaw Setup Guide →

harvest

MCP server for Harvest time-tracking

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio tgmclaughlin-harvest-mcp docker run -i --rm -e HARVEST_ACCOUNT_ID -e HARVEST_TOKEN tommcl/harvest-mcp \
  --env HARVEST_TOKEN="YOUR_API_TOKEN" \
  --env HARVEST_ACCOUNT_ID="YOUR_ACCOUNT_ID"

How to use

Harvest MCP Server provides a set of tools to interact with the Harvest time tracking API. Through the MCP server, you can retrieve information about the authenticated user, manage time entries (create, update, delete, and restart or stop running entries, including operations via external references), and list projects or tasks. The server exposes commands such as get_current_user, list_time_entries, get_time_entry, create_time_entry, create_time_entry_via_start_end, update_time_entry, delete_time_entry, delete_time_entry_external_reference, restart_time_entry, stop_time_entry, list_projects, and list_tasks. To use these capabilities, run the container with the appropriate environment variables for your Harvest account, then call the corresponding MCP endpoints or CLI as exposed by the MCP wrapper in the image.

How to install

  • Prerequisites:

    • Docker installed and running
    • Harvest account with API credentials (Account ID and Personal Access Token)
  • Installation options:

    1. Pull the Docker image (recommended): docker pull tommcl/harvest-mcp

    2. Use via Claude Desktop (per README example):

      • Add the MCP configuration to your MCP config file as shown in the example below, which runs the image in a Docker container: { "harvest": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "HARVEST_ACCOUNT_ID", "-e", "HARVEST_TOKEN", "tommcl/harvest-mcp" ], "env": { "HARVEST_ACCOUNT_ID": "YOUR_ACCOUNT_ID", "HARVEST_TOKEN": "YOUR_API_TOKEN" } } }
    3. Build locally (development): git clone https://github.com/yourusername/harvest-mcp.git cd harvest-mcp docker build -t mcp/harvest .

      Then reference the locally built image in your MCP config as:

      "command": "docker",

      "args": ["run", "-i", "--rm", "-e", "HARVEST_ACCOUNT_ID", "-e", "HARVEST_TOKEN", "mcp/harvest"]

  • Notes:

    • Ensure Docker Desktop is running when using the Docker-based setup.
    • Replace placeholder credentials with your actual Harvest PAT and Account ID. You can obtain them from Harvest Developer Tools.

Additional notes

  • Environment variables: HARVEST_ACCOUNT_ID and HARVEST_TOKEN must be provided for authentication.
  • If you prefer not to store credentials in the MCP config, you can pass them at runtime via the environment or your orchestration layer, depending on your deployment method.
  • The image name in the example is tommcl/harvest-mcp; if you build locally as mcp/harvest, update the MCP config accordingly.
  • The MCP server supports listing and managing time entries, as well as listing projects and tasks; combine operations to automate common Harvest workflows.
  • For troubleshooting, verify that Docker has network access to Harvest API endpoints and that the exposed environment variables are correct.

Related MCP Servers

Sponsor this space

Reach thousands of developers