Skip to main content
Glama

get_launch_summary

Retrieve a concise launch summary from Zebrunner Test Case Management using the new reporting API, focusing on essential metrics without detailed test session data.

Instructions

📋 Get quick launch summary without detailed test sessions (uses new reporting API)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectKeyNoProject key (e.g., 'android' or 'ANDROID') - alternative to projectId
projectIdNoProject ID (e.g., 7) - alternative to projectKey
launchIdYesLaunch ID (e.g., 118685)
formatNoOutput formatjson

Implementation Reference

  • MCP tool registration for 'get_launch_summary' - defines name, description, input schema, and delegates execution to ZebrunnerReportingToolHandlers.getLauncherSummary
    server.tool(
      "get_launch_summary",
      "📊 Get quick launcher summary without detailed test sessions (uses new reporting API)",
      {
        projectKey: z.string().min(1).optional().describe("Project key (e.g., 'android' or 'ANDROID') - alternative to projectId"),
        projectId: z.number().int().positive().optional().describe("Project ID (e.g., 7) - alternative to projectKey"),
        launchId: z.number().int().positive().describe("Launch ID (e.g., 118685)"),
        format: z.enum(['dto', 'json', 'string']).default('json').describe("Output format")
      },
      async (args) => reportingHandlers.getLauncherSummary(args)
    );
  • Zod input schema validation for get_launch_summary tool parameters: project identifier (key or ID), required launchId, and output format.
    {
      projectKey: z.string().min(1).optional().describe("Project key (e.g., 'android' or 'ANDROID') - alternative to projectId"),
      projectId: z.number().int().positive().optional().describe("Project ID (e.g., 7) - alternative to projectKey"),
      launchId: z.number().int().positive().describe("Launch ID (e.g., 118685)"),
      format: z.enum(['dto', 'json', 'string']).default('json').describe("Output format")
  • Comprehensive Zod schema for LaunchResponse from Reporting API, defining all fields for launch summary data including stats, metadata, and attributes.
    export const LaunchResponseSchema = z.object({
      id: z.number(),
      name: z.string(),
      ciRunId: z.string().optional(),
      status: z.string(),
      project: z.object({
        id: z.number(),
        name: z.string(),
        key: z.string(),
        deleted: z.boolean()
      }).optional(),
      projectId: z.number(),
      user: z.object({
        id: z.number(),
        username: z.string(),
        email: z.string()
      }).optional(),
      testSuite: z.object({
        id: z.number(),
        name: z.string(),
        projectId: z.number().nullable()
      }).optional(),
      ciBuild: z.object({
        jobUrl: z.string(),
        number: z.string()
      }).optional(),
      startedAt: z.coerce.number(), // timestamp - coerce to handle string or number
      endedAt: z.coerce.number().optional(), // timestamp - coerce to handle string or number
      elapsed: z.coerce.number().optional(),
      framework: z.string().optional(),
      environment: z.string().optional(),
      build: z.string().optional(),
      locale: z.string().optional(),
      platform: z.string().optional(),
      platformVersion: z.string().optional(),
      device: z.string().optional(),
      passed: z.coerce.number().optional(),
      passedManually: z.coerce.number().optional(),
      failed: z.coerce.number().optional(),
      failedAsKnown: z.coerce.number().optional(),
      skipped: z.coerce.number().optional(),
      blocked: z.coerce.number().optional(),
      inProgress: z.coerce.number().optional(),
      aborted: z.coerce.number().optional(),
      reviewed: z.boolean().optional(),
      isRelaunchPossible: z.boolean().optional(),
      isLaunchAgainPossible: z.boolean().optional(),
      isAbortPossible: z.boolean().optional(),
      labels: z.array(z.object({
        key: z.string(),
        value: z.string()
      })).optional(),
      artifacts: z.array(z.object({
        name: z.string(),
        value: z.string()
      })).optional(),
      testSuiteId: z.number().optional(),
      userId: z.number().optional()
    });
  • Core API method to fetch launch details/summary from Zebrunner Reporting API endpoint, validates with LaunchResponseSchema - underlying logic for the tool.
    async getLaunch(launchId: number, projectId: number): Promise<LaunchResponse> {
      const url = `/api/reporting/v1/launches/${launchId}?projectId=${projectId}`;
      const response = await this.makeAuthenticatedRequest<any>('GET', url);
      
      // Extract the actual launch data from the nested response
      const launchData = response.data || response;
      
      return LaunchResponseSchema.parse(launchData);
    }

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/maksimsarychau/mcp-zebrunner'

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