CircleCI

официальный

Предоставьте AI-агентам возможность исправлять ошибки сборки из CircleCI.

Что можно делать с Circle CI MCP?

  • Проверьте статус последнего пайплайна — Запросите статус самого последнего пайплайна в ветке с помощью get_latest_pipeline_status.
  • Получите журналы ошибок сборки — Получите подробные пошаговые журналы ошибок из неудачного задания или пайплайна с помощью get_build_failure_logs.
  • Определите нестабильные тесты — Проанализируйте историю выполнения тестов, чтобы выявить нестабильные тесты в проекте с помощью find_flaky_tests.
  • Проверьте конфигурацию CircleCI — Проверьте ваш .circleci/config.yml на синтаксические и семантические ошибки с помощью config_helper.
  • Найдите недоиспользуемые вычислительные ресурсы — Проанализируйте данные об использовании, чтобы выявить задания с низкой загрузкой ЦП/ОЗУ с помощью find_underused_resource_classes.
  • Запустите выполнение пайплайна — Запустите новый пайплайн для проекта с помощью run_pipeline.

Документация

[!IMPORTANT] Этот репозиторий устарел. MCP-сервер CircleCI теперь встроен в CircleCI CLI. Посетите cli.circleci.com, чтобы начать работу.

CircleCI MCP Server

License: Apache 2.0 CircleCI npm

Model Context Protocol (MCP) — это новый стандартизированный протокол для управления контекстом между большими языковыми моделями (LLM) и внешними системами. В этом репозитории мы предоставляем MCP-сервер для CircleCI.

Используйте Cursor, Windsurf, Copilot, Claude или любой MCP-совместимый клиент для взаимодействия с CircleCI на естественном языке — не покидая вашу IDE.

Инструменты

ИнструментОписание
analyze_diffАнализ git-изменений на соответствие правилам курсора
config_helperПроверка и получение рекомендаций по конфигурации CircleCI
create_prompt_templateГенерация структурированных шаблонов промптов для AI-приложений
download_usage_api_dataЗагрузка данных об использовании из CircleCI Usage API
find_flaky_testsВыявление нестабильных тестов путем анализа истории выполнения тестов
find_underused_resource_classesПоиск заданий с недоиспользованными вычислительными ресурсами
get_build_failure_logsПолучение подробных логов ошибок из сборок CircleCI
get_job_test_resultsПолучение метаданных и результатов тестов для заданий CircleCI
get_latest_pipeline_statusПолучение статуса последнего пайплайна для ветки
list_artifactsСписок артефактов, созданных заданием CircleCI
list_component_versionsСписок всех версий компонента CircleCI
list_followed_projectsСписок всех проектов CircleCI, за которыми вы следите
recommend_prompt_template_testsГенерация тестовых случаев для шаблонов промптов
rerun_workflowПовторный запуск рабочего процесса с начала или с упавшего задания
run_evaluation_testsЗапуск оценочных тестов в пайплайне CircleCI
run_pipelineЗапуск пайплайна
run_rollback_pipelineЗапуск отката для проекта

Установка

Командное / централизованное развертывание: Чтобы запустить один общий удаленный сервер для вашей организации (Kubernetes, Docker и т. д.) с индивидуальными или общими токенами CircleCI, см. Self-Managed Remote MCP Server.

Cursor

Предварительные требования:

Использование NPX на локальном MCP-сервере

Добавьте следующее в конфигурацию Cursor MCP:

{
  "mcpServers": {
    "circleci-mcp-server": {
      "command": "npx",
      "args": ["-y", "@circleci/mcp-server-circleci@latest"],
      "env": {
        "CIRCLECI_TOKEN": "your-circleci-token",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      }
    }
  }
}

CIRCLECI_BASE_URL необязателен — требуется только для клиентов с локальным развертыванием. MAX_MCP_OUTPUT_LENGTH необязателен — максимальная длина вывода для ответов MCP (по умолчанию: 50000).

Использование Docker на локальном MCP-сервере

Добавьте следующее в конфигурацию Cursor MCP:

{
  "mcpServers": {
    "circleci-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "CIRCLECI_TOKEN",
        "-e",
        "CIRCLECI_BASE_URL",
        "-e",
        "MAX_MCP_OUTPUT_LENGTH",
        "circleci/mcp-server-circleci"
      ],
      "env": {
        "CIRCLECI_TOKEN": "your-circleci-token",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      }
    }
  }
}

