harvest_list_task_assignments
Retrieve assigned tasks for a specific Harvest project to manage workload distribution and track project progress.
Instructions
List task assignments for a project. Use about {"tool": "harvest_list_task_assignments"} for detailed workflow 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) | |
| project_id | Yes | Project ID |
Implementation Reference
- src/index.ts:269-278 (handler)MCP tool execution handler for 'harvest_list_task_assignments'. Extracts project_id from arguments, calls HarvestClient.getTaskAssignments, and returns the JSON-formatted results as MCP content.case 'harvest_list_task_assignments': const taskAssignments = await harvestClient.getTaskAssignments(typedArgs.project_id as string, typedArgs); return { content: [ { type: 'text', text: JSON.stringify(taskAssignments, null, 2), }, ], };
- src/tools.ts:209-221 (schema)Tool schema definition including name, description, and inputSchema with required project_id and optional filters.name: 'harvest_list_task_assignments', description: 'List task assignments for a project. Use about {"tool": "harvest_list_task_assignments"} for detailed workflow and examples.', inputSchema: { type: 'object', properties: { project_id: { type: 'string', description: 'Project ID' }, 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)' } }, required: ['project_id'] } }
- src/index.ts:69-73 (registration)Registration of all tools (including this one) for the MCP listTools request handler, using the imported tools array.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: tools, }; });
- src/harvest-client.ts:173-176 (helper)Core helper method that constructs the Harvest API endpoint for project task assignments and makes the authenticated HTTP request.async getTaskAssignments(projectId: string, options?: any) { const queryString = this.buildQueryString(options); return this.makeRequest(`/projects/${projectId}/task_assignments${queryString}`); }