get_overdue_milestones
Retrieve a list of overdue milestones in GitHub projects, optionally including related issues, to track and prioritize pending tasks effectively.
Instructions
Get a list of overdue milestones
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| includeIssues | Yes | ||
| limit | Yes |
Implementation Reference
- Core handler function that fetches all milestones, filters those past due date and not closed/completed, sorts by due date ascending, limits the result, computes metrics for each (including issues if requested), and returns MilestoneMetrics array.async getOverdueMilestones(limit: number = 10, includeIssues: boolean = false): Promise<MilestoneMetrics[]> { try { const milestones = await this.milestoneRepo.findAll(); const now = new Date(); const overdueMilestones = milestones.filter(milestone => { if (!milestone.dueDate) return false; const dueDate = new Date(milestone.dueDate); return now > dueDate && milestone.status !== ResourceStatus.COMPLETED && milestone.status !== ResourceStatus.CLOSED; }); overdueMilestones.sort((a, b) => { if (!a.dueDate || !b.dueDate) return 0; return new Date(a.dueDate).getTime() - new Date(b.dueDate).getTime(); }); const limitedMilestones = overdueMilestones.slice(0, limit); const milestoneMetrics = await Promise.all( limitedMilestones.map(milestone => this.getMilestoneMetrics(milestone.id, includeIssues) ) ); return milestoneMetrics; } catch (error) { throw this.mapErrorToMCPError(error); } }
- ToolDefinition including name, description, input schema (limit: positive int, includeIssues: boolean), and usage examples.export const getOverdueMilestonesTool: ToolDefinition<GetOverdueMilestonesArgs> = { name: "get_overdue_milestones", description: "Get a list of overdue milestones", schema: getOverdueMilestonesSchema as unknown as ToolSchema<GetOverdueMilestonesArgs>, examples: [ { name: "List overdue milestones", description: "Get the top 5 overdue milestones", args: { limit: 5, includeIssues: false, }, }, ], };
- src/infrastructure/tools/ToolRegistry.ts:188-191 (registration)Registers the getOverdueMilestonesTool in the central ToolRegistry during built-in tools initialization.this.registerTool(getSprintMetricsTool); this.registerTool(getOverdueMilestonesTool); this.registerTool(getUpcomingMilestonesTool);
- src/index.ts:252-253 (handler)MCP server request handler dispatches 'call_tool' requests for 'get_overdue_milestones' to the ProjectManagementService implementation.case "get_overdue_milestones": return await this.service.getOverdueMilestones(args.limit, args.includeIssues);
- Zod schema for input validation: limit (positive integer), includeIssues (boolean). Defines GetOverdueMilestonesArgs type.// Schema for get_overdue_milestones tool export const getOverdueMilestonesSchema = z.object({ limit: z.number().int().positive(), includeIssues: z.boolean(), }); export type GetOverdueMilestonesArgs = z.infer<typeof getOverdueMilestonesSchema>;