Использование самостоятельного удаленного MCP-сервера

См. Self-Managed Remote MCP Server. Используйте конфигурацию клиента для каждого пользователя и добавьте ее в конфигурацию Cursor MCP (Cursor Settings → MCP).

VS Code

Предварительные требования:

Использование NPX на локальном MCP-сервере

Добавьте следующее в .vscode/mcp.json в вашем проекте:

{
  "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": {
    "circleci-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@circleci/mcp-server-circleci@latest"],
      "env": {
        "CIRCLECI_TOKEN": "${input:circleci-token}",
        "CIRCLECI_BASE_URL": "${input:circleci-base-url}"
      }
    }
  }
}

💡 Входные данные запрашиваются при первом запуске сервера, затем безопасно сохраняются VS Code.

Использование Docker на локальном MCP-сервере

Добавьте следующее в .vscode/mcp.json в вашем проекте:

{
  "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": {
    "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}"
      }
    }
  }
}

Использование самостоятельного удаленного MCP-сервера

См. Self-Managed Remote MCP Server. Используйте конфигурацию клиента для каждого пользователя в .vscode/mcp.json.

Claude Desktop

Предварительные требования:

Использование NPX на локальном MCP-сервере

Добавьте следующее в ваш claude_desktop_config.json:

{
  "mcpServers": {
    "circleci-mcp-server": {
      "command": "npx",
      "args": ["-y", "@circleci/mcp-server-circleci@latest"],
      "env": {
        "CIRCLECI_TOKEN": "your-circleci-token",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      }
    }
  }
}

Использование Docker на локальном MCP-сервере

Добавьте следующее в ваш claude_desktop_config.json:

{
  "mcpServers": {
    "circleci-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "CIRCLECI_TOKEN",
        "-e",
        "CIRCLECI_BASE_URL",
        "-e",
        "MAX_MCP_OUTPUT_LENGTH",
        "circleci/mcp-server-circleci"
      ],
      "env": {
        "CIRCLECI_TOKEN": "your-circleci-token",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      }
    }
  }
}

Использование самостоятельного удаленного MCP-сервера

См. Self-Managed Remote MCP Server. Создайте скрипт-обертку, как показано в Claude Desktop and CLI clients, затем укажите на него в вашем claude_desktop_config.json.

Чтобы найти или создать файл конфигурации, откройте настройки Claude Desktop, нажмите Developer на левой боковой панели, затем нажмите Edit Config. Файл конфигурации находится по адресу:

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

Для получения дополнительной информации: https://modelcontextprotocol.io/quickstart/user

Claude Code

Предварительные требования:

Использование NPX на локальном MCP-сервере

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

Использование Docker на локальном MCP-сервере

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

Использование самостоятельного удаленного MCP-сервера

См. Self-Managed Remote MCP Server и настройку клиента Claude Code там.

Windsurf

Предварительные требования:

Использование NPX на локальном MCP-сервере

Добавьте следующее в ваш Windsurf mcp_config.json:

{
  "mcpServers": {
    "circleci-mcp-server": {
      "command": "npx",
      "args": ["-y", "@circleci/mcp-server-circleci@latest"],
      "env": {
        "CIRCLECI_TOKEN": "your-circleci-token",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      }
    }
  }
}

Использование Docker на локальном MCP-сервере

Добавьте следующее в ваш Windsurf mcp_config.json:

{
  "mcpServers": {
    "circleci-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "CIRCLECI_TOKEN",
        "-e",
        "CIRCLECI_BASE_URL",
        "-e",
        "MAX_MCP_OUTPUT_LENGTH",
        "circleci/mcp-server-circleci"
      ],
      "env": {
        "CIRCLECI_TOKEN": "your-circleci-token",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      }
    }
  }
}

Использование самостоятельного удаленного MCP-сервера

См. Self-Managed Remote MCP Server. Используйте конфигурацию клиента для каждого пользователя в вашем Windsurf mcp_config.json.

Для получения дополнительной информации: https://docs.windsurf.com/windsurf/mcp

Amazon Q Developer CLI

Предварительные требования:

Конфигурация MCP-клиента в Amazon Q Developer хранится в формате JSON в файле с именем mcp.json. Поддерживаются два уровня конфигурации:

  • Глобальная: ~/.aws/amazonq/mcp.json — применяется ко всем рабочим пространствам
  • Рабочего пространства: .amazonq/mcp.json — относится к текущему рабочему пространству

