Skip to content

Releases: baspenny/harvest-mcp

v1.2.0 - Compact Project List Format

Choose a tag to compare

@baspenny baspenny released this 12 Feb 09:56

What's New

Optimized list_active_projects Output

The list_active_projects tool now returns a compact, readable format by default, reducing context usage by 80-90% compared to the previous full JSON output.

Compact Format (Default)

Client: Acme Corp
  → Website Redesign (project_id: 14308070)
     Tasks: Design (8083367), Development (8083368), Testing (8083369)

Client: 123 Industries
  → Online Store - Phase 1 (project_id: 14308069)
     Tasks: Graphic Design (8083365), Programming (8083366)

Full Format (Optional)

Users who need the complete JSON response can specify format: 'full' to get the previous behavior.

Benefits

  • Faster responses: Less data to process and transmit
  • Better readability: Easy to scan and identify project/task IDs
  • Reduced context usage: More efficient token usage for AI assistants
  • Backward compatibility: Full JSON still available via format parameter

Changes

  • Added format parameter to list_active_projects ('compact' or 'full')
  • Implemented formatCompactProjects() helper function
  • Updated documentation in README.md and CLAUDE.md
  • Version bumped to 1.2.0

Breaking Changes

⚠️ Minor breaking change: The default output format has changed from full JSON to compact format. If you require the full JSON response, add format: 'full' to your tool calls.

Installation

After updating, remember to:

  1. Run npm install to ensure dependencies are up to date
  2. Run npm run build to compile the TypeScript
  3. Restart your MCP client (e.g., Claude Desktop) to pick up the changes

Full Changelog: v1.1.0...v1.2.0

v1.1.0 - Timer Management & Error Handling

Choose a tag to compare

@baspenny baspenny released this 12 Feb 09:41

New Features

Timer Management

  • start_timer: Create a running timer without specifying hours (automatically starts tracking time)
  • stop_timer: Stop a running timer using Harvest's dedicated /stop endpoint
  • restart_timer: Restart a previously stopped timer using the /restart endpoint
  • get_running_timer: Check if a timer is running and display elapsed time

Error Handling

  • Added comprehensive error handling to all tool handlers with try-catch blocks
  • Improved error messages to include Harvest API response details for better debugging

Improvements

  • Fixed stop_timer to use the correct Harvest API v2 endpoint (PATCH /time_entries/{id}/stop)
  • Enhanced stop_timer output to show project name, task name, total hours, and date
  • All tools now provide detailed error messages when operations fail

Documentation

  • Updated CLAUDE.md with new timer tools
  • Added detailed README.md sections for all timer operations
  • Updated API reference to reflect correct Harvest API v2 endpoints
  • Added example interactions for timer workflows

Breaking Changes

None - all existing functionality remains backward compatible.

Installation

npm install
npm run build

Configure in your MCP client (e.g., Claude Desktop):

{
  "mcpServers": {
    "harvest": {
      "command": "node",
      "args": ["/path/to/harvest-mcp/build/index.js"],
      "env": {
        "HARVEST_ACCESS_TOKEN": "your-token-here",
        "HARVEST_ACCOUNT_ID": "your-account-id"
      }
    }
  }
}

v1.0.0 - Initial Release

Choose a tag to compare

@baspenny baspenny released this 05 Feb 09:41

Harvest MCP Server v1.0.0

First stable release of the Harvest MCP server - a Model Context Protocol integration for Harvest time tracking.

Features

Verify credentials and retrieve authenticated user information
List active projects with their associated tasks
Retrieve time entries for any date or date range with optional project/user filtering
Log time entries for specific projects and tasks
Delete time entries to correct mistakes
Flexible authentication: Supports both environment variables and per-call credentials
Relative date parsing: Use natural language like "today", "yesterday", "last monday", "3 days ago"

Available Tools

  • get_my_profile - Verify credentials and get user info
  • list_active_projects - Get assigned projects with tasks
  • get_time_entries - Retrieve time entries with flexible filtering
  • log_time - Create new time entries
  • delete_time_entry - Remove time entries

Installation

  1. Clone the repository
  2. Run npm install
  3. Run npm run build
  4. Configure in your MCP client (see README for details)

Requirements

  • Node.js v16 or higher
  • Harvest account with API access
  • Personal Access Token and Account ID

See the README for full documentation and usage examples.