GitHub Actions

Um servidor MCP para a API do GitHub Actions, permitindo que assistentes de IA gerenciem e operem workflows do GitHub Actions.

Documentação

Verified on MseeP MseeP.ai Security Assessment Badge

GitHub Actions MCP Server

smithery badge

⚠️ Aviso de Arquivamento: Este repositório será arquivado em breve, pois o servidor MCP oficial do GitHub está adicionando suporte ao Actions. Veja github/github-mcp-server#491 para detalhes sobre a implementação oficial.

Servidor MCP para a API do GitHub Actions, permitindo que assistentes de IA gerenciem e operem fluxos de trabalho do GitHub Actions. Compatível com vários assistentes de codificação de IA, incluindo Claude Desktop, Codeium e Windsurf.

Recursos

  • Gerenciamento Completo de Fluxos de Trabalho: Listar, visualizar, acionar, cancelar e reexecutar fluxos de trabalho
  • Análise de Execuções de Fluxos de Trabalho: Obter informações detalhadas sobre execuções e seus jobs
  • Tratamento Abrangente de Erros: Mensagens de erro claras com detalhes aprimorados
  • Validação Flexível de Tipos: Verificação robusta de tipos com tratamento gracioso de variações da API
  • Design Focado em Segurança: Tratamento de tempo limite, limitação de taxa e validação estrita de URLs

Ferramentas

  1. list_workflows

    • Listar fluxos de trabalho em um repositório GitHub
    • Entradas:
      • owner (string): Proprietário do repositório (usuário ou organização)
      • repo (string): Nome do repositório
      • page (número opcional): Número da página para paginação
      • perPage (número opcional): Resultados por página (máx. 100)
    • Retorna: Lista de fluxos de trabalho no repositório
  2. get_workflow

    • Obter detalhes de um fluxo de trabalho específico
    • Entradas:
      • owner (string): Proprietário do repositório (usuário ou organização)
      • repo (string): Nome do repositório
      • workflowId (string ou número): O ID do fluxo de trabalho ou nome do arquivo
    • Retorna: Informações detalhadas sobre o fluxo de trabalho
  3. get_workflow_usage

    • Obter estatísticas de uso de um fluxo de trabalho
    • Entradas:
      • owner (string): Proprietário do repositório (usuário ou organização)
      • repo (string): Nome do repositório
      • workflowId (string ou número): O ID do fluxo de trabalho ou nome do arquivo
    • Retorna: Estatísticas de uso, incluindo minutos faturáveis
  4. list_workflow_runs

    • Listar todas as execuções de fluxo de trabalho para um repositório ou um fluxo de trabalho específico
    • Entradas:
      • owner (string): Proprietário do repositório (usuário ou organização)
      • repo (string): Nome do repositório
      • workflowId (string ou número opcional): O ID do fluxo de trabalho ou nome do arquivo
      • actor (string opcional): Filtrar por usuário que acionou o fluxo de trabalho
      • branch (string opcional): Filtrar por branch
      • event (string opcional): Filtrar por tipo de evento
      • status (string opcional): Filtrar por status
      • created (string opcional): Filtrar por data de criação (AAAA-MM-DD)
      • excludePullRequests (booleano opcional): Excluir execuções acionadas por PR
      • checkSuiteId (número opcional): Filtrar por ID do conjunto de verificações
      • page (número opcional): Número da página para paginação
      • perPage (número opcional): Resultados por página (máx. 100)
    • Retorna: Lista de execuções de fluxo de trabalho que correspondem aos critérios
  5. get_workflow_run

    • Obter detalhes de uma execução de fluxo de trabalho específica
    • Entradas:
      • owner (string): Proprietário do repositório (usuário ou organização)
      • repo (string): Nome do repositório
      • runId (número): O ID da execução do fluxo de trabalho
    • Retorna: Informações detalhadas sobre a execução específica do fluxo de trabalho
  6. get_workflow_run_jobs

    • Obter jobs para uma execução de fluxo de trabalho específica
    • Entradas:
      • owner (string): Proprietário do repositório (usuário ou organização)
      • repo (string): Nome do repositório
      • runId (número): O ID da execução do fluxo de trabalho
      • filter (string opcional): Filtrar jobs por status de conclusão ('latest', 'all')
      • page (número opcional): Número da página para paginação
      • perPage (número opcional): Resultados por página (máx. 100)
    • Retorna: Lista de jobs na execução do fluxo de trabalho
  7. trigger_workflow

    • Acionar uma execução de fluxo de trabalho
    • Entradas:
      • owner (string): Proprietário do repositório (usuário ou organização)
      • repo (string): Nome do repositório
      • workflowId (string ou número): O ID do fluxo de trabalho ou nome do arquivo
      • ref (string): A referência para executar o fluxo de trabalho (branch, tag ou SHA)
      • inputs (objeto opcional): Parâmetros de entrada para o fluxo de trabalho
    • Retorna: Informações sobre a execução do fluxo de trabalho acionada
  8. cancel_workflow_run

    • Cancelar uma execução de fluxo de trabalho
    • Entradas:
      • owner (string): Proprietário do repositório (usuário ou organização)
      • repo (string): Nome do repositório
      • runId (número): O ID da execução do fluxo de trabalho
    • Retorna: Status da operação de cancelamento
  9. rerun_workflow

    • Reexecutar uma execução de fluxo de trabalho
    • Entradas:
      • owner (string): Proprietário do repositório (usuário ou organização)
      • repo (string): Nome do repositório
      • runId (número): O ID da execução do fluxo de trabalho
    • Retorna: Status da operação de reexecução

