CircleCI MCP Server

oficial

Permita que Agentes de IA corrijam falhas de build do CircleCI.

Documentação

Servidor MCP do CircleCI

License: Apache 2.0 CircleCI npm

O Model Context Protocol (MCP) é um novo protocolo padronizado para gerenciar o contexto entre modelos de linguagem de grande porte (LLMs) e sistemas externos. Neste repositório, fornecemos um Servidor MCP para o CircleCI.

Use o Cursor, Windsurf, Copilot, Claude ou qualquer cliente compatível com MCP para interagir com o CircleCI usando linguagem natural — sem sair do seu IDE.

Ferramentas

FerramentaDescrição
analyze_diffAnalisa diffs do git em relação às regras do cursor para encontrar violações
config_helperValida e fornece orientação para sua configuração do CircleCI
create_prompt_templateGera modelos de prompt estruturados para aplicações de IA
download_usage_api_dataBaixa dados de uso da API de Uso do CircleCI
find_flaky_testsIdentifica testes instáveis analisando o histórico de execução de testes
find_underused_resource_classesEncontra jobs com recursos de computação subutilizados
get_build_failure_logsRecupera logs detalhados de falha de builds do CircleCI
get_job_test_resultsRecupera metadados e resultados de testes para jobs do CircleCI
get_latest_pipeline_statusObtém o status do pipeline mais recente para uma branch
list_artifactsLista artefatos produzidos por um job do CircleCI
list_component_versionsLista todas as versões de um componente do CircleCI
list_followed_projectsLista todos os projetos do CircleCI que você está seguindo
recommend_prompt_template_testsGera casos de teste para modelos de prompt
rerun_workflowReexecuta um workflow do início ou a partir do job com falha
run_evaluation_testsExecuta testes de avaliação em um pipeline do CircleCI
run_pipelineAciona a execução de um pipeline
run_rollback_pipelineAciona um rollback para um projeto

Instalação

Implantação em equipe / centralizada: Para executar um servidor remoto compartilhado para sua organização (Kubernetes, Docker, etc.) com tokens do CircleCI por desenvolvedor ou compartilhados, consulte Servidor MCP Remoto Autogerenciado.

Cursor

Pré-requisitos:

Usando NPX em um Servidor MCP local

Adicione o seguinte à sua configuração MCP do Cursor:

{
  "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 é opcional — necessário apenas para clientes on-prem. MAX_MCP_OUTPUT_LENGTH é opcional — comprimento máximo de saída para respostas MCP (padrão: 50000).

Usando Docker em um Servidor MCP local

Adicione o seguinte à sua configuração MCP do Cursor:

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

Usando um Servidor MCP Remoto Autogerenciado

Consulte Servidor MCP Remoto Autogerenciado. Use a configuração de cliente por usuário e adicione-a à sua configuração MCP do Cursor (Cursor Settings → MCP).

VS Code

Pré-requisitos:

Usando NPX em um Servidor MCP local

Adicione o seguinte ao .vscode/mcp.json no seu projeto:

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

💡 As entradas são solicitadas na primeira inicialização do servidor e, em seguida, armazenadas com segurança pelo VS Code.

Usando Docker em um Servidor MCP local

Adicione o seguinte ao .vscode/mcp.json no seu projeto:

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

Usando um Servidor MCP Remoto Autogerenciado

Consulte Servidor MCP Remoto Autogerenciado. Use a configuração de cliente por usuário no .vscode/mcp.json.

Claude Desktop

Pré-requisitos:

Usando NPX em um Servidor MCP local

Adicione o seguinte ao seu 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"
      }
    }
  }
}

Usando Docker em um Servidor MCP local

Adicione o seguinte ao seu 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"
      }
    }
  }
}

Usando um Servidor MCP Remoto Autogerenciado

Consulte Servidor MCP Remoto Autogerenciado. Crie um script wrapper conforme mostrado em Clientes Claude Desktop e CLI e, em seguida, aponte seu claude_desktop_config.json para ele.

Para localizar ou criar seu arquivo de configuração, abra as configurações do Claude Desktop, clique em Developer na barra lateral esquerda e, em seguida, clique em Edit Config. O arquivo de configuração está localizado em:

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

Para mais informações: https://modelcontextprotocol.io/quickstart/user

Claude Code

Pré-requisitos:

Usando NPX em um Servidor MCP local

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

Usando Docker em um Servidor MCP local

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

Usando um Servidor MCP Remoto Autogerenciado

