harvest_restart_timer
Restart a stopped time entry timer in Harvest to continue tracking work time. Provide the time entry ID to resume recording hours for billing or project management.
Instructions
Restart a stopped time entry timer. Use about {"tool": "harvest_restart_timer"} for detailed workflow and examples.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Time entry ID |
Implementation Reference
- src/harvest-client.ts:104-108 (handler)Core handler function that executes the tool logic by making a PATCH request to the Harvest API endpoint /time_entries/{id}/restart to restart the stopped timer.async restartTimer(id: string) { return this.makeRequest(`/time_entries/${id}/restart`, { method: 'PATCH', }); }
- src/index.ts:129-138 (handler)MCP server tool dispatch handler in the switch statement that receives tool arguments, calls the HarvestClient.restartTimer method, and formats the response as MCP content.case 'harvest_restart_timer': const restartedTimer = await harvestClient.restartTimer(typedArgs.id as string); return { content: [ { type: 'text', text: JSON.stringify(restartedTimer, null, 2), }, ], };
- src/tools.ts:62-72 (schema)Tool schema definition including name, description, and input schema requiring a 'id' parameter of type string.{ name: 'harvest_restart_timer', description: 'Restart a stopped time entry timer. Use about {"tool": "harvest_restart_timer"} for detailed workflow and examples.', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Time entry ID' } }, required: ['id'] } },
- src/tools.ts:62-72 (registration)The tool is registered as part of the exported tools array used by the MCP server's listTools handler.{ name: 'harvest_restart_timer', description: 'Restart a stopped time entry timer. Use about {"tool": "harvest_restart_timer"} for detailed workflow and examples.', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Time entry ID' } }, required: ['id'] } },
- src/harvest-client.ts:425-467 (helper)Detailed documentation and usage examples for the harvest_restart_timer tool provided in the getAboutInfo method.'harvest_restart_timer': `# harvest_restart_timer Restarts a stopped time entry timer to resume time tracking. ## Purpose Resume timing on a previously stopped time entry, setting is_running to true and timer_started_at to current time. ## Parameters - \`id\` (string, required): The time entry ID to restart ## Example Usage **Restart a stopped timer:** \`\`\`json { "tool": "harvest_restart_timer", "id": "98765" } \`\`\` ## Response Format Returns the updated time entry with: - \`is_running\`: true - \`timer_started_at\`: Current timestamp - \`hours\`: Previous accumulated hours - All other time entry properties ## Requirements - Time entry must exist - Timer must not already be running - Only one timer can run at a time per user ## Workflow 1. Find stopped entry: harvest_list_time_entries 2. Restart timer: harvest_restart_timer 3. Work on the task 4. Stop when done: harvest_stop_timer ## Error Conditions - Entry not found: Invalid ID - Timer already running: Cannot restart running timer - Another timer running: Stop other timer first`,