Если существуют оба файла, их содержимое объединяется. В случае конфликта приоритет имеет конфигурация рабочего пространства.

Использование NPX на локальном MCP-сервере

Отредактируйте ~/.aws/amazonq/mcp.json или создайте .amazonq/mcp.json со следующим содержимым:

{
  "mcpServers": {
    "circleci-local": {
      "command": "npx",
      "args": [
        "-y",
        "@circleci/mcp-server-circleci@latest"
      ],
      "env": {
        "CIRCLECI_TOKEN": "YOUR_CIRCLECI_TOKEN",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      },
      "timeout": 60000
    }
  }
}

Использование самостоятельного удаленного MCP-сервера

См. Self-Managed Remote MCP Server. Используйте скрипт-обертку, как показано в Claude Desktop and CLI clients, затем зарегистрируйте его с помощью q mcp add.

Amazon Q Developer в IDE

Предварительные требования:

Использование NPX на локальном MCP-сервере

Отредактируйте ~/.aws/amazonq/mcp.json или создайте .amazonq/mcp.json со следующим содержимым:

{
  "mcpServers": {
    "circleci-local": {
      "command": "npx",
      "args": [
        "-y",
        "@circleci/mcp-server-circleci@latest"
      ],
      "env": {
        "CIRCLECI_TOKEN": "YOUR_CIRCLECI_TOKEN",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      },
      "timeout": 60000
    }
  }
}

Использование самостоятельного удаленного MCP-сервера

См. Self-Managed Remote MCP Server. Используйте скрипт-обертку, как показано в Claude Desktop and CLI clients, затем добавьте его через пользовательский интерфейс конфигурации MCP:

  1. Откройте пользовательский интерфейс конфигурации MCP
  2. Нажмите символ +
  3. Выберите область действия: глобальная или локальная
  4. Введите имя (например, circleci-remote-mcp)
  5. Выберите транспортный протокол: stdio
  6. Введите путь к вашему скрипту
  7. Нажмите Save
Smithery

Чтобы установить CircleCI MCP Server для Claude Desktop автоматически через Smithery:

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

Самостоятельный удаленный MCP-сервер

Запустите MCP-сервер централизованно (например, на Kubernetes или Docker), чтобы ваша команда использовала одно развертывание. Выберите способ аутентификации разработчиков:

Выбор режима развертывания

РежимКогда использоватьНастройка сервераНастройка клиентаАудиторский след CircleCI
Индивидуальные токены (рекомендуется)Команды с персональными API-токенами, поддерживающими SSOREQUIRE_REQUEST_TOKEN=true, без серверного PATКаждый разработчик передает свой PATПо разработчикам
Общий токен (промежуточный)Быстрое внедрение, допустима единая сервисная учетная записьCIRCLECI_TOKEN на сервере, REQUIRE_REQUEST_TOKEN=false (явный отказ)Заголовок аутентификации не требуетсяЕдиная общая учетная запись

Безопасность: Аутентификация запросов включена по умолчанию в удаленном режиме. Режим общего токена отключает ее (REQUIRE_REQUEST_TOKEN=false), позволяя любому вызывающему действовать от имени серверной учетной записи CIRCLECI_TOKEN без учетных данных. Включайте его только в сети, которой вы полностью доверяете, в противном случае предпочитайте индивидуальные токены. Завершение TLS на входе обеспечивает шифрование, но не аутентификацию.

1. Развертывание сервера

Оба режима используют удаленный HTTP-режим (start=remote). Опубликуйте порт 8000 (или выбранный вами порт).

Индивидуальные токены (рекомендуется) — доступ через mcp-remote с локального хоста:

docker run --rm -p 8000:8000 \
  -e start=remote \
  -e port=8000 \
  -e REQUIRE_REQUEST_TOKEN=true \
  circleci/mcp-server-circleci

Индивидуальные токены (рекомендуется) — доступ через mcp-remote с публичного имени хоста:

docker run --rm -p 8000:8000 \
  -e start=remote \
  -e port=8000 \
  -e REQUIRE_REQUEST_TOKEN=true \
  -e MCP_ALLOWED_HOSTS=my-mcp.example.com \
  circleci/mcp-server-circleci

