Add it to Claude Code
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-serverHARVEST_ACCESS_TOKENHARVEST_ACCOUNT_IDMake your agent remember this setup
harvest-mcp-server's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.
npx conare@latestFree · one command · indexes the sessions already on disk. Set up in the browser instead →
What it does
- 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
Tools 26
get_companyGet company information and settingslist_time_entriesList time entries with filteringget_time_entryGet specific time entry detailscreate_time_entryCreate new time entryupdate_time_entryUpdate existing time entrydelete_time_entryDelete time entrystart_timerStart a timer for a taskstop_timerStop running timerrestart_timerRestart a previous time entrylist_projectsList all projects with filteringget_projectGet specific project detailscreate_projectCreate new projectupdate_projectUpdate project detailsdelete_projectDelete projectlist_project_task_assignmentsList task assignments for projectcreate_project_task_assignmentAssign task to projectupdate_project_task_assignmentUpdate task assignmentdelete_project_task_assignmentRemove task assignmentlist_tasksList all tasksget_taskGet specific task detailscreate_taskCreate new taskupdate_taskUpdate task detailsdelete_taskDelete tasklist_clientsList all clientsget_clientGet specific client detailscreate_clientCreate new clientEnvironment Variables
HARVEST_ACCESS_TOKENrequiredPersonal access token for Harvest API authenticationHARVEST_ACCOUNT_IDrequiredHarvest account ID associated with the API accessTry it
Original README from ianaleck/harvest-mcp-server
🌾 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
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)
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"
}
}
}
}
- 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
<details> <summary><strong>📊 Company & Account (1 tool)</strong></summary>get_company- Get company information and settings</details>
list_time_entries- List time entries with filteringget_time_entry- Get specific time entry detailscreate_time_entry- Create new time entryupdate_time_entry- Update existing time entrydelete_time_entry- Delete time entrystart_timer- Start a timer for a taskstop_timer- Stop running timerrestart_timer- Restart a previous time entry</details>
list_projects- List all projects with filteringget_project- Get specific project detailscreate_project- Create new projectupdate_project- Update project detailsdelete_project- Delete projectlist_project_task_assignments- List task assignments for projectcreate_project_task_assignment- Assign task to projectupdate_project_task_assignment- Update task assignmentdelete_project_task_assignment- Remove task assignment</details>
list_tasks- List all tasksget_task- Get specific task detailscreate_task- Create new taskupdate_task- Update task detailsdelete_task- Delete task</details>
list_clients- List all clientsget_client- Get specific client detailscreate_client- Create new