# ๐พ Harvest MCP Server
[](https://www.npmjs.com/package/@ianaleck/harvest-mcp-server)
[](https://www.typescriptlang.org/)
[](https://modelcontextprotocol.io/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/ianaleck/harvest-mcp-server)
[](https://buymeacoffee.com/ianaleck)
> **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).
[](https://glama.ai/mcp/servers/ianaleck/harvest-mcp-server)
## โจ 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
```bash
# 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):
```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"
}
}
}
}
```
3. **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 client
- `update_client` - Update client details
- `delete_client` - Delete client
๐ค Users (6 tools)
- `list_users` - List all users in account
- `get_user` - Get specific user details
- `get_current_user` - Get current authenticated user
- `create_user` - Create new user
- `update_user` - Update user details
- `delete_user` - Delete user
๐ธ Expenses (6 tools)
- `list_expenses` - List expenses with filtering
- `get_expense` - Get specific expense details
- `create_expense` - Create new expense
- `update_expense` - Update expense details
- `delete_expense` - Delete expense
- `list_expense_categories` - List all expense categories
๐งพ Invoices (5 tools)
- `list_invoices` - List invoices with filtering
- `get_invoice` - Get specific invoice details
- `create_invoice` - Create new invoice
- `update_invoice` - Update invoice details
- `delete_invoice` - Delete invoice
๐ Estimates (5 tools)
- `list_estimates` - List estimates with filtering
- `get_estimate` - Get specific estimate details
- `create_estimate` - Create new estimate
- `update_estimate` - Update estimate details
- `delete_estimate` - Delete estimate
๐ Reports (4 tools)
- `get_time_report` - Generate time reports with filtering
- `get_expense_report` - Generate expense reports
- `get_project_budget_report` - Get project budget analysis
- `get_uninvoiced_report` - Get uninvoiced time and expenses