Общий токен (промежуточный) — доступ через mcp-remote с публичного имени хоста:

docker run --rm -p 8000:8000 \
  -e start=remote \
  -e port=8000 \
  -e CIRCLECI_TOKEN=your-shared-circleci-pat \
  -e REQUIRE_REQUEST_TOKEN=false \
  -e MCP_ALLOWED_HOSTS=my-mcp.example.com \
  circleci/mcp-server-circleci

Переменные окружения:

ПеременнаяОписание
start=remoteЗапускает HTTP+SSE MCP-сервер вместо stdio
portПорт прослушивания внутри контейнера (по умолчанию: 8000)
REQUIRE_REQUEST_TOKENОтклонять запросы без заголовка Authorization: Bearer или Circle-Token. По умолчанию обязательно; установите REQUIRE_REQUEST_TOKEN=false, чтобы разрешить неаутентифицированные запросы (режим общего токена)
CIRCLECI_TOKENОбщий резервный PAT для всех запросов, когда индивидуальные заголовки не отправлены
CIRCLECI_BASE_URLНеобязательно — требуется только для локальных развертываний (по умолчанию: https://circleci.com)
DISABLE_TELEMETRY=trueОтказ от экспорта метрик использования
MCP_ALLOWED_HOSTSСписок дополнительных значений заголовка Host, разделенных запятыми (например, my-mcp.example.com,my-mcp.example.com:443). Имена локальных хостов всегда разрешены. Обязательно для любого развертывания не на локальном хосте.
MCP_ALLOWED_ORIGINSСписок дополнительных значений заголовка Origin, разделенных запятыми (например, https://my-app.example.com). Источники локального хоста всегда разрешены. Требуется только тогда, когда браузер напрямую обращается к этому серверу (не через mcp-remote).
MCP_BIND_HOSTСетевой интерфейс для привязки (по умолчанию: 0.0.0.0). Установите 127.0.0.1, чтобы ограничить только локальным хостом (несовместимо с пробросом портов Docker -p).

Защита от DNS-ребендинга: Удаленный транспорт проверяет заголовок Host при каждом запросе /mcp. По умолчанию принимаются только адреса loopback (localhost, 127.0.0.1, [::1]). Публичные развертывания должны устанавливать MCP_ALLOWED_HOSTS в имя хоста, используемое клиентами, иначе все запросы /mcp будут получать 403 Forbidden. Конечная точка проверки работоспособности /ping не защищена, поэтому пробы балансировщика нагрузки продолжают работать независимо от Host.

Заголовок Origin (отправляемый браузерами) также проверяется при его наличии. Небраузерные клиенты, такие как mcp-remote, никогда не отправляют Origin, поэтому эта проверка на них не влияет.

За обратным прокси: Если ваш прокси перезаписывает Host на адрес бэкенда (поведение nginx по умолчанию), добавьте proxy_set_header Host $host;, чтобы передать исходное имя хоста, затем установите MCP_ALLOWED_HOSTS в это публичное имя хоста. В качестве альтернативы установите MCP_ALLOWED_HOSTS в то имя хоста, которое прокси пересылает.

Сервер принимает токены для каждого запроса через:

  • Authorization: Bearer <circleci-pat>
  • Circle-Token: <circleci-pat>

Если клиент отправляет токен в заголовке, он имеет приоритет над CIRCLECI_TOKEN на сервере.

Метрики телеметрии, записанные во время запроса, экспортируются с использованием того же токена, что и этот запрос.

2. Настройка клиентов

Большинство клиентов MCP поддерживают только локальные (stdio) процессы. Используйте mcp-remote, сторонний мост stdio-to-HTTP, чтобы подключить их к вашему удаленному серверу.

Схема URL: Используйте http://localhost:8000/mcp с --allow-http для локального тестирования. В продакшене завершайте TLS на вашем входе/балансировщике нагрузки и используйте https://your-host/mcp без --allow-http.

Windows: Избегайте пробелов вокруг двоеточия в значениях --header. Поместите полное значение Bearer <token> в переменную окружения.

Безопасность: В примерах для удобства используется npx. Для продакшена или командных развертываний закрепите конкретную версию в вашей конфигурации MCP (например, mcp-remote@0.1.38 вместо mcp-remote). Не используйте версии ниже 0.1.16 (CVE-2025-6514).

Конфигурация клиента: токены для каждого пользователя

Каждый разработчик передает свой собственный персональный API-токен CircleCI при каждом запросе:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "circleci-token",
      "description": "CircleCI API Token",
      "password": true
    }
  ],
  "mcpServers": {
    "circleci-mcp-server-remote": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:8000/mcp",
        "--allow-http",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer ${input:circleci-token}"
      }
    }
  }
}

