About Harvest
Harvest is an MCP server in the Productivity category: plain-English training-data scout: 12 experts sweep HuggingFace + GitHub, compose scored packs.
The repository has 2 stars and 0 forks.
Install
claude mcp add harvest -- npx -y @the_warl0ck/harvest-mcpnpx -y @the_warl0ck/harvest-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (15)
harvest_create_time_entryCreate a new time entry
Parameters not published.
harvest_delete_time_entryDelete a time entry
Parameters not published.
harvest_get_current_userGet information about the authenticated user
Parameters not published.
harvest_get_projectGet details of a specific project
Parameters not published.
harvest_list_clientsList all clients
Parameters not published.
harvest_list_project_assignmentsList project assignments for the current user
Parameters not published.
harvest_list_projectsList all projects
Parameters not published.
harvest_list_task_assignmentsList task assignments for a project
Parameters not published.
harvest_list_tasksList all tasks
Parameters not published.
harvest_list_time_entriesList time entries with optional filters
Parameters not published.
Show all 15 tools
harvest_list_usersList all users in the account
Parameters not published.
harvest_restart_timerRestart a stopped time entry timer
Parameters not published.
harvest_stop_timerStop a running time entry timer
Parameters not published.
harvest_time_reportGet time report for a date range
Parameters not published.
harvest_update_time_entryUpdate an existing time entry
Parameters not published.
Ask AI
Ask AI about Harvest
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
Harvest MCP Server
A Model Context Protocol (MCP) server that provides integration with the Harvest API v2.
Features
This MCP server provides tools for interacting with Harvest time tracking data:
Time Entry Management
- List time entries with filters
- Create new time entries
- Update existing time entries
- Delete time entries
Project & Task Management
- List and view projects
- List available tasks
User & Client Management
- Get current user information
- List all users
- List all clients
Reporting
- Generate time reports for date ranges
Assignments
- List project assignments
- List task assignments for projects
Installation
# Clone the repository
git clone <repository-url>
cd harvest-mcp
# Install dependencies
npm install
# Build the project
npm run build
Configuration
- Copy the environment template:
cp .env.example .env
- Edit
.envand add your Harvest credentials:
HARVEST_ACCOUNT_ID=your_account_id
HARVEST_ACCESS_TOKEN=your_access_token
To get your Harvest credentials:
- Log in to your Harvest account
- Go to Developers
- Create a new personal access token
- Note your Account ID
Development
# Run in development mode with hot reload
npm run dev
# Build the project
npm run build
# Run the built server
npm start
Testing
The project includes comprehensive tests to verify integration with the Harvest API:
# Run unit tests
npm test
# Run unit tests in watch mode
npm run test:watch
# Run integration tests (requires valid .env setup)
npm run test:integration
Integration Tests
The integration tests connect to your actual Harvest account and perform read-only operations to verify the MCP server works correctly. These tests:
- Connect to the MCP server via stdio transport
- Test all 14 available tools
- Verify proper data structure responses
- Test error handling for invalid inputs
- Use actual Harvest API data (read-only operations only)
Requirements for integration tests:
- Valid
.envfile withHARVEST_ACCOUNT_IDandHARVEST_ACCESS_TOKEN - Active Harvest account with some data (projects, time entries, etc.)
- Network access to Harvest API
Using with Claude Desktop
Add the following to your Claude Desktop configuration file:
{
"mcpServers": {
"harvest": {
"command": "node",
"args": ["/path/to/harvest-mcp/dist/index.js"],
"env": {
"HARVEST_ACCOUNT_ID": "your_account_id",
"HARVEST_ACCESS_TOKEN": "your_access_token"
}
}
}
}
Available Tools
| Tool | Description |
|---|---|
harvest_list_time_entries |
List time entries with optional filters |
harvest_create_time_entry |
Create a new time entry |
harvest_update_time_entry |
Update an existing time entry |
harvest_delete_time_entry |
Delete a time entry |
harvest_restart_timer |
Restart a stopped time entry timer |
harvest_stop_timer |
Stop a running time entry timer |
harvest_list_projects |
List all projects |
harvest_get_project |
Get details of a specific project |
harvest_list_tasks |
List all tasks |
harvest_get_current_user |
Get information about the authenticated user |
harvest_list_users |
List all users in the account |
harvest_list_clients |
List all clients |
harvest_time_report |
Get time report for a date range |
harvest_list_project_assignments |
List project assignments for the current user |
harvest_list_task_assignments |
List task assignments for a project |
Tool Parameters
Time Entry Tools
harvest_list_time_entries
user_id(string): Filter by user IDproject_id(string): Filter by project IDfrom(string): Start date (YYYY-MM-DD)to(string): End date (YYYY-MM-DD)page(number): Page numberper_page(number): Results per page (max 100)
harvest_create_time_entry
project_id(string, required): Project IDtask_id(string, required): Task IDspent_date(string, required): Date of the entry (YYYY-MM-DD)hours(number): Hours workednotes(string): Notes for the time entry
License
MIT
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.