get_overdue_milestones
Identify overdue project milestones in GitHub to track delays and manage deadlines effectively.
Instructions
Get a list of overdue milestones
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | ||
| includeIssues | Yes |
Input Schema (JSON Schema)
{
"properties": {
"includeIssues": {
"type": "boolean"
},
"limit": {
"type": "number"
}
},
"required": [
"limit",
"includeIssues"
],
"type": "object"
}
Implementation Reference
- Core implementation of the get_overdue_milestones tool logic. Fetches all milestones, filters for overdue open milestones (past due date and not closed/completed), sorts by due date ascending, limits to the specified number, and computes detailed metrics for each using getMilestoneMetrics.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); } }
- src/index.ts:233-234 (handler)MCP server tool handler dispatch: handles call_tool requests for get_overdue_milestones by delegating to ProjectManagementService.getOverdueMilestones.case "get_overdue_milestones": return await this.service.getOverdueMilestones(args.limit, args.includeIssues);
- Zod input schema validation for get_overdue_milestones tool: requires positive integer limit and boolean includeIssues.// 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>;
- src/infrastructure/tools/ToolRegistry.ts:138-138 (registration)Registers the get_overdue_milestones tool in the central ToolRegistry during initialization.this.registerTool(getOverdueMilestonesTool);
- Full tool definition including name, description, schema reference, and usage examples for MCP list_tools response.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, }, }, ], };