Замените http://localhost:8000/mcp на URL вашего командного сервера. Cursor и VS Code поддерживают запросы ${input:...}; другие клиенты могут устанавливать AUTH_HEADER напрямую.

Конфигурация клиента: общий токен

Когда на сервере установлен CIRCLECI_TOKEN и он запущен с REQUIRE_REQUEST_TOKEN=false (аутентификация запросов включена по умолчанию и должна быть явно отключена), клиентам не нужно отправлять токен:

{
  "mcpServers": {
    "circleci-mcp-server-remote": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:8000/mcp",
        "--allow-http"
      ]
    }
  }
}

Клиенты Claude Desktop и CLI

Создайте скрипт-обертку (например, circleci-remote-mcp.sh):

#!/bin/bash
export AUTH_HEADER="Bearer your-circleci-token"
npx mcp-remote http://localhost:8000/mcp --allow-http --header "Authorization:${AUTH_HEADER}"

Сделайте его исполняемым (chmod +x circleci-remote-mcp.sh), затем укажите его в вашей конфигурации MCP:

{
  "mcpServers": {
    "circleci-remote-mcp-server": {
      "command": "/full/path/to/circleci-remote-mcp.sh"
    }
  }
}

Claude Code

claude mcp add circleci-mcp-server \
  -e AUTH_HEADER="Bearer your-circleci-token" \
  -- npx mcp-remote http://localhost:8000/mcp --allow-http --header "Authorization:${AUTH_HEADER}"

Опустите --header и AUTH_HEADER при использовании сервера с общим токеном.

3. Проверка развертывания

# Health check (no auth required)
curl http://localhost:8000/ping

# Should return 401 when REQUIRE_REQUEST_TOKEN=true and no token is sent
curl -s -o /dev/null -w "%{http_code}\n" -X POST http://localhost:8000/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

# Should return 200 with a valid Bearer token and MCP Accept headers
curl -s -o /dev/null -w "%{http_code}\n" -X POST http://localhost:8000/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer your-circleci-pat" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

Демонстрация

Смотрите в действии

Пример: "Найди последний упавший пайплайн в моей ветке и получи логи" — смотрите wiki для дополнительных примеров.

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

Детали инструментов

analyze_diff

Анализирует git diff на соответствие правилам cursor для выявления нарушений.

Предоставьте:

  • Содержимое git diff (например, git diff --cached, git diff HEAD)
  • Правила репозитория из .cursorrules или .cursor/rules

Возвращает подробные отчеты о нарушениях с оценками достоверности и пояснениями.

Полезно для:

  • Проверки качества кода перед коммитом
  • Обеспечения соответствия командным стандартам кодирования
  • Выявления нарушений правил до ревью кода
config_helper

Помогает с задачами конфигурации CircleCI, предоставляя руководство и валидацию.

  • Проверяет ваш .circleci/config.yml на синтаксические и семантические ошибки
  • Предоставляет подробные результаты валидации и рекомендации по конфигурации
  • Пример: "Проверь мою конфигурацию CircleCI"
create_prompt_template

Генерирует структурированные шаблоны промптов для приложений с поддержкой ИИ на основе требований к функциям.

  • Преобразует требования пользователя в оптимизированные шаблоны промптов
  • Возвращает структурированный шаблон и схему контекста, определяющую необходимые входные параметры
  • Пример: "Создай шаблон промпта для генерации сказок на ночь по возрасту и теме"
download_usage_api_data

Загружает данные об использовании из CircleCI Usage API для указанной организации. Принимает гибкий ввод даты (например, "Март 2025" или "прошлый месяц"). Функция только для Cloud.

Вариант 1: Запустить новое задание экспорта, предоставив:

  • orgId, startDate, endDate (макс. 32 дня), outputDir

Вариант 2: Проверить/загрузить существующее задание экспорта, предоставив:

  • orgId, jobId, outputDir

Возвращает CSV-файл с данными об использовании CircleCI за указанный период времени.

