mcpField
H
Harvest MCP Server

Harvest MCP Server

Local
github.com/tgmclaughlinProductivity5Updated 78w ago

About Harvest MCP Server

Harvest MCP Server lets Harvest users manage time entries and browse projects and tasks through MCP. Its tools cover both running timers and manual entries.

Key features

  1. 01Retrieve authenticated user details
  2. 02List, create, update, and delete time entries
  3. 03Start and stop time entries
  4. 04Browse projects and tasks

Use cases

  1. 01Log work against a Harvest project
  2. 02Correct or remove an existing time entry
  3. 03Start or stop a running timer

MCP support

Exposes Harvest user, time-entry, project, and task operations as tools for MCP clients. It requires Harvest API credentials.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"harvest": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"pull"
]
}
}
}
Run commanddocker run -i --rm pull

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocipull

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Harvest MCP Server

For interacting with the Harvest time tracking API.

image

https://www.loom.com/share/b611c5d90a454fb2a7eab99ec0dc3d20?sid=edad9a28-1bbb-452c-838d-721bc435908f

Features

This MCP server provides the following tools for interacting with Harvest:

User Information
  • get_current_user: Retrieve information about the authenticated user
Time Entries
  • list_time_entries: List time entries with optional date filtering
  • get_time_entry: Retrieve a specific time entry by ID
  • create_time_entry: Create a new time entry via duration
  • create_time_entry_via_start_end: Create a time entry with start/end times
  • update_time_entry: Update an existing time entry
  • delete_time_entry: Delete a time entry
  • delete_time_entry_external_reference: Delete a time entry's external reference
  • restart_time_entry: Restart a stopped time entry
  • stop_time_entry: Stop a running time entry
Projects and Tasks
  • list_projects: List all projects with optional filtering
  • list_tasks: List all tasks with optional filtering

Setup Instructions

Prerequisites
  • Docker
  • Harvest account with API credentials
Installation
For Claude Desktop Users

If you're using Claude Desktop, you only need to add the following configuration to your MCP config file:

"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"
  }
}

Note: You need to have Docker Desktop installed and running.

Credentials: You can obtain your Personal Access Token (PAT) and Account ID from the Harvest Developer Tools page.

Option 1: Pull from Docker Hub (For Other MCP Clients)
  1. Pull the Docker image directly from Docker Hub:
    docker pull tommcl/harvest-mcp
    
Option 2: Build Locally (For Development)
  1. Clone the repository:

    git clone https://github.com/yourusername/harvest-mcp.git
    cd harvest-mcp
    
  2. Build the Docker image:

    docker build -t mcp/harvest .
    

    Then use "mcp/harvest" instead of "tommcl/harvest-mcp" in your MCP config.

    Note: Replace the example credentials with your actual Harvest API credentials. You can obtain your Personal Access Token (PAT) and Account ID from the Harvest Developer Tools page.

Usage

Test it out using Claude Desktop.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.