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
GitHub Actions MCP Server
⚠️ 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
-
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óriopage(número opcional): Número da página para paginaçãoperPage(número opcional): Resultados por página (máx. 100)
- Retorna: Lista de fluxos de trabalho no repositório
-
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órioworkflowId(string ou número): O ID do fluxo de trabalho ou nome do arquivo
- Retorna: Informações detalhadas sobre o fluxo de trabalho
-
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órioworkflowId(string ou número): O ID do fluxo de trabalho ou nome do arquivo
- Retorna: Estatísticas de uso, incluindo minutos faturáveis
-
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órioworkflowId(string ou número opcional): O ID do fluxo de trabalho ou nome do arquivoactor(string opcional): Filtrar por usuário que acionou o fluxo de trabalhobranch(string opcional): Filtrar por branchevent(string opcional): Filtrar por tipo de eventostatus(string opcional): Filtrar por statuscreated(string opcional): Filtrar por data de criação (AAAA-MM-DD)excludePullRequests(booleano opcional): Excluir execuções acionadas por PRcheckSuiteId(número opcional): Filtrar por ID do conjunto de verificaçõespage(número opcional): Número da página para paginaçãoperPage(número opcional): Resultados por página (máx. 100)
- Retorna: Lista de execuções de fluxo de trabalho que correspondem aos critérios
-
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óriorunId(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
-
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óriorunId(número): O ID da execução do fluxo de trabalhofilter(string opcional): Filtrar jobs por status de conclusão ('latest', 'all')page(número opcional): Número da página para paginaçãoperPage(número opcional): Resultados por página (máx. 100)
- Retorna: Lista de jobs na execução do fluxo de trabalho
-
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órioworkflowId(string ou número): O ID do fluxo de trabalho ou nome do arquivoref(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
-
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óriorunId(número): O ID da execução do fluxo de trabalho
- Retorna: Status da operação de cancelamento
-
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óriorunId(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
-
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.
-
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:
-
Passe-o como parâmetro para o arquivo batch:
run-server.bat your_github_token_here -
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:
-
Erros de build: Certifique-se de que o TypeScript esteja instalado corretamente.
npm install -g typescript -
Problemas de permissão: Certifique-se de estar executando os comandos em um prompt de comando com permissões adequadas.
-
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
-
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
-
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
-
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.
