Skip to main content
Glama

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

TableJSON Schema
NameRequiredDescriptionDefault
limitYes
includeIssuesYes

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

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/HarshKumarSharma/MCP'

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