Consulte Servidor MCP Remoto Autogerenciado e a configuração do cliente Claude Code lá.

Windsurf

Pré-requisitos:

Usando NPX em um Servidor MCP local

Adicione o seguinte ao seu mcp_config.json do Windsurf:

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

Usando Docker em um Servidor MCP local

Adicione o seguinte ao seu mcp_config.json do Windsurf:

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

Usando um Servidor MCP Remoto Autogerenciado

Consulte Servidor MCP Remoto Autogerenciado. Use a configuração de cliente por usuário no seu mcp_config.json do Windsurf.

Para mais informações: https://docs.windsurf.com/windsurf/mcp

Amazon Q Developer CLI

Pré-requisitos:

A configuração do cliente MCP no Amazon Q Developer é armazenada em formato JSON em um arquivo chamado mcp.json. Dois níveis de configuração são suportados:

  • Global: ~/.aws/amazonq/mcp.json — aplica-se a todos os workspaces
  • Workspace: .amazonq/mcp.json — específico para o workspace atual

Se ambos os arquivos existirem, seus conteúdos são mesclados. Em caso de conflito, a configuração do workspace tem precedência.

Usando NPX em um Servidor MCP local

Edite ~/.aws/amazonq/mcp.json ou crie .amazonq/mcp.json com o seguinte:

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

Usando um Servidor MCP Remoto Autogerenciado

Consulte Servidor MCP Remoto Autogerenciado. Use um script wrapper conforme mostrado em Clientes Claude Desktop e CLI e, em seguida, registre-o com q mcp add.

Amazon Q Developer no IDE

Pré-requisitos:

Usando NPX em um Servidor MCP local

Edite ~/.aws/amazonq/mcp.json ou crie .amazonq/mcp.json com o seguinte:

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

Usando um Servidor MCP Remoto Autogerenciado

Consulte Servidor MCP Remoto Autogerenciado. Use um script wrapper conforme mostrado em Clientes Claude Desktop e CLI e, em seguida, adicione-o através da interface de configuração MCP:

  1. Acesse a interface de configuração MCP
  2. Escolha o símbolo +
  3. Selecione o escopo: global ou local
  4. Insira um nome (ex.: circleci-remote-mcp)
  5. Selecione o protocolo de transporte: stdio
  6. Insira o caminho do comando para seu script
  7. Clique em Save
Smithery

Para instalar o Servidor MCP do CircleCI para Claude Desktop automaticamente via Smithery:

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

Servidor MCP Remoto Autogerenciado

Execute o servidor MCP centralmente (por exemplo, no Kubernetes ou Docker) para que sua equipe compartilhe uma única implantação. Escolha como os desenvolvedores se autenticam:

Escolha um modo de implantação

ModoQuando usarConfiguração do servidorConfiguração do clienteTrilha de auditoria do CircleCI
Tokens por usuário (recomendado)Equipes com Tokens de API Pessoais vinculados ao SSOREQUIRE_REQUEST_TOKEN=true, sem PAT no servidorCada dev encaminha seu PATPor desenvolvedor
Token compartilhado (provisório)Implantação rápida, identidade de serviço única é aceitávelCIRCLECI_TOKEN no servidor, REQUIRE_REQUEST_TOKEN=false (exclusão explícita)Nenhum cabeçalho de autenticação necessárioIdentidade compartilhada única

Segurança: A autenticação de solicitação está ativada por padrão no modo remoto. O modo de token compartilhado a desativa (REQUIRE_REQUEST_TOKEN=false), permitindo que qualquer chamador atue como a identidade CIRCLECI_TOKEN do servidor sem credenciais. Habilite-o apenas em uma rede totalmente confiável e prefira tokens por usuário caso contrário. Terminar o TLS em um ingress fornece criptografia, não autenticação.

1. Implante o servidor

Ambos os modos usam o modo HTTP remoto (start=remote). Publique a porta 8000 (ou a porta de sua escolha).

Tokens por usuário (recomendado):

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

Token compartilhado (provisório):

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

Variáveis de ambiente:

