Skip to main content
Glama
standardbeagle

Harvest MCP Server

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
NameRequiredDescriptionDefault
idYesTime entry ID

Implementation Reference

  • 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', }); }
  • 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), }, ], };
  • 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'] } },
  • 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`,

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/standardbeagle/harvest-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server