Skip to main content
Glama

mcp-server-circleci

Official
handler.ts2.2 kB
import { ToolCallback } from '@modelcontextprotocol/sdk/server/mcp.js'; import { getPipelineNumberFromURL, getProjectSlugFromURL, getBranchFromURL, identifyProjectSlug, getJobNumberFromURL, } from '../../lib/project-detection/index.js'; import { getBuildFailureOutputInputSchema } from './inputSchema.js'; import getPipelineJobLogs from '../../lib/pipeline-job-logs/getPipelineJobLogs.js'; import { formatJobLogs } from '../../lib/pipeline-job-logs/getJobLogs.js'; import mcpErrorOutput from '../../lib/mcpErrorOutput.js'; export const getBuildFailureLogs: ToolCallback<{ params: typeof getBuildFailureOutputInputSchema; }> = async (args) => { const { workspaceRoot, gitRemoteURL, branch, projectURL, projectSlug: inputProjectSlug, } = args.params ?? {}; let projectSlug: string | undefined; let pipelineNumber: number | undefined; let branchFromURL: string | undefined; let jobNumber: number | undefined; if (inputProjectSlug) { if (!branch) { return mcpErrorOutput( 'Branch not provided. When using projectSlug, a branch must also be specified.', ); } projectSlug = inputProjectSlug; } else if (projectURL) { projectSlug = getProjectSlugFromURL(projectURL); pipelineNumber = getPipelineNumberFromURL(projectURL); branchFromURL = getBranchFromURL(projectURL); jobNumber = getJobNumberFromURL(projectURL); } else if (workspaceRoot && gitRemoteURL && branch) { projectSlug = await identifyProjectSlug({ gitRemoteURL, }); } else { return mcpErrorOutput( 'Missing required inputs. Please provide either: 1) projectSlug with branch, 2) projectURL, or 3) workspaceRoot with gitRemoteURL and branch.', ); } if (!projectSlug) { return mcpErrorOutput(` Project not found. Ask the user to provide the inputs user can provide based on the tool description. Project slug: ${projectSlug} Git remote URL: ${gitRemoteURL} Branch: ${branch} `); } const logs = await getPipelineJobLogs({ projectSlug, branch: branchFromURL || branch, pipelineNumber, jobNumber, }); return formatJobLogs(logs); };

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