Skip to main content
Glama

mcp-server-circleci

Official
jobsPrivate.ts1.88 kB
import { z } from 'zod'; import { HTTPClient } from '../circleci/httpClient.js'; const JobOutputResponseSchema = z.string(); const JobErrorResponseSchema = z.string(); type JobOutputResponse = z.infer<typeof JobOutputResponseSchema>; type JobErrorResponse = z.infer<typeof JobErrorResponseSchema>; export class JobsPrivate { protected client: HTTPClient; constructor(client: HTTPClient) { this.client = client; } /** * Get detailed information about a specific job * @param params Configuration parameters * @param params.projectSlug The project slug (e.g., "gh/CircleCI-Public/api-preview-docs") * @param params.jobNumber The number of the job * @param params.taskIndex The index of the task * @param params.stepId The id of the step * @returns Detailed job information including status, timing, and build details */ async getStepOutput({ projectSlug, jobNumber, taskIndex, stepId, }: { projectSlug: string; jobNumber: number; taskIndex: number; stepId: number; }) { // /api/private/output/raw/:vcs/:user/:prj/:num/output/:task_index/:step_id const outputResult = await this.client.get<JobOutputResponse>( `/output/raw/${projectSlug}/${jobNumber}/output/${taskIndex}/${stepId}`, ); const parsedOutput = JobOutputResponseSchema.safeParse(outputResult); // /api/private/output/raw/:vcs/:user/:prj/:num/error/:task_index/:step_id const errorResult = await this.client.get<JobErrorResponse>( `/output/raw/${projectSlug}/${jobNumber}/error/${taskIndex}/${stepId}`, ); const parsedError = JobErrorResponseSchema.safeParse(errorResult); if (!parsedOutput.success || !parsedError.success) { throw new Error('Failed to parse job output or error response'); } return { output: parsedOutput.data, error: parsedError.data, }; } }

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/CircleCI-Public/mcp-server-circleci'

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