Skip to main content
Glama
CircleCI-Public

mcp-server-circleci

Official

config_helper

Analyze and validate CircleCI configuration files to identify errors and ensure proper syntax for pipeline execution.

Instructions

This tool helps analyze and validate and fix CircleCI configuration files.

Parameters:

  • params: An object containing:

    • configFile: string - The full contents of the CircleCI config file as a string. This should be the raw YAML content, not a file path.

Example usage: { "params": { "configFile": "version: 2.1 orbs: node: circleci/node@7 ..." } }

Note: The configFile content should be provided as a properly escaped string with newlines represented as .

Tool output instructions: - If the config is invalid, the tool will return the errors and the original config. Use the errors to fix the config. - If the config is valid, do nothing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsNo

Implementation Reference

  • The main handler function for the 'config_helper' tool. It validates the provided CircleCI config file using the CircleCI client's configValidate method and returns a success or error message.
    export const configHelper: ToolCallback<{
      params: typeof configHelperInputSchema;
    }> = async (args) => {
      const { configFile } = args.params ?? {};
    
      const circleci = getCircleCIClient();
      const configValidate = await circleci.configValidate.validateConfig({
        config: configFile,
      });
    
      if (configValidate.valid) {
        return {
          content: [
            {
              type: 'text',
              text: 'Your config is valid!',
            },
          ],
        };
      }
    
      return {
        content: [
          {
            type: 'text',
            text: `There are some issues with your config: ${configValidate.errors?.map((error) => error.message).join('\n') ?? 'Unknown error'}`,
          },
        ],
      };
    };
  • Zod input schema defining the 'configFile' parameter for the config_helper tool.
    export const configHelperInputSchema = z.object({
      configFile: z
        .string()
        .describe(
          'The contents of the circleci config file. This should be the contents of the circleci config file, not the path to the file. Typically located at .circleci/config.yml',
        ),
    });
  • Defines the tool object for 'config_helper' including name, description, and input schema.
    export const configHelperTool = {
      name: 'config_helper' as const,
      description: `
      This tool helps analyze and validate and fix CircleCI configuration files.
    
      Parameters:
      - params: An object containing:
        - configFile: string - The full contents of the CircleCI config file as a string. This should be the raw YAML content, not a file path.
    
      Example usage:
      {
        "params": {
          "configFile": "version: 2.1\norbs:\n  node: circleci/node@7\n..."
        }
      }
    
      Note: The configFile content should be provided as a properly escaped string with newlines represented as \n.
    
      Tool output instructions:
        - If the config is invalid, the tool will return the errors and the original config. Use the errors to fix the config.
        - If the config is valid, do nothing.
      `,
      inputSchema: configHelperInputSchema,
    };
  • Registers the configHelperTool in the main CCI_TOOLS array.
    export const CCI_TOOLS = [
      getBuildFailureLogsTool,
      getFlakyTestLogsTool,
      getLatestPipelineStatusTool,
      getJobTestResultsTool,
      configHelperTool,
      createPromptTemplateTool,
      recommendPromptTemplateTestsTool,
      runPipelineTool,
      listFollowedProjectsTool,
      runEvaluationTestsTool,
      rerunWorkflowTool,
      downloadUsageApiDataTool,
      findUnderusedResourceClassesTool,
      analyzeDiffTool,
      runRollbackPipelineTool,
      listComponentVersionsTool,
    ];
  • Maps the 'config_helper' name to its handler function in CCI_HANDLERS.
    export const CCI_HANDLERS = {
      get_build_failure_logs: getBuildFailureLogs,
      find_flaky_tests: getFlakyTestLogs,
      get_latest_pipeline_status: getLatestPipelineStatus,
      get_job_test_results: getJobTestResults,
      config_helper: configHelper,
      create_prompt_template: createPromptTemplate,
      recommend_prompt_template_tests: recommendPromptTemplateTests,
      run_pipeline: runPipeline,
      list_followed_projects: listFollowedProjects,
      run_evaluation_tests: runEvaluationTests,
      rerun_workflow: rerunWorkflow,
      download_usage_api_data: downloadUsageApiData,
      find_underused_resource_classes: findUnderusedResourceClasses,
      analyze_diff: analyzeDiff,
      run_rollback_pipeline: runRollbackPipeline,
      list_component_versions: listComponentVersions,
    } satisfies ToolHandlers;

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

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