VariávelDescrição
start=remoteInicia o servidor MCP HTTP+SSE em vez de stdio
portPorta de escuta dentro do contêiner (padrão: 8000)
REQUIRE_REQUEST_TOKENRejeita solicitações sem o cabeçalho Authorization: Bearer ou Circle-Token. Padrão: obrigatório; defina REQUIRE_REQUEST_TOKEN=false para permitir solicitações não autenticadas (modo de token compartilhado)
CIRCLECI_TOKENPAT de fallback compartilhado para todas as solicitações quando cabeçalhos por usuário não são enviados
CIRCLECI_BASE_URLOpcional — necessário apenas para on-prem (padrão: https://circleci.com)
DISABLE_TELEMETRY=trueDesativa a exportação de métricas de uso

O servidor aceita tokens por solicitação via:

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

Se um cliente enviar um token de cabeçalho, ele terá precedência sobre CIRCLECI_TOKEN no servidor.

As métricas de telemetria registradas durante uma solicitação são exportadas usando o mesmo token dessa solicitação.

2. Configure os clientes

A maioria dos clientes MCP suporta apenas processos locais (stdio). Use mcp-remote, uma ponte stdio-para-HTTP de terceiros, para conectá-los ao seu servidor remoto.

Esquema de URL: Use http://localhost:8000/mcp com --allow-http para testes locais. Em produção, termine o TLS no seu ingress/load balancer e use https://your-host/mcp sem --allow-http.

Windows: Evite espaços ao redor dos dois pontos em valores --header. Coloque o valor completo de Bearer <token> em uma variável de ambiente.

Segurança: Os exemplos usam npx por conveniência. Para produção ou implantações em equipe, fixe uma versão específica na sua configuração MCP (por exemplo, [email protected] em vez de mcp-remote). Não use versões abaixo de 0.1.16 (CVE-2025-6514).

Configuração do cliente: tokens por usuário

Cada desenvolvedor encaminha seu próprio Token de API Pessoal do CircleCI em cada solicitação:

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

Substitua http://localhost:8000/mcp pela URL do servidor da sua equipe. Cursor e VS Code suportam prompts ${input:...}; outros clientes podem definir AUTH_HEADER diretamente.

Configuração do cliente: token compartilhado

Quando o servidor tem CIRCLECI_TOKEN definido e é iniciado com REQUIRE_REQUEST_TOKEN=false (a autenticação de solicitação está ativada por padrão e deve ser explicitamente desativada), os clientes não precisam enviar um token:

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

Clientes Claude Desktop e CLI

Crie um script wrapper (ex.: 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}"

Torne-o executável (chmod +x circleci-remote-mcp.sh) e, em seguida, faça referência a ele na sua configuração 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}"

Omita --header e AUTH_HEADER ao usar um servidor de token compartilhado.

3. Verifique a implantação

# 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"}}}'

Demonstração

Veja em ação

Exemplo: "Encontre o pipeline com falha mais recente na minha branch e obtenha os logs" — veja a wiki para mais exemplos.

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

Detalhes das Ferramentas

analyze_diff

Analisa diffs do git em relação às regras do cursor para identificar violações de regras.

Forneça:

  • Conteúdo do git diff (ex.: git diff --cached, git diff HEAD)
  • Regras do repositório de .cursorrules ou .cursor/rules

Retorna relatórios detalhados de violação com pontuações de confiança e explicações.

Útil para:

  • Verificações de qualidade de código pré-commit
  • Garantir consistência com os padrões de codificação da equipe
  • Capturar violações de regras antes da revisão de código
config_helper

Auxilia nas tarefas de configuração do CircleCI, fornecendo orientação e validação.

  • Valida seu .circleci/config.yml em busca de erros de sintaxe e semântica
  • Fornece resultados de validação detalhados e recomendações de configuração
  • Exemplo: "Valide minha configuração do CircleCI"
create_prompt_template

Gera modelos de prompt estruturados para aplicações habilitadas para IA com base nos requisitos do recurso.

  • Transforma os requisitos do usuário em modelos de prompt otimizados
  • Retorna um modelo estruturado e um esquema de contexto definindo os parâmetros de entrada necessários
  • Exemplo: "Crie um modelo de prompt para gerar histórias de ninar por idade e tópico"
download_usage_api_data

Baixa dados de uso da API de Uso do CircleCI para uma determinada organização. Aceita entrada de data flexível (ex.: "Março de 2025" ou "mês passado"). Recurso apenas para nuvem.

Opção 1: Inicie um novo job de exportação fornecendo:

  • orgId, startDate, endDate (máx. 32 dias), outputDir

Opção 2: Verifique/baixe um job de exportação existente fornecendo:

  • orgId, jobId, outputDir

Retorna um arquivo CSV com dados de uso do CircleCI para o período especificado.

[!NOTE] Os dados de uso podem ser alimentados na ferramenta find_underused_resource_classes para análise de otimização de custos.

