harvest_list_tasks
Retrieve and filter tasks from Harvest time tracking system using parameters like active status, page number, and results per page.
Instructions
List all tasks with filtering options. Use about {"tool": "harvest_list_tasks"} for detailed parameters and examples.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| is_active | No | Filter by active status | |
| page | No | Page number | |
| per_page | No | Results per page (max 100) |
Implementation Reference
- src/index.ts:199-208 (handler)MCP tool execution handler for 'harvest_list_tasks'. Delegates to HarvestClient.getTasks() with input arguments and returns formatted JSON response.case 'harvest_list_tasks': const tasks = await harvestClient.getTasks(typedArgs); return { content: [ { type: 'text', text: JSON.stringify(tasks, null, 2), }, ], };
- src/tools.ts:130-141 (schema)Tool schema definition including name, description, and inputSchema for validation.{ name: 'harvest_list_tasks', description: 'List all tasks with filtering options. Use about {"tool": "harvest_list_tasks"} for detailed parameters and examples.', inputSchema: { type: 'object', properties: { is_active: { type: 'boolean', description: 'Filter by active status' }, page: { type: 'number', description: 'Page number' }, per_page: { type: 'number', description: 'Results per page (max 100)' } } } },
- src/harvest-client.ts:127-130 (helper)Core implementation method that constructs the API request to Harvest's /tasks endpoint with query parameters and fetches the data.async getTasks(options?: any) { const queryString = this.buildQueryString(options); return this.makeRequest(`/tasks${queryString}`); }