[!NOTE] Данные об использовании можно передать в инструмент find_underused_resource_classes для анализа оптимизации затрат.

find_flaky_tests

Выявляет нестабильные тесты в вашем проекте CircleCI, анализируя историю выполнения тестов. Использует функцию обнаружения нестабильных тестов в CircleCI.

Этот инструмент можно использовать тремя способами:

  1. Использование Project Slug (рекомендуется):

    • Сначала используйте list_followed_projects, чтобы получить ваши проекты, затем:
    • Пример: "Получить нестабильные тесты для my-project"
  2. Использование URL проекта CircleCI:

  3. Использование контекста локального проекта:

    • Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства и URL удаленного git-репозитория
    • Пример: "Найти нестабильные тесты в моем текущем проекте"

Режимы вывода:

  • Текст (по умолчанию): Возвращает детали нестабильных тестов в текстовом формате
  • Файл (требуется переменная окружения FILE_OUTPUT_DIRECTORY): Создает директорию с деталями нестабильных тестов
find_underused_resource_classes

Анализирует CSV-файл данных об использовании CircleCI для поиска заданий со средним или максимальным использованием CPU/RAM ниже заданного порога (по умолчанию: 40%).

Предоставьте CSV-файл, полученный из download_usage_api_data.

Возвращает список недозагруженных заданий в формате markdown, сгруппированных по проекту и рабочему процессу — полезно для выявления возможностей оптимизации затрат.

get_build_failure_logs

Извлекает подробные логи сбоев из сборок CircleCI. Этот инструмент можно использовать тремя способами:

  1. Использование Project Slug и ветки (рекомендуется):

    • Сначала используйте list_followed_projects, чтобы получить ваши проекты, затем:
    • Пример: "Получить сбои сборки для my-project в ветке main"
  2. Использование URL CircleCI:

  3. Использование контекста локального проекта:

    • Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства, URL удаленного git-репозитория и имя ветки
    • Пример: "Найти последний упавший пайплайн в моей текущей ветке"

Инструмент возвращает форматированные логи, включая:

  • Имена заданий
  • Пошаговые детали выполнения
  • Сообщения о сбоях и контекст
get_job_test_results

Извлекает метаданные тестов для заданий CircleCI, позволяя анализировать результаты тестов, не покидая IDE. Этот инструмент можно использовать тремя способами:

  1. Использование Project Slug и ветки (рекомендуется):

    • Пример: "Получить результаты тестов для my-project в ветке main"
  2. Использование URL CircleCI:

    • URL задания: https://app.circleci.com/pipelines/github/org/repo/123/workflows/abc-def/jobs/789
    • URL рабочего процесса: https://app.circleci.com/pipelines/github/org/repo/123/workflows/abc-def
    • URL пайплайна: https://app.circleci.com/pipelines/github/org/repo/123
  3. Использование контекста локального проекта:

    • Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства, URL удаленного git-репозитория и имя ветки

Инструмент возвращает:

  • Сводку по всем тестам (всего, успешных, неудачных)
  • Подробную информацию о неудачных тестах: имя, класс, файл, сообщение об ошибке, длительность
  • Список успешных тестов с временем выполнения
  • Фильтрацию по результату теста

[!NOTE] Метаданные тестов должны быть настроены в вашей конфигурации CircleCI. Смотрите Сбор данных тестов для инструкций по настройке.

get_latest_pipeline_status

Извлекает статус последнего пайплайна для указанной ветки. Этот инструмент можно использовать тремя способами:

  1. Использование Project Slug и ветки (рекомендуется):

    • Пример: "Получить статус последнего пайплайна для my-project в ветке main"
  2. Использование URL проекта CircleCI:

  3. Использование контекста локального проекта:

    • Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства, URL удаленного git-репозитория и имя ветки

Пример вывода:

---
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
list_artifacts

Извлекает список артефактов, созданных заданием CircleCI. Этот инструмент можно использовать тремя способами:

  1. Использование Project Slug и ветки (рекомендуется):

    • Сначала используйте list_followed_projects, чтобы получить ваши проекты, затем:
    • Пример: "Список артефактов для my-project в ветке main"
  2. Использование URL CircleCI:

    • URL задания: https://app.circleci.com/pipelines/gh/organization/project/123/workflows/abc-def/jobs/789
    • URL рабочего процесса: https://app.circleci.com/pipelines/gh/organization/project/123/workflows/abc-def
    • URL пайплайна: https://app.circleci.com/pipelines/gh/organization/project/123
  3. Использование контекста локального проекта:

    • Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства, URL удаленного git-репозитория и имя ветки

