Jenkins MCP Server
MCP Jenkins é uma camada de integração baseada em Go projetada para conectar ferramentas do Model Context Protocol (MCP) com pipelines CI/CD do Jenkins. Este projeto fornece uma ponte leve e de alto desempenho que possibilita execução automatizada de pipelines, gerenciamento de jobs e recuperação de status por meio de fluxos de trabalho orientados pelo MCP.
Documentação
Jenkins MCP Server
Uma implementação de servidor Model Context Protocol (MCP) em Go que fornece acesso programático à funcionalidade de CI/CD do Jenkins. Este servidor permite que assistentes de IA e outros clientes MCP interajam com instâncias Jenkins através de uma interface de protocolo padronizada.
Recursos
- Cobertura Completa da API do Jenkins: Liste jobs, dispare builds, monitore status, recupere logs e artefatos
- Compatível com o Protocolo MCP: Implementação completa da especificação do Model Context Protocol
- Autenticação Segura: Autenticação com nome de usuário e token de API com suporte a TLS/SSL
- Tratamento Robusto de Erros: Repetição automática com backoff exponencial para falhas transitórias
- Pronto para Produção: Tratamento abrangente de erros, registro de logs e gerenciamento de tempo limite
- Suporte a Múltiplas Instâncias: Prefixação opcional de ferramentas para executar vários servidores Jenkins
Instalação
Opção 1: Instalar a partir do Código Fonte
go install github.com/NithishNithi/go-jenkins-mcp/cmd/jenkins-mcp-server@latest
Opção 2: Compilar a partir do Código Fonte
git clone https://github.com/NithishNithi/go-jenkins-mcp.git
cd go-jenkins-mcp
go build -o jenkins-mcp-server .
Opção 3: Baixar Binário Pré-compilado
Baixe a versão mais recente da página de releases.
Requisitos
- Go 1.23.6 ou posterior (para compilar a partir do código fonte)
- Acesso a uma instância Jenkins
- Nome de usuário e token de API do Jenkins
Configuração
Variáveis de Ambiente
# Required
JENKINS_URL=https://jenkins.example.com
JENKINS_USERNAME=your-username
JENKINS_API_TOKEN=your-api-token-here
# Optional
JENKINS_TIMEOUT=30s # Request timeout (default: 30s)
JENKINS_TLS_SKIP_VERIFY=false # Skip TLS verification (default: false)
JENKINS_CA_CERT=/path/to/ca.crt # Custom CA certificate path
JENKINS_MAX_RETRIES=3 # Maximum retry attempts (default: 3)
JENKINS_RETRY_BACKOFF=1s # Initial retry backoff (default: 1s)
JENKINS_TOOL_PREFIX=prod # Tool name prefix for multi-instance setups
Nota: JENKINS_TOOL_PREFIX permite executar vários servidores Jenkins MCP simultaneamente prefixando nomes de ferramentas (por exemplo, prod_jenkins_list_jobs, staging_jenkins_list_jobs).
Arquivo de Configuração
Crie um arquivo config.yaml:
jenkins:
url: https://jenkins.example.com
username: your-username
apiToken: your-api-token-here
toolPrefix: prod # Optional prefix for tool names
# Optional settings
timeout: 30s
tls:
skipVerify: false
caCert: /path/to/ca.crt
retry:
maxAttempts: 3
backoff: 1s
Execute com arquivo de configuração:
jenkins-mcp-server --config /path/to/config.yaml
Obtendo seu Token de API do Jenkins
- Faça login no Jenkins
- Clique no seu nome no canto superior direito
- Clique em "Configurar"
- Em "Token de API", clique em "Adicionar novo Token"
- Copie o token gerado
Uso
Executando o Servidor
# Using environment variables
export JENKINS_URL=https://jenkins.example.com
export JENKINS_USERNAME=your-username
export JENKINS_API_TOKEN=your-token
jenkins-mcp-server
# Using configuration file
jenkins-mcp-server --config config.yaml
Ferramentas Disponíveis
Jobs
- jenkins_list_jobs - Lista todos os jobs Jenkins acessíveis
- jenkins_get_job - Obtém informações detalhadas do job
- jenkins_trigger_build - Dispara um novo build (suporta parâmetros)
Builds
- jenkins_get_build - Obtém status e detalhes do build
- jenkins_get_build_log - Recupera a saída do console
- jenkins_get_running_builds - Obtém todos os builds em execução
- jenkins_stop_build - Para um build em execução
Artefatos
- jenkins_list_artifacts - Lista artefatos do build
- jenkins_get_artifact - Baixa artefatos específicos
Fila
- jenkins_get_queue - Visualiza a fila de builds
- jenkins_get_queue_item - Obtém detalhes do item da fila
- jenkins_cancel_queue_item - Cancela builds na fila
Visualizações
- jenkins_list_views - Lista todas as visualizações
- jenkins_get_view - Obtém jobs em uma visualização
- jenkins_create_view - Cria uma nova visualização
Servidor e Nós
- jenkins_server_health - Verifica a saúde do servidor
- jenkins_list_nodes - Lista nós Jenkins
- jenkins_get_pipeline_script - Recupera o conteúdo do Jenkinsfile
Integração com Cliente MCP
Claude Desktop
Adicione ao seu arquivo de configuração do Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"jenkins": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "JENKINS_URL=https://jenkins.example.com",
"-e", "JENKINS_USERNAME=your-username",
"-e", "JENKINS_API_TOKEN=your-api-token",
"-e", "JENKINS_TOOL_PREFIX=prod",
"ghcr.io/nithishnithi/jenkins-mcp-server:latest"
]
}
}
}
Reinicie o Claude Desktop e então pergunte:
- "Liste todos os jobs Jenkins"
- "Dispare um build para o job main-pipeline"
- "Mostre-me o status do build mais recente para my-app"
- "Obtenha o log do build para o build #42"
Solução de Problemas
Problemas de Conexão
- Verifique se
JENKINS_URLestá correto e acessível - Verifique a conectividade de rede e as regras de firewall
- Garanta que o Jenkins esteja em execução
Falhas de Autenticação
- Verifique se o token de API é válido
- Verifique se o nome de usuário está correto
- Regere o token de API se necessário
Erros de TLS/SSL
- Defina
JENKINS_TLS_SKIP_VERIFY=trueapenas para testes - Forneça um certificado CA personalizado via
JENKINS_CA_CERT - Atualize os certificados CA do sistema
Erros de Permissão
- Verifique se o usuário Jenkins tem permissões adequadas
- Verifique as permissões em nível de job no Jenkins
Problemas de Tempo Limite
- Aumente o valor de
JENKINS_TIMEOUT - Verifique o desempenho do servidor Jenkins
- Verifique a latência da rede
Cliente MCP Não Detectando o Servidor
- Verifique o caminho do binário na configuração
- Verifique se as variáveis de ambiente estão configuradas corretamente
- Reinicie o cliente MCP após alterações
- Garanta que o binário tenha permissões de execução:
chmod +x jenkins-mcp-server
Habilitar Log de Depuração
export LOG_LEVEL=debug
jenkins-mcp-server
Desenvolvimento
Estrutura do Projeto
.
├── internal/
│ ├── config/ # Configuration management
│ ├── jenkins/ # Jenkins API client
│ └── mcp/ # MCP server implementation
├── main.go # Application entry point
├── go.mod # Go module definition
├── Dockerfile # Docker image definition
└── README.md # This file
Compilação
go build -o jenkins-mcp-server .
Contribuindo
Contribuições são bem-vindas! Por favor:
- Faça um fork do repositório
- Crie um branch de recurso
- Adicione testes para suas alterações
- Envie um pull request
Licença
Licença MIT - consulte o arquivo LICENSE para detalhes.
Suporte
- Problemas: GitHub Issues
- Protocolo MCP: Model Context Protocol
Agradecimentos
Construído com o Model Context Protocol Go SDK