Uso com Assistentes de Codificação de IA

Este servidor MCP é compatível com vários assistentes de codificação de IA, incluindo Claude Desktop, Codeium e Windsurf.

Claude Desktop

Primeiro, certifique-se de que você construiu o projeto (veja a seção Build abaixo). Em seguida, adicione o seguinte ao seu claude_desktop_config.json:

{
  "mcpServers": {
    "github-actions": {
      "command": "node",
      "args": [
        "<path-to-mcp-server>/dist/index.js"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

Codeium

Adicione a seguinte configuração ao seu arquivo de configuração MCP do Codeium (normalmente em ~/.codeium/windsurf/mcp_config.json em sistemas baseados em Unix ou %USERPROFILE%\.codeium\windsurf\mcp_config.json no Windows):

{
  "mcpServers": {
    "github-actions": {
      "command": "node",
      "args": [
        "<path-to-mcp-server>/dist/index.js"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

Windsurf

O Windsurf usa o mesmo formato de configuração do Codeium. Adicione o servidor à sua configuração MCP do Windsurf conforme mostrado acima para o Codeium.

Build

Unix/Linux/macOS

Clone o repositório e construa:

git clone https://github.com/ko1ynnky/github-actions-mcp-server.git
cd github-actions-mcp-server
npm install
npm run build

Windows

Para sistemas Windows, use o comando de build específico do Windows:

git clone https://github.com/ko1ynnky/github-actions-mcp-server.git
cd github-actions-mcp-server
npm install
npm run build:win

Alternativamente, você pode usar o arquivo batch incluído:

run-server.bat [optional-github-token]

Isso criará os arquivos necessários no diretório dist que você precisará para executar o servidor MCP.

Instruções Específicas para Windows

Pré-requisitos

  • Node.js (v14 ou superior)
  • npm (v6 ou superior)

Executando o Servidor no Windows

  1. Usando o arquivo batch (método mais simples):

    run-server.bat [optional-github-token]
    

    Isso verificará se o build existe, fará o build se necessário e iniciará o servidor.

  2. Usando npm diretamente:

    npm run start
    

Configurando o Token de Acesso Pessoal do GitHub no Windows

Para funcionalidade completa e para evitar limitação de taxa, você precisa definir seu Token de Acesso Pessoal do GitHub.

Opções:

  1. Passe-o como parâmetro para o arquivo batch:

    run-server.bat your_github_token_here
    
  2. Defina-o como variável de ambiente:

    set GITHUB_PERSONAL_ACCESS_TOKEN=your_github_token_here
    npm run start
    

Solução de Problemas no Windows

Se você encontrar problemas:

  1. Erros de build: Certifique-se de que o TypeScript esteja instalado corretamente.

    npm install -g typescript
    
  2. Problemas de permissão: Certifique-se de estar executando os comandos em um prompt de comando com permissões adequadas.

  3. Erros do Node.js: Verifique se você está usando uma versão compatível do Node.js.

    node --version
    

Exemplos de Uso

Listar fluxos de trabalho em um repositório:

const result = await listWorkflows({
  owner: "your-username",
  repo: "your-repository"
});

Acionar um fluxo de trabalho:

const result = await triggerWorkflow({
  owner: "your-username",
  repo: "your-repository",
  workflowId: "ci.yml",
  ref: "main",
  inputs: {
    environment: "production"
  }
});

Solução de Problemas

Problemas Comuns

  1. Erros de Autenticação:

    • Certifique-se de que seu token do GitHub tenha as permissões corretas
    • Verifique se o token está definido corretamente como variável de ambiente
  2. Limitação de Taxa:

    • O servidor implementa limitação de taxa para evitar atingir os limites da API do GitHub
    • Se você encontrar erros de limite de taxa, reduza a frequência das solicitações
  3. Erros de Validação de Tipos:

    • As respostas da API do GitHub podem às vezes diferir dos esquemas esperados
    • O servidor implementa validação flexível para lidar com a maioria das variações
    • Se você encontrar erros persistentes, abra uma issue

Licença

Este servidor MCP é licenciado sob a Licença MIT.