Полезно для:

  • Поиска URL-адресов для загрузки артефактов сборки (бинарные файлы, отчеты, логи)
  • Проверки того, какие артефакты были созданы при запуске пайплайна
list_component_versions

Выводит список всех версий для определенного компонента CircleCI в окружении. Включает статус развертывания, информацию о коммите и временные метки.

Инструмент предложит выбрать компонент и окружение, если они не указаны.

Полезно для:

  • Определения текущей активной версии
  • Выбора целевых версий для операций отката
  • Получения деталей развертывания (пайплайн, рабочий процесс, задание)
list_followed_projects

Выводит список всех проектов, за которыми пользователь следит на CircleCI.

  • Показывает все проекты, к которым у вас есть доступ, с их projectSlug
  • Пример: "Список моих проектов CircleCI"

Пример вывода:

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

[!NOTE] projectSlug (а не имя проекта) требуется для многих других инструментов CircleCI.

recommend_prompt_template_tests

Генерирует тестовые случаи для шаблонов промптов, чтобы гарантировать получение ожидаемых результатов.- Создает разнообразные тестовые сценарии на основе вашего шаблона промпта и схемы контекста

  • Возвращает массив рекомендуемых тестовых случаев с различными комбинациями параметров
  • Пример: "Сгенерируй тесты для моего шаблона промпта сказки на ночь"
rerun_workflow

Перезапускает рабочий процесс с начала или с упавшего задания.

Возвращает ID вновь созданного рабочего процесса и ссылку для его отслеживания.

run_evaluation_tests

Запускает оценочные тесты (также известные как "Промпт-тесты") в пайплайне CircleCI. Генерирует подходящую конфигурацию CircleCI и запускает пайплайн с её использованием.

Этот инструмент можно использовать тремя способами:

  1. Используя Project Slug и ветку (Рекомендуется):

    • Сначала используйте list_followed_projects, чтобы получить свои проекты, затем:
    • Пример: "Запусти оценочные тесты для my-project на ветке main"
  2. Используя URL CircleCI:

  3. Используя контекст локального проекта:

    • Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства, URL удаленного git-репозитория и имя ветки

Инструмент принимает файлы шаблонов промптов и возвращает URL для отслеживания запущенного пайплайна.

[!NOTE] Если в проекте есть несколько определений пайплайнов, инструмент вернет список доступных пайплайнов для выбора.

run_pipeline

Запускает пайплайн на выполнение. Этот инструмент можно использовать тремя способами:

  1. Используя Project Slug и ветку (Рекомендуется):

    • Пример: "Запусти пайплайн для my-project на ветке main"
  2. Используя URL CircleCI:

  3. Используя контекст локального проекта:

    • Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства, URL удаленного git-репозитория и имя ветки

Инструмент возвращает ссылку для отслеживания выполнения пайплайна.

run_rollback_pipeline

Запускает откат для проекта CircleCI. Инструмент интерактивно проведет вас через:

  1. Выбор проекта — показывает список отслеживаемых проектов для выбора
  2. Выбор окружения — показывает список доступных окружений (автовыбор, если только одно)
  3. Выбор компонента — показывает список доступных компонентов (автовыбор, если только один)
  4. Выбор версии — отображает доступные версии; вы выбираете цель для отката
  5. Определение режима отката — проверяет, настроен ли пайплайн отката
  6. Выполнение отката — два варианта:
    • Откат пайплайна: запускает пайплайн отката
    • Перезапуск рабочего процесса: перезапускает предыдущий рабочий процесс, используя его ID
  7. Подтверждение — суммирует и запрашивает подтверждение перед выполнением

Устранение неполадок

Быстрые решения

Наиболее частые проблемы:

  1. Очистите кэши пакетов:

    npx clear-npx-cache
    npm cache clean --force
    
  2. Принудительно используйте последнюю версию: Добавьте @latest в ваш конфиг:

    "args": ["-y", "@circleci/mcp-server-circleci@latest"]
    
  3. Полностью перезапустите IDE (а не просто перезагрузите окно)

