Skip to main content
Glama

mcp-server-circleci

Official

CircleCI MCP Server

Model Context Protocol (MCP) is a new, standardized protocol for managing context between large language models (LLMs) and external systems. In this repository, we provide an MCP Server for CircleCI.

This lets you use Cursor IDE, Windsurf, Copilot, or any MCP supported Client, to use natural language to accomplish things with CircleCI, e.g.:

https://github.com/user-attachments/assets/3c765985-8827-442a-a8dc-5069e01edb74

Requirements

  • CircleCI API token - you can generate one through the CircleCI. Learn more or click here for quick access.

For NPX installation:

  • pnpm package manager - Learn more
  • Node.js >= v18.0.0

For Docker installation:

Installation

Cursor

Using NPX

Add the following to your cursor MCP config:

{ "mcpServers": { "circleci-mcp-server": { "command": "npx", "args": ["-y", "@circleci/mcp-server-circleci"], "env": { "CIRCLECI_TOKEN": "your-circleci-token", "CIRCLECI_BASE_URL": "https://circleci.com" // Optional - required for on-prem customers only } } } }
Using Docker

Add the following to your cursor MCP config:

{ "mcpServers": { "circleci-mcp-server": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "CIRCLECI_TOKEN", "-e", "CIRCLECI_BASE_URL", "circleci:mcp-server-circleci" ], "env": { "CIRCLECI_TOKEN": "your-circleci-token", "CIRCLECI_BASE_URL": "https://circleci.com" // Optional - required for on-prem customers only } } } }

VS Code

Using NPX

To install CircleCI MCP Server for VS Code in .vscode/mcp.json:

{ // 💡 Inputs are prompted on first server start, then stored securely by VS Code. "inputs": [ { "type": "promptString", "id": "circleci-token", "description": "CircleCI API Token", "password": true }, { "type": "promptString", "id": "circleci-base-url", "description": "CircleCI Base URL", "default": "https://circleci.com" } ], "servers": { // https://github.com/ppl-ai/modelcontextprotocol/ "circleci-mcp-server": { "type": "stdio", "command": "npx", "args": ["-y", "@circleci/mcp-server-circleci"], "env": { "CIRCLECI_TOKEN": "${input:circleci-token}", "CIRCLECI_BASE_URL": "${input:circleci-base-url}" } } } }
Using Docker

To install CircleCI MCP Server for VS Code in .vscode/mcp.json using Docker:

{ // 💡 Inputs are prompted on first server start, then stored securely by VS Code. "inputs": [ { "type": "promptString", "id": "circleci-token", "description": "CircleCI API Token", "password": true }, { "type": "promptString", "id": "circleci-base-url", "description": "CircleCI Base URL", "default": "https://circleci.com" } ], "servers": { // https://github.com/ppl-ai/modelcontextprotocol/ "circleci-mcp-server": { "type": "stdio", "command": "docker", "args": [ "run", "--rm", "-i", "-e", "CIRCLECI_TOKEN", "-e", "CIRCLECI_BASE_URL", "circleci:mcp-server-circleci" ], "env": { "CIRCLECI_TOKEN": "${input:circleci-token}", "CIRCLECI_BASE_URL": "${input:circleci-base-url}" } } } }

Claude Desktop

Using NPX

Add the following to your claude_desktop_config.json:

{ "mcpServers": { "circleci-mcp-server": { "command": "npx", "args": ["-y", "@circleci/mcp-server-circleci"], "env": { "CIRCLECI_TOKEN": "your-circleci-token", "CIRCLECI_BASE_URL": "https://circleci.com" // Optional - required for on-prem customers only } } } }
Using Docker

Add the following to your claude_desktop_config.json:

{ "mcpServers": { "circleci-mcp-server": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "CIRCLECI_TOKEN", "-e", "CIRCLECI_BASE_URL", "circleci:mcp-server-circleci" ], "env": { "CIRCLECI_TOKEN": "your-circleci-token", "CIRCLECI_BASE_URL": "https://circleci.com" // Optional - required for on-prem customers only } } } }

To find/create this file, first open your claude desktop settings. Then click on "Developer" in the left-hand bar of the Settings pane, and then click on "Edit Config"

This will create a configuration file at:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

See the guide below for more information on using MCP servers with Claude Desktop: https://modelcontextprotocol.io/quickstart/user

Claude Code

Using NPX

After installing Claude Code, run the following command:

claude mcp add circleci-mcp-server -e CIRCLECI_TOKEN=your-circleci-token -- npx -y @circleci/mcp-server-circleci
Using Docker

After installing Claude Code, run the following command:

claude mcp add circleci-mcp-server -e CIRCLECI_TOKEN=your-circleci-token -e CIRCLECI_BASE_URL=https://circleci.com -- docker run --rm -i -e CIRCLECI_TOKEN -e CIRCLECI_BASE_URL circleci:mcp-server-circleci

See the guide below for more information on using MCP servers with Claude Code: https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/tutorials#set-up-model-context-protocol-mcp

Windsurf

Using NPX

Add the following to your windsurf mcp_config.json:

{ "mcpServers": { "circleci-mcp-server": { "command": "npx", "args": ["-y", "@circleci/mcp-server-circleci"], "env": { "CIRCLECI_TOKEN": "your-circleci-token", "CIRCLECI_BASE_URL": "https://circleci.com" // Optional - required for on-prem customers only } } } }
Using Docker

Add the following to your windsurf mcp_config.json:

{ "mcpServers": { "circleci-mcp-server": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "CIRCLECI_TOKEN", "-e", "CIRCLECI_BASE_URL", "circleci:mcp-server-circleci" ], "env": { "CIRCLECI_TOKEN": "your-circleci-token", "CIRCLECI_BASE_URL": "https://circleci.com" // Optional - required for on-prem customers only } } } }

See the guide below for more information on using MCP servers with windsurf: https://docs.windsurf.com/windsurf/mcp

Installing via Smithery

To install CircleCI MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @CircleCI-Public/mcp-server-circleci --client claude

Features

Supported Tools

  • get_build_failure_logsRetrieves detailed failure logs from CircleCI builds. This tool can be used in three ways:
    1. Using Project Slug and Branch (Recommended Workflow):
      • First, list your available projects:
        • Use the list_followed_projects tool to get your projects
        • Example: "List my CircleCI projects"
        • Then choose the project, which has a projectSlug associated with it
        • Example: "Lets use my-project"
      • Then ask to retrieve the build failure logs for a specific branch:
        • Example: "Get build failures for my-project on the main branch"
    2. Using CircleCI URLs:
    3. Using Local Project Context:
      • Works from your local workspace by providing:
        • Workspace root path
        • Git remote URL
        • Branch name
      • Example: "Find the latest failed pipeline on my current branch"

    The tool returns formatted logs including:

    • Job names
    • Step-by-step execution details
    • Failure messages and context

    This is particularly useful for:

    • Debugging failed builds
    • Analyzing test failures
    • Investigating deployment issues
    • Quick access to build logs without leaving your IDE
  • find_flaky_testsIdentifies flaky tests in your CircleCI project by analyzing test execution history. This leverages the flaky test detection feature described here: https://circleci.com/blog/introducing-test-insights-with-flaky-test-detection/#flaky-test-detectionThis tool can be used in three ways:
    1. Using Project Slug (Recommended Workflow):
      • First, list your available projects:
        • Use the list_followed_projects tool to get your projects
        • Example: "List my CircleCI projects"
        • Then choose the project, which has a projectSlug associated with it
        • Example: "Lets use my-project"
      • Then ask to retrieve the flaky tests:
        • Example: "Get flaky tests for my-project"
    2. Using CircleCI Project URL:
    3. Using Local Project Context:
      • Works from your local workspace by providing:
        • Workspace root path
        • Git remote URL
      • Example: "Find flaky tests in my current project"

    The tool returns detailed information about flaky tests, including:

    • Test names and file locations
    • Failure messages and contexts

    This helps you:

    • Identify unreliable tests in your test suite
    • Get detailed context about test failures
    • Make data-driven decisions about test improvements
  • get_latest_pipeline_statusRetrieves the status of the latest pipeline for a given branch. This tool can be used in three ways:
    1. Using Project Slug and Branch (Recommended Workflow):
      • First, list your available projects:
        • Use the list_followed_projects tool to get your projects
        • Example: "List my CircleCI projects"
        • Then choose the project, which has a projectSlug associated with it
        • Example: "Lets use my-project"
      • Then ask to retrieve the latest pipeline status for a specific branch:
        • Example: "Get the status of the latest pipeline for my-project on the main branch"
    2. Using CircleCI Project URL:
    3. Using Local Project Context:
      • Works from your local workspace by providing:
        • Workspace root path
        • Git remote URL
        • Branch name
      • Example: "Get the status of the latest pipeline for my current project"

    The tool returns a formatted status of the latest pipeline:

    • Workflow names and their current status
    • Duration of each workflow
    • Creation and completion timestamps
    • Overall pipeline health

    Example output:

    --- Workflow: build Status: success Duration: 5 minutes Created: 4/20/2025, 10:15:30 AM Stopped: 4/20/2025, 10:20:45 AM --- Workflow: test Status: running Duration: unknown Created: 4/20/2025, 10:21:00 AM Stopped: in progress

    This is particularly useful for:

    • Checking the status of the latest pipeline
    • Getting the status of the latest pipeline for a specific branch
    • Quickly checking the status of the latest pipeline without leaving your IDE
  • get_job_test_resultsRetrieves test metadata for CircleCI jobs, allowing you to analyze test results without leaving your IDE. This tool can be used in three ways:
    1. Using Project Slug and Branch (Recommended Workflow):
      • First, list your available projects:
        • Use the list_followed_projects tool to get your projects
        • Example: "List my CircleCI projects"
        • Then choose the project, which has a projectSlug associated with it
        • Example: "Lets use my-project"
      • Then ask to retrieve the test results for a specific branch:
        • Example: "Get test results for my-project on the main branch"
    2. Using CircleCI URL:
    3. Using Local Project Context:
      • Works from your local workspace by providing:
        • Workspace root path
        • Git remote URL
        • Branch name
      • Example: "Get test results for my current project on the main branch"

    The tool returns detailed test result information:

    • Summary of all tests (total, successful, failed)
    • Detailed information about failed tests including:
      • Test name and class
      • File location
      • Error messages
      • Runtime duration
    • List of successful tests with timing information
    • Filter by tests result

    This is particularly useful for:

    • Quickly analyzing test failures without visiting the CircleCI web UI
    • Identifying patterns in test failures
    • Finding slow tests that might need optimization
    • Checking test coverage across your project
    • Troubleshooting flaky tests

    Note: The tool requires that test metadata is properly configured in your CircleCI config. For more information on setting up test metadata collection, see: https://circleci.com/docs/collect-test-data/

  • config_helperAssists with CircleCI configuration tasks by providing guidance and validation. This tool helps you:
    1. Validate CircleCI Config:
      • Checks your .circleci/config.yml for syntax and semantic errors
      • Example: "Validate my CircleCI config"

    The tool provides:

    • Detailed validation results
    • Configuration recommendations

    This helps you:

    • Catch configuration errors before pushing
    • Learn CircleCI configuration best practices
    • Troubleshoot configuration issues
    • Implement CircleCI features correctly
  • create_prompt_templateHelps generate structured prompt templates for AI-enabled applications based on feature requirements. This tool:
    1. Converts Feature Requirements to Structured Prompts:
      • Transforms user requirements into optimized prompt templates
      • Example: "Create a prompt template for generating bedtime stories by age and topic"

    The tool provides:

    • A structured prompt template
    • A context schema defining required input parameters

    This helps you:

    • Create effective prompts for AI applications
    • Standardize input parameters for consistent results
    • Build robust AI-powered features
  • recommend_prompt_template_testsGenerates test cases for prompt templates to ensure they produce expected results. This tool:
    1. Provides Test Cases for Prompt Templates:
      • Creates diverse test scenarios based on your prompt template and context schema
      • Example: "Generate tests for my bedtime story prompt template"

    The tool provides:

    • An array of recommended test cases
    • Various parameter combinations to test template robustness

    This helps you:

    • Validate prompt template functionality
    • Ensure consistent AI responses across inputs
    • Identify edge cases and potential issues
    • Improve overall AI application quality
  • list_followed_projectsLists all projects that the user is following on CircleCI. This tool:
    1. Retrieves and Displays Projects:
      • Shows all projects the user has access to and is following
      • Provides the project name and projectSlug for each entry
      • Example: "List my CircleCI projects"

    The tool returns a formatted list of projects, example output:

    Projects followed: 1. my-project (projectSlug: gh/organization/my-project) 2. another-project (projectSlug: gh/organization/another-project)

    This is particularly useful for:

    • Identifying which CircleCI projects are available to you
    • Obtaining the projectSlug needed for other CircleCI tools
    • Selecting a project for subsequent operations

    Note: The projectSlug (not the project name) is required for many other CircleCI tools, and will be used for those tool calls after a project is selected.

  • run_pipelineTriggers a pipeline to run. This tool can be used in three ways:
    1. Using Project Slug and Branch (Recommended Workflow):
      • First, list your available projects:
        • Use the list_followed_projects tool to get your projects
        • Example: "List my CircleCI projects"
        • Then choose the project, which has a projectSlug associated with it
        • Example: "Lets use my-project"
      • Then ask to run the pipeline for a specific branch:
        • Example: "Run the pipeline for my-project on the main branch"
    2. Using CircleCI URL:
    3. Using Local Project Context:
      • Works from your local workspace by providing:
        • Workspace root path
        • Git remote URL
        • Branch name
      • Example: "Run the pipeline for my current project on the main branch"

    The tool returns a link to monitor the pipeline execution.

    This is particularly useful for:

    • Quickly running pipelines without visiting the CircleCI web UI
    • Running pipelines from a specific branch
  • rerun_workflowReruns a workflow from its start or from the failed job.The tool returns the ID of the newly-created workflow, and a link to monitor the new workflow.This is particularly useful for:
    • Quickly rerunning a workflow from its start or from the failed job without visiting the CircleCI web UI

Development

Getting Started

  1. Clone the repository:
    git clone https://github.com/CircleCI-Public/mcp-server-circleci.git cd mcp-server-circleci
  2. Install dependencies:
    pnpm install
  3. Build the project:
    pnpm build

Building Docker Container

You can build the Docker container locally using:

docker build -t circleci:mcp-server-circleci .

This will create a Docker image tagged as circleci:mcp-server-circleci that you can use with any MCP client.

To run the container:

docker run --rm -i -e CIRCLECI_TOKEN=your-circleci-token -e CIRCLECI_BASE_URL=https://circleci.com circleci:mcp-server-circleci

Development with MCP Inspector

The easiest way to iterate on the MCP Server is using the MCP inspector. You can learn more about the MCP inspector at https://modelcontextprotocol.io/docs/tools/inspector

  1. Start the development server:
    pnpm watch # Keep this running in one terminal
  2. In a separate terminal, launch the inspector:
    pnpm inspector
  3. Configure the environment:
    • Add your CIRCLECI_TOKEN to the Environment Variables section in the inspector UI
    • The token needs read access to your CircleCI projects
    • Optionally you can set your CircleCI Base URL. Defaults to https//circleci.com

Testing

  • Run the test suite:
    pnpm test
  • Run tests in watch mode during development:
    pnpm test:watch

For more detailed contribution guidelines, see CONTRIBUTING.md

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

This MCP server lets you use Cursor IDE, or any MCP Client enabled agent, to use natural language to accomplish things with CircleCI, e.g: Find the latest failed pipeline on my branch and get logs

  1. Requirements
    1. Installation
      1. Cursor
      2. VS Code
      3. Claude Desktop
      4. Claude Code
      5. Windsurf
      6. Installing via Smithery
    2. Features
      1. Supported Tools
    3. Development
      1. Getting Started
      2. Building Docker Container
      3. Development with MCP Inspector
      4. Testing

    Related MCP Servers

    • -
      security
      F
      license
      -
      quality
      An MCP server that provides detailed information about your development environment to the Cursor code editor, enabling more context-aware assistance.
      Last updated -
      1
      Python
      • Linux
      • Apple
    • A
      security
      A
      license
      A
      quality
      An MCP server integration that enables Cursor AI to communicate with Figma, allowing users to read designs and modify them programmatically through natural language commands.
      Last updated -
      19
      5,185
      3,528
      JavaScript
      MIT License
      • Apple
      • Linux
    • A
      security
      A
      license
      A
      quality
      Simple MCP Server to enable a human-in-the-loop workflow in tools like Cline and Cursor. This is especially useful for developing desktop applications that require complex user interactions to test.
      Last updated -
      1
      13
      Python
      MIT License
      • Linux
      • Apple
    • -
      security
      A
      license
      -
      quality
      An open-source MCP server that provides applications like Cursor, Windsurf, and Claude with access to llms.txt documentation files, allowing users to control and audit context retrieval.
      Last updated -
      4
      Python
      MIT License
      • Apple
      • Linux

    View all related MCP servers

    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