find_flaky_tests

Identifica testes instáveis no seu projeto do CircleCI analisando o histórico de execução de testes. Aproveita o recurso de detecção de testes instáveis no CircleCI.

Esta ferramenta pode ser usada de três maneiras:

  1. Usando o Project Slug (Recomendado):

    • Primeiro use list_followed_projects para obter seus projetos e, em seguida:
    • Exemplo: "Obtenha testes instáveis para meu-projeto"
  2. Usando a URL do Projeto no CircleCI:

  3. Usando o Contexto do Projeto Local:

    • Funciona a partir do seu workspace local, fornecendo a raiz do workspace e a URL remota do git
    • Exemplo: "Encontre testes instáveis no meu projeto atual"

Modos de saída:

  • Texto (padrão): Retorna detalhes dos testes instáveis em formato de texto
  • Arquivo (requer a variável de ambiente FILE_OUTPUT_DIRECTORY): Cria um diretório com detalhes dos testes instáveis
find_underused_resource_classes

Analisa um arquivo CSV de dados de uso do CircleCI para encontrar jobs com uso médio ou máximo de CPU/RAM abaixo de um determinado limite (padrão: 40%).

Forneça um arquivo CSV obtido de download_usage_api_data.

Retorna uma lista em markdown de jobs subutilizados organizados por projeto e workflow — útil para identificar oportunidades de otimização de custos.

get_build_failure_logs

Recupera logs detalhados de falha de builds do CircleCI. Esta ferramenta pode ser usada de três maneiras:

  1. Usando Project Slug e Branch (Recomendado):

    • Primeiro use list_followed_projects para obter seus projetos e, em seguida:
    • Exemplo: "Obtenha falhas de build para meu-projeto na branch main"
  2. Usando URLs do CircleCI:

  3. Usando o Contexto do Projeto Local:

    • Funciona a partir do seu workspace local, fornecendo a raiz do workspace, URL remota do git e nome da branch
    • Exemplo: "Encontre o pipeline com falha mais recente na minha branch atual"

A ferramenta retorna logs formatados incluindo:

  • Nomes dos jobs
  • Detalhes da execução passo a passo
  • Mensagens de falha e contexto
get_job_test_results

Recupera metadados de teste para jobs do CircleCI, permitindo que você analise os resultados dos testes sem sair do seu IDE. Esta ferramenta pode ser usada de três maneiras:

  1. Usando Project Slug e Branch (Recomendado):

    • Exemplo: "Obtenha resultados de teste para meu-projeto na branch main"
  2. Usando URL do CircleCI:

    • URL do Job: https://app.circleci.com/pipelines/github/org/repo/123/workflows/abc-def/jobs/789
    • URL do Workflow: https://app.circleci.com/pipelines/github/org/repo/123/workflows/abc-def
    • URL do Pipeline: https://app.circleci.com/pipelines/github/org/repo/123
  3. Usando o Contexto do Projeto Local:

    • Funciona a partir do seu workspace local, fornecendo a raiz do workspace, URL remota do git e nome da branch

A ferramenta retorna:

  • Resumo de todos os testes (total, bem-sucedidos, com falha)
  • Informações detalhadas sobre testes com falha: nome, classe, arquivo, mensagem de erro, duração
  • Lista de testes bem-sucedidos com tempo
  • Filtrar por resultado do teste

[!NOTE] Os metadados de teste devem ser configurados na sua configuração do CircleCI. Consulte Coletar Dados de Teste para instruções de configuração.

get_latest_pipeline_status

Recupera o status do pipeline mais recente para uma determinada branch. Esta ferramenta pode ser usada de três maneiras:

  1. Usando Project Slug e Branch (Recomendado):

    • Exemplo: "Obtenha o status do pipeline mais recente para meu-projeto na branch main"
  2. Usando a URL do Projeto no CircleCI:

  3. Usando o Contexto do Projeto Local:

    • Funciona a partir do seu workspace local, fornecendo a raiz do workspace, URL remota do git e nome da branch

Exemplo de saída:

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