Проблемы с аутентификацией
  • Ошибки недействительного токена: Проверьте ваш CIRCLECI_TOKEN в Personal API Tokens
  • Ошибки доступа: Убедитесь, что у токена есть доступ на чтение к вашим проектам
  • Переменные окружения не загружаются: Проверьте с помощью echo $CIRCLECI_TOKEN (Mac/Linux) или echo %CIRCLECI_TOKEN% (Windows)
Проблемы с подключением и сетью
  • Базовый URL: Убедитесь, что CIRCLECI_BASE_URL это https://circleci.com
  • Корпоративные сети: Настройте прокси-параметры npm, если находитесь за файрволом
  • Блокировка файрволом: Проверьте, не блокирует ли защитное ПО загрузку пакетов
Системные требования
  • Версия Node.js: Убедитесь, что >= 18.0.0 с помощью node --version
  • Обновите Node.js: Рассмотрите последнюю LTS версию при проблемах совместимости
  • Менеджер пакетов: Проверьте, работает ли npm/pnpm: npm --version
Проблемы, специфичные для IDE
  • Расположение файла конфигурации: Перепроверьте путь для вашей ОС
  • Синтаксические ошибки: Проверьте синтаксис JSON в вашем файле конфигурации
  • Логи консоли: Проверьте консоль разработчика IDE на наличие конкретных ошибок
  • Попробуйте другую IDE: Протестируйте в другом поддерживаемом редакторе, чтобы изолировать проблему
Проблемы с процессами

Зависшие процессы — завершите существующие процессы MCP:

# Mac/Linux:
pkill -f "mcp-server-circleci"

# Windows:
taskkill /f /im node.exe

Конфликты портов: Перезапустите IDE, если подключение кажется заблокированным.

Продвинутая отладка
  • Протестируйте пакет напрямую: npx @circleci/mcp-server-circleci@latest --help
  • Подробное логирование: DEBUG=* npx @circleci/mcp-server-circleci@latest
  • Запасной вариант с Docker: Попробуйте установку через Docker, если npx постоянно выдает сбои

Все еще нужна помощь?

  1. Проверьте GitHub Issues на наличие похожих проблем
  2. Укажите вашу ОС, версию Node и IDE при сообщении о проблемах
  3. Приложите соответствующие сообщения об ошибках из консоли IDE

Телеметрия

Сервер поддерживает метрики OpenTelemetry для отслеживания использования инструментов. Метрики экспортируются, если вы не установите DISABLE_TELEMETRY=true. При удаленном развертывании метрики используют тот же токен, что и запрос (персональный PAT пользователя или общий PAT сервера).

МетрикаОписание
circleci.mcp.tool.invocationsСчетчик вызовов инструмента
circleci.mcp.tool.duration_msВремя выполнения в мс
circleci.mcp.tool.errorsСчетчик ошибок

Разработка

Начало работы

  1. Клонируйте репозиторий:

    git clone https://github.com/CircleCI-Public/mcp-server-circleci.git
    cd mcp-server-circleci
    
  2. Установите зависимости:

    pnpm install
    
  3. Соберите проект:

    pnpm build
    

Сборка Docker-контейнера

Вы можете собрать Docker-контейнер локально, используя:

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

Это создаст образ Docker с тегом circleci:mcp-server-circleci, который вы можете использовать с любым MCP-клиентом.

Локальный режим stdio (один разработчик, токен на клиенте):

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

Удаленный режим (централизованный сервер для команды): см. Self-Managed Remote MCP Server.

Разработка с MCP Inspector

Самый простой способ итерации MCP-сервера — использование MCP inspector. Узнать больше о MCP inspector можно по адресу https://modelcontextprotocol.io/docs/tools/inspector

  1. Запустите сервер разработки:

    pnpm watch # Keep this running in one terminal
    
  2. В отдельном терминале запустите inspector:

    pnpm inspector
    
  3. Настройте окружение:

    • Добавьте ваш CIRCLECI_TOKEN в раздел Environment Variables в пользовательском интерфейсе inspector
    • Токену нужен доступ на чтение к вашим проектам CircleCI
    • При необходимости установите ваш CircleCI Base URL (по умолчанию https://circleci.com)

Тестирование

  • Запустите набор тестов:

    pnpm test
    
  • Запускайте тесты в режиме отслеживания во время разработки:

    pnpm test:watch
    

Более подробные рекомендации по участию в разработке см. в CONTRIBUTING.md