harvest
MCP server for Harvest time-tracking
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:
-
Pull the Docker image (recommended): docker pull tommcl/harvest-mcp
-
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" } } }
-
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
web-eval-agent
An MCP server that autonomously evaluates web applications.
mcp-neo4j
Neo4j Labs Model Context Protocol servers
Gitingest
mcp server for gitingest
zotero
Model Context Protocol (MCP) server for the Zotero API, in Python
fhir
FHIR MCP Server – helping you expose any FHIR Server or API as a MCP Server.
unitree-go2
The Unitree Go2 MCP Server is a server built on the MCP that enables users to control the Unitree Go2 robot using natural language commands interpreted by a LLM.