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