Featured

Deploy OpenClaw in 60 seconds β€” 20% off logoDeploy OpenClaw in 60 seconds β€” 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger β†’
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger β†’
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free β†’
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now β†’
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data β€” no proxies, no parsers, no maintenance.

Start building free β†’
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it β€” secured from day one.

Get it set up for you β†’
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free β†’
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here β†’

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

harvest-mcp-server MCP server](https://glama.ai/mcp/servers/ianaleck/harvest-mcp-server/badges/score.svg)](https://glama.ai/mcp/servers/ianaleck/harvest-mcp-server) πŸ“‡ ☁️ 🏠 - Harvest time tracking integration with 40+ tools for managing time entries,...

README.md

🌾 Harvest MCP Server

![npm version](https://www.npmjs.com/package/@ianaleck/harvest-mcp-server) ![TypeScript](https://www.typescriptlang.org/) ![MCP](https://modelcontextprotocol.io/) ![License: MIT](https://opensource.org/licenses/MIT) ![Tests](https://github.com/ianaleck/harvest-mcp-server) ![Buy Me A Coffee](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).

![harvest-mcp-server MCP server](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

# 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)
  1. 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"
      }
    }
  }
}
  1. 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>

<details> <summary><strong>⏰ Time Entries (8 tools)</strong></summary>

  • 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

</details>

<details> <summary><strong>πŸ—οΈ Projects (7 tools)</strong></summary>

  • 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

</details>

<details> <summary><strong>πŸ“ Tasks (5 tools)</strong></summary>

  • 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

</details>

<details> <summary><strong>🏒 Clients (5 tools)</strong></summary>

  • 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

</details>

<details> <summary><strong>πŸ‘€ Users (6 tools)</strong></summary>

  • 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

</details>

<details> <summary><strong>πŸ’Έ Expenses (6 tools)</strong></summary>

  • 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

</details>

<details> <summary><strong>🧾 Invoices (5 tools)</strong></summary>

  • 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

</details>

<details> <summary><strong>πŸ“‹ Estimates (5 tools)</strong></summary>

  • 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

</details>

<details> <summary><strong>πŸ“ˆ Reports (4 tools)</strong></summary>

  • 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

</details>

πŸ§ͺ Development

Setup

git clone https://github.com/ianaleck/harvest-mcp-server.git
cd harvest-mcp-server
npm install

Environment Configuration

cp .env.example .env
# Edit .env with your Harvest API credentials

Testing

# Run all tests
npm test

# Run with coverage
npm run test:coverage

# Run specific test suites
npm run test:unit
npm run test:integration
npm run test:contract

Building

# Build for production
npm run build

# Start development server
npm run dev

πŸ“‹ API Requirements

This server requires a Harvest account with API access. Users must comply with:

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes with tests
  4. Ensure all tests pass (npm test)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“ž Support

---

<div align="center">

Made with ❀️ for the MCP community

⭐ Star this project if you find it useful!

</div>

See related servers & alternatives β†’

Related MCP servers

Browse all β†’

Related guides

Hand-picked reading to help you choose and use Productivity servers.