Recupera a lista de artefatos produzidos por um job do CircleCI. Esta ferramenta pode ser usada de três maneiras:

  1. Usando Project Slug e Branch (Recomendado):

    • Primeiro use list_followed_projects para obter seus projetos e, em seguida:
    • Exemplo: "Liste artefatos para meu-projeto na branch main"
  2. Usando URL do CircleCI:

    • URL do Job: https://app.circleci.com/pipelines/gh/organization/project/123/workflows/abc-def/jobs/789
    • URL do Workflow: https://app.circleci.com/pipelines/gh/organization/project/123/workflows/abc-def
    • URL do Pipeline: https://app.circleci.com/pipelines/gh/organization/project/123
  3. Usando o Contexto do Projeto Local:

    • Funciona a partir do seu workspace local, fornecendo a raiz do workspace, URL remota do git e nome da branch

Útil para:

  • Encontrar URLs de download para artefatos de build (binários, relatórios, logs)
  • Verificar quais artefatos foram produzidos por uma execução de pipeline
list_component_versions

Lista todas as versões de um componente específico do CircleCI em um ambiente. Inclui status de implantação, informações de commit e timestamps.

A ferramenta solicitará que você selecione o componente e o ambiente se não forem fornecidos.

Útil para:

  • Identificar qual versão está atualmente em produção
  • Selecionar versões de destino para operações de rollback
  • Obter detalhes de implantação (pipeline, workflow, job)
list_followed_projects

Lista todos os projetos que o usuário está seguindo no CircleCI.

  • Mostra todos os projetos aos quais você tem acesso com seus projectSlug
  • Exemplo: "Liste meus projetos do CircleCI"

Exemplo de saída:

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

[!NOTE] O projectSlug (não o nome do projeto) é necessário para muitas outras ferramentas do CircleCI.

recommend_prompt_template_tests

Gera casos de teste para modelos de prompt para garantir que produzam os resultados esperados.

  • Cria cenários de teste diversos com base no seu modelo de prompt e esquema de contexto
  • Retorna um array de casos de teste recomendados com várias combinações de parâmetros
  • Exemplo: "Gere testes para meu modelo de prompt de história de ninar"
rerun_workflow

Reexecuta um workflow do início ou a partir do job com falha.

Retorna o ID do workflow recém-criado e um link para monitorá-lo.

run_evaluation_tests

Executa testes de avaliação (também conhecidos como "Testes de Prompt") em um pipeline do CircleCI. Gera uma configuração apropriada do CircleCI e aciona um pipeline usando-a.

Esta ferramenta pode ser usada de três maneiras:

  1. Usando Project Slug e Branch (Recomendado):

    • Primeiro use list_followed_projects para obter seus projetos e, em seguida:
    • Exemplo: "Execute testes de avaliação para meu-projeto na branch main"
  2. Usando URL do CircleCI:

  3. Usando o Contexto do Projeto Local:

    • Funciona a partir do seu workspace local, fornecendo a raiz do workspace, URL remota do git e nome da branch

A ferramenta aceita arquivos de modelo de prompt e retorna uma URL para monitorar o pipeline acionado.

[!NOTE] Se o projeto tiver várias definições de pipeline, a ferramenta retornará uma lista de pipelines disponíveis para você escolher.

run_pipeline

Aciona a execução de um pipeline. Esta ferramenta pode ser usada de três maneiras:

  1. Usando Project Slug e Branch (Recomendado):

    • Exemplo: "Execute o pipeline para meu-projeto na branch main"
  2. Usando URL do CircleCI:

  3. Usando o Contexto do Projeto Local:

    • Funciona a partir do seu workspace local, fornecendo a raiz do workspace, URL remota do git e nome da branch

A ferramenta retorna um link para monitorar a execução do pipeline.

run_rollback_pipeline

Aciona um rollback para um projeto do CircleCI. A ferramenta guia você interativamente através de:

  1. Seleção do Projeto — lista os projetos seguidos para você escolher
  2. Seleção do Ambiente — lista os ambientes disponíveis (seleciona automaticamente se houver apenas um)
  3. Seleção do Componente — lista os componentes disponíveis (seleciona automaticamente se houver apenas um)
  4. Seleção da Versão — exibe as versões disponíveis; você seleciona o destino para o rollback
  5. Detecção do Modo de Rollback — verifica se um pipeline de rollback está configurado
  6. Executar Rollback — duas opções:
    • Rollback de Pipeline: aciona o pipeline de rollback
    • Reexecução de Workflow: reexecuta um workflow anterior usando seu ID de workflow
  7. Confirmação — resume e confirma antes da execução

Solução de Problemas

Correções Rápidas

Problemas mais comuns:

  1. Limpar caches de pacotes:

    npx clear-npx-cache
    npm cache clean --force
    
  2. Forçar a versão mais recente: Adicione @latest à sua configuração:

    "args": ["-y", "@circleci/mcp-server-circleci@latest"]
    
  3. Reinicie seu IDE completamente (não apenas recarregue a janela)

