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
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
Предварительные требования:
- Персональный API-токен CircleCI (подробнее)
- NPX: Node.js >= v18 и pnpm
- Docker: Docker
Использование 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
Предварительные требования:
- Персональный API-токен CircleCI (подробнее)
- NPX: Node.js >= v18 и pnpm
- Docker: Docker
Использование 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
Предварительные требования:
- Персональный API-токен CircleCI (подробнее)
- NPX: Node.js >= v18 и pnpm
- Docker: Docker
Использование 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
Предварительные требования:
- Персональный API-токен CircleCI (подробнее)
- NPX: Node.js >= v18 и pnpm
- Docker: Docker
Использование 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
Предварительные требования:
- Персональный API-токен CircleCI (подробнее)
- NPX: Node.js >= v18 и pnpm
- Docker: Docker
Использование 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:
- Откройте пользовательский интерфейс конфигурации MCP
- Нажмите символ +
- Выберите область действия: глобальная или локальная
- Введите имя (например,
circleci-remote-mcp) - Выберите транспортный протокол: stdio
- Введите путь к вашему скрипту
- Нажмите 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-токенами, поддерживающими SSO | REQUIRE_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.
Этот инструмент можно использовать тремя способами:
-
Использование Project Slug (рекомендуется):
- Сначала используйте
list_followed_projects, чтобы получить ваши проекты, затем: - Пример: "Получить нестабильные тесты для my-project"
- Сначала используйте
-
Использование URL проекта CircleCI:
- Пример: "Найти нестабильные тесты в https://app.circleci.com/pipelines/github/org/repo"
-
Использование контекста локального проекта:
- Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства и 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. Этот инструмент можно использовать тремя способами:
-
Использование Project Slug и ветки (рекомендуется):
- Сначала используйте
list_followed_projects, чтобы получить ваши проекты, затем: - Пример: "Получить сбои сборки для my-project в ветке main"
- Сначала используйте
-
Использование URL CircleCI:
- Предоставьте URL упавшего задания или URL пайплайна напрямую
- Пример: "Получить логи из https://app.circleci.com/pipelines/github/org/repo/123"
-
Использование контекста локального проекта:
- Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства, URL удаленного git-репозитория и имя ветки
- Пример: "Найти последний упавший пайплайн в моей текущей ветке"
Инструмент возвращает форматированные логи, включая:
- Имена заданий
- Пошаговые детали выполнения
- Сообщения о сбоях и контекст
get_job_test_results
Извлекает метаданные тестов для заданий CircleCI, позволяя анализировать результаты тестов, не покидая IDE. Этот инструмент можно использовать тремя способами:
-
Использование Project Slug и ветки (рекомендуется):
- Пример: "Получить результаты тестов для my-project в ветке main"
-
Использование 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
- URL задания:
-
Использование контекста локального проекта:
- Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства, URL удаленного git-репозитория и имя ветки
Инструмент возвращает:
- Сводку по всем тестам (всего, успешных, неудачных)
- Подробную информацию о неудачных тестах: имя, класс, файл, сообщение об ошибке, длительность
- Список успешных тестов с временем выполнения
- Фильтрацию по результату теста
[!NOTE] Метаданные тестов должны быть настроены в вашей конфигурации CircleCI. Смотрите Сбор данных тестов для инструкций по настройке.
get_latest_pipeline_status
Извлекает статус последнего пайплайна для указанной ветки. Этот инструмент можно использовать тремя способами:
-
Использование Project Slug и ветки (рекомендуется):
- Пример: "Получить статус последнего пайплайна для my-project в ветке main"
-
Использование URL проекта CircleCI:
- Пример: "Получить статус последнего пайплайна для https://app.circleci.com/pipelines/github/org/repo"
-
Использование контекста локального проекта:
- Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства, 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. Этот инструмент можно использовать тремя способами:
-
Использование Project Slug и ветки (рекомендуется):
- Сначала используйте
list_followed_projects, чтобы получить ваши проекты, затем: - Пример: "Список артефактов для my-project в ветке main"
- Сначала используйте
-
Использование 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
- URL задания:
-
Использование контекста локального проекта:
- Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства, 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 и запускает пайплайн с её использованием.
Этот инструмент можно использовать тремя способами:
-
Используя Project Slug и ветку (Рекомендуется):
- Сначала используйте
list_followed_projects, чтобы получить свои проекты, затем: - Пример: "Запусти оценочные тесты для my-project на ветке main"
- Сначала используйте
-
Используя URL CircleCI:
- URL проекта, URL пайплайна, URL рабочего процесса или URL задания
- Пример: "Запусти оценочные тесты для https://app.circleci.com/pipelines/gh/organization/project/123"
-
Используя контекст локального проекта:
- Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства, URL удаленного git-репозитория и имя ветки
Инструмент принимает файлы шаблонов промптов и возвращает URL для отслеживания запущенного пайплайна.
[!NOTE] Если в проекте есть несколько определений пайплайнов, инструмент вернет список доступных пайплайнов для выбора.
run_pipeline
Запускает пайплайн на выполнение. Этот инструмент можно использовать тремя способами:
-
Используя Project Slug и ветку (Рекомендуется):
- Пример: "Запусти пайплайн для my-project на ветке main"
-
Используя URL CircleCI:
- URL пайплайна, URL рабочего процесса, URL задания или URL проекта с веткой
- Пример: "Запусти пайплайн для https://app.circleci.com/pipelines/github/org/repo/123"
-
Используя контекст локального проекта:
- Работает из вашего локального рабочего пространства, предоставляя корень рабочего пространства, URL удаленного git-репозитория и имя ветки
Инструмент возвращает ссылку для отслеживания выполнения пайплайна.
run_rollback_pipeline
Запускает откат для проекта CircleCI. Инструмент интерактивно проведет вас через:
- Выбор проекта — показывает список отслеживаемых проектов для выбора
- Выбор окружения — показывает список доступных окружений (автовыбор, если только одно)
- Выбор компонента — показывает список доступных компонентов (автовыбор, если только один)
- Выбор версии — отображает доступные версии; вы выбираете цель для отката
- Определение режима отката — проверяет, настроен ли пайплайн отката
- Выполнение отката — два варианта:
- Откат пайплайна: запускает пайплайн отката
- Перезапуск рабочего процесса: перезапускает предыдущий рабочий процесс, используя его ID
- Подтверждение — суммирует и запрашивает подтверждение перед выполнением
Устранение неполадок
Быстрые решения
Наиболее частые проблемы:
-
Очистите кэши пакетов:
npx clear-npx-cache npm cache clean --force -
Принудительно используйте последнюю версию: Добавьте
@latestв ваш конфиг:"args": ["-y", "@circleci/mcp-server-circleci@latest"] -
Полностью перезапустите 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 постоянно выдает сбои
Все еще нужна помощь?
- Проверьте GitHub Issues на наличие похожих проблем
- Укажите вашу ОС, версию Node и IDE при сообщении о проблемах
- Приложите соответствующие сообщения об ошибках из консоли IDE
Телеметрия
Сервер поддерживает метрики OpenTelemetry для отслеживания использования инструментов. Метрики экспортируются, если вы не установите DISABLE_TELEMETRY=true. При удаленном развертывании метрики используют тот же токен, что и запрос (персональный PAT пользователя или общий PAT сервера).
| Метрика | Описание |
|---|---|
circleci.mcp.tool.invocations | Счетчик вызовов инструмента |
circleci.mcp.tool.duration_ms | Время выполнения в мс |
circleci.mcp.tool.errors | Счетчик ошибок |
Разработка
Начало работы
-
Клонируйте репозиторий:
git clone https://github.com/CircleCI-Public/mcp-server-circleci.git cd mcp-server-circleci -
Установите зависимости:
pnpm install -
Соберите проект:
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
-
Запустите сервер разработки:
pnpm watch # Keep this running in one terminal -
В отдельном терминале запустите inspector:
pnpm inspector -
Настройте окружение:
- Добавьте ваш
CIRCLECI_TOKENв раздел Environment Variables в пользовательском интерфейсе inspector - Токену нужен доступ на чтение к вашим проектам CircleCI
- При необходимости установите ваш CircleCI Base URL (по умолчанию
https://circleci.com)
- Добавьте ваш
Тестирование
-
Запустите набор тестов:
pnpm test -
Запускайте тесты в режиме отслеживания во время разработки:
pnpm test:watch
Более подробные рекомендации по участию в разработке см. в CONTRIBUTING.md