Skip to main content
Glama
kunwarVivek

mcp-github-project-manager

get_sprint_metrics

Retrieve progress metrics for a specific GitHub sprint, including issue details when requested, to track development workflow performance.

Instructions

Get progress metrics for a specific sprint

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sprintIdYes
includeIssuesYes

Implementation Reference

  • Core implementation of getSprintMetrics: fetches sprint by ID, loads associated issues, calculates completion metrics (total/completed/remaining issues, percentage), determines days remaining and active status, optionally includes issue details.
    async getSprintMetrics(id: string, includeIssues: boolean = false): Promise<SprintMetrics> {
      try {
        const sprint = await this.sprintRepo.findById(id);
        if (!sprint) {
          throw new ResourceNotFoundError(ResourceType.SPRINT, id);
        }
    
        const issuePromises = sprint.issues.map((issueId: string) => this.issueRepo.findById(issueId));
        const issuesResult = await Promise.all(issuePromises);
        const issues = issuesResult.filter((issue: Issue | null) => issue !== null) as Issue[];
    
        const totalIssues = issues.length;
        const completedIssues = issues.filter(
          issue => issue.status === ResourceStatus.CLOSED || issue.status === ResourceStatus.COMPLETED
        ).length;
        const remainingIssues = totalIssues - completedIssues;
        const completionPercentage = totalIssues > 0 ? Math.round((completedIssues / totalIssues) * 100) : 0;
    
        const now = new Date();
        const endDate = new Date(sprint.endDate);
        const daysRemaining = Math.ceil((endDate.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));
        const isActive = now >= new Date(sprint.startDate) && now <= endDate;
    
        return {
          id: sprint.id,
          title: sprint.title,
          startDate: sprint.startDate,
          endDate: sprint.endDate,
          totalIssues,
          completedIssues,
          remainingIssues,
          completionPercentage,
          status: sprint.status,
          issues: includeIssues ? issues : undefined,
          daysRemaining,
          isActive
        };
      } catch (error) {
        throw this.mapErrorToMCPError(error);
      }
    }
  • Defines the ToolDefinition for get_sprint_metrics including name, description, Zod input schema (sprintId: string, includeIssues: boolean), and usage example.
    export const getSprintMetricsTool: ToolDefinition<GetSprintMetricsArgs> = {
      name: "get_sprint_metrics",
      description: "Get progress metrics for a specific sprint",
      schema: getSprintMetricsSchema as unknown as ToolSchema<GetSprintMetricsArgs>,
      examples: [
        {
          name: "Get sprint progress",
          description: "Get progress metrics for sprint 'sprint_1'",
          args: {
            sprintId: "sprint_1",
            includeIssues: true,
          },
        },
      ],
    };
  • Registers the getSprintMetricsTool in the central ToolRegistry singleton during initialization.
    this.registerTool(getSprintMetricsTool);
  • MCP server request handler dispatches get_sprint_metrics calls to ProjectManagementService.getSprintMetrics after validation.
    case "get_sprint_metrics":
      return await this.service.getSprintMetrics(args.sprintId, args.includeIssues);
  • TypeScript interface defining the structure of SprintMetrics returned by the handler.
    export interface SprintMetrics {
      id: string;
      title: string;
      startDate: string;
      endDate: string;
      totalIssues: number;
      completedIssues: number;
      remainingIssues: number;
      completionPercentage: number;
      status: ResourceStatus;
      issues?: Issue[];
      daysRemaining?: number;
      isActive: boolean;
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

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/kunwarVivek/mcp-github-project-manager'

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