Problemas de Autenticação
  • Erros de token inválido: Verifique seu CIRCLECI_TOKEN em Tokens de API Pessoais
  • Erros de permissão: Certifique-se de que o token tenha acesso de leitura aos seus projetos
  • Variáveis de ambiente não carregando: Teste com echo $CIRCLECI_TOKEN (Mac/Linux) ou echo %CIRCLECI_TOKEN% (Windows)
Problemas de Conexão e Rede
  • URL Base: Confirme se CIRCLECI_BASE_URL é https://circleci.com
  • Redes corporativas: Configure as definições de proxy do npm se estiver atrás de um firewall
  • Bloqueio de firewall: Verifique se o software de segurança bloqueia downloads de pacotes
Requisitos do Sistema
  • Versão do Node.js: Certifique-se de que seja >= 18.0.0 com node --version
  • Atualizar Node.js: Considere a LTS mais recente se tiver problemas de compatibilidade
  • Gerenciador de pacotes: Verifique se o npm/pnpm está funcionando: npm --version
Problemas Específicos do IDE
  • Localização do arquivo de configuração: Verifique novamente o caminho para o seu SO
  • Erros de sintaxe: Valide a sintaxe JSON no seu arquivo de configuração
  • Logs do console: Verifique o console do desenvolvedor do IDE para erros específicos
  • Experimente um IDE diferente: Teste em outro editor suportado para isolar o problema
Problemas de Processo

Processos travados — mate os processos MCP existentes:

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

# Windows:
taskkill /f /im node.exe

Conflitos de porta: Reinicie seu IDE se a conexão parecer bloqueada.

Depuração Avançada
  • Testar o pacote diretamente: npx @circleci/mcp-server-circleci@latest --help
  • Log detalhado: DEBUG=* npx @circleci/mcp-server-circleci@latest
  • Fallback do Docker: Experimente a instalação do Docker se o npx falhar consistentemente

Ainda precisa de ajuda?

  1. Verifique GitHub Issues para problemas semelhantes
  2. Inclua seu SO, versão do Node e IDE ao relatar problemas
  3. Compartilhe mensagens de erro relevantes do console do IDE

Telemetria

O servidor suporta métricas OpenTelemetry para rastrear o uso da ferramenta. As métricas são exportadas, a menos que você defina DISABLE_TELEMETRY=true. Em implantações remotas, as métricas usam o mesmo token da solicitação (PAT por usuário ou PAT compartilhado do servidor).

MétricaDescrição
circleci.mcp.tool.invocationsContagem de invocações da ferramenta
circleci.mcp.tool.duration_msTempo de execução em ms
circleci.mcp.tool.errorsContagem de erros

Desenvolvimento

Primeiros Passos

  1. Clone o repositório:

    git clone https://github.com/CircleCI-Public/mcp-server-circleci.git
    cd mcp-server-circleci
    
  2. Instale as dependências:

    pnpm install
    
  3. Construa o projeto:

    pnpm build
    

Construindo o Contêiner Docker

Você pode construir o contêiner Docker localmente usando:

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

Isso criará uma imagem Docker marcada como circleci:mcp-server-circleci que você pode usar com qualquer cliente MCP.

Modo stdio local (desenvolvedor único, token no cliente):

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

Modo remoto (servidor centralizado para uma equipe): consulte Servidor MCP Remoto Autogerenciado.

Desenvolvimento com o MCP Inspector

A maneira mais fácil de iterar no Servidor MCP é usando o MCP Inspector. Você pode aprender mais sobre o MCP Inspector em https://modelcontextprotocol.io/docs/tools/inspector

  1. Inicie o servidor de desenvolvimento:

    pnpm watch # Keep this running in one terminal
    
  2. Em um terminal separado, inicie o inspector:

    pnpm inspector
    
  3. Configure o ambiente:

    • Adicione seu CIRCLECI_TOKEN à seção de Variáveis de Ambiente na interface do inspector
    • O token precisa de acesso de leitura aos seus projetos do CircleCI
    • Opcionalmente, defina sua URL Base do CircleCI (padrão: https://circleci.com)

Testes

  • Execute a suíte de testes:

    pnpm test
    
  • Execute os testes no modo watch durante o desenvolvimento:

    pnpm test:watch
    

Para diretrizes de contribuição mais detalhadas, consulte CONTRIBUTING.md