spinnaker-mcp
Servidor MCP que expõe a plataforma Spinnaker CD via API Gate para gerenciamento de pipelines e deploys
Documentação
Spinnaker-MCP
Uma ponte que expõe qualquer instância do Spinnaker como um servidor MCP v1 através da API Gate, escrita em Go.
O que você obtém
| Categoria | Ferramenta | Descrição |
|---|---|---|
| Aplicações | list_applications | Listar todas as aplicações do Spinnaker |
get_application | Obter informações detalhadas da aplicação (contas, clusters, atributos) | |
| Pipelines | list_pipelines | Listar configurações de pipeline para uma aplicação |
get_pipeline | Obter a configuração completa de um pipeline específico | |
trigger_pipeline | Disparar um pipeline com parâmetros opcionais | |
save_pipeline | Salvar/criar uma definição de pipeline | |
update_pipeline | Atualizar uma definição de pipeline existente | |
delete_pipeline | Excluir uma definição de pipeline | |
get_pipeline_history | Obter histórico de revisões de uma configuração de pipeline | |
| Execuções | list_executions | Listar execuções recentes, filtráveis por status |
get_execution | Obter detalhes completos da execução (estágios, saídas, tempos) | |
search_executions | Busca avançada por tipo de gatilho, intervalo de tempo, status | |
cancel_execution | Cancelar uma execução em andamento com motivo opcional | |
pause_execution | Pausar uma execução em andamento no estágio atual | |
resume_execution | Retomar uma execução pausada | |
restart_stage | Reiniciar um estágio com falha dentro de uma execução | |
evaluate_expression | Avaliar uma expressão SpEL em relação a uma execução | |
| Estratégias | list_strategies | Listar configurações de estratégia de implantação |
save_strategy | Criar ou atualizar uma estratégia de implantação | |
delete_strategy | Excluir uma estratégia de implantação | |
| Infraestrutura | list_server_groups | Listar grupos de servidores (alvos de implantação) com contagens de instâncias |
list_load_balancers | Listar balanceadores de carga em todas as contas e regiões | |
list_clusters | Listar nomes de clusters agrupados por conta | |
get_cluster | Obter detalhes do cluster, incluindo grupos de servidores | |
get_scaling_activities | Obter atividades de escalonamento de um cluster | |
get_target_server_group | Consulta de grupo de servidores baseada em alvo (mais novo, mais antigo, etc.) | |
list_firewalls | Listar todos os firewalls/grupos de segurança entre contas | |
get_firewall | Obter detalhes do firewall por conta, região e nome | |
get_instance | Obter detalhes da instância (saúde, metadados, tempo de inicialização) | |
get_console_output | Obter saída do console da instância para depuração | |
find_images | Pesquisar imagens de máquina por tags, região, conta | |
get_image_tags | Listar tags de imagem para um repositório | |
list_networks | Listar VPCs/redes por provedor de nuvem | |
list_subnets | Listar sub-redes por provedor de nuvem | |
list_accounts | Listar todas as contas/credenciais de nuvem configuradas | |
get_account | Obter detalhes e permissões da conta | |
| Tarefas | get_task | Obter status de tarefa de orquestração (implantar, redimensionar, reverter) |
Tudo é exposto via JSON-RPC. LLMs e agentes podem: initialize -> listTools -> callTool e interagir com suas implantações do Spinnaker.
Início rápido
npm (transporte stdio)
npx spinnaker-mcp
Ou instale globalmente:
npm install -g spinnaker-mcp
spinnaker-mcp
Isso baixa o binário Go pré-compilado para sua plataforma e o executa com transporte stdio.
Docker
docker run --rm -e GATE_URL=http://spin-gate:8084 -e TRANSPORT=stdio drumsergio/spinnaker-mcp:0.3.1
Build local
git clone https://github.com/GeiserX/spinnaker-mcp
cd spinnaker-mcp
cp .env.example .env && $EDITOR .env
go run ./cmd/server
Configuração
| Variável | Padrão | Descrição |
|---|---|---|
GATE_URL | http://localhost:8084 | Endpoint da API Gate do Spinnaker (sem barra final) |
GATE_TOKEN | (vazio) | Token Bearer para autenticação |
GATE_USER | (vazio) | Nome de usuário de autenticação básica (alternativa ao token) |
GATE_PASS | (vazio) | Senha de autenticação básica |
GATE_CERT_FILE | (vazio) | Caminho para certificado de cliente x509 (PEM) |
GATE_KEY_FILE | (vazio) | Caminho para chave de cliente x509 (PEM) |
GATE_INSECURE | false | Ignorar verificação de certificado TLS |
TRANSPORT | (vazio = HTTP) | Defina como stdio para transporte stdio |
MCP_PORT | 8085 | Porta do transporte HTTP (ignorada quando TRANSPORT=stdio) |
MCP_BIND_ADDR | 127.0.0.1 | Endereço de bind do transporte HTTP (defina como 0.0.0.0 para ouvir em todas as interfaces) |
Prioridade de autenticação: Token Bearer > Autenticação básica > Certificado de cliente x509 > Sem autenticação.
Coloque-os em um arquivo .env (de .env.example) ou defina-os no ambiente.
Configuração do Claude Code / Claude Desktop
{
"mcpServers": {
"spinnaker": {
"command": "npx",
"args": ["-y", "spinnaker-mcp"],
"env": {
"GATE_URL": "https://spin-gate.example.com",
"GATE_TOKEN": "your-token-here"
}
}
}
}
Testes
go test -v -race ./...
Testado com Inspector. Antes de fazer um PR, certifique-se de que este servidor MCP se comporta bem através dessa ferramenta.
Créditos
Spinnaker -- plataforma de entrega contínua de código aberto
MCP-GO -- implementação Go do MCP
GoReleaser -- lançamentos multi-arquitetura sem dor
Mantenedores
Contribuindo
Sinta-se à vontade para mergulhar! Abra uma issue ou envie PRs.
Spinnaker-MCP segue o Código de Conduta do Contributor Covenant.
Outros servidores MCP por GeiserX
- genieacs-mcp -- gerenciamento de dispositivos TR-069
- cashpilot-mcp -- monitoramento de renda passiva
- duplicacy-mcp -- monitoramento de saúde de backup
- lynxprompt-mcp -- modelos de configuração de IA
- pumperly-mcp -- preços de combustível e carregamento de veículos elétricos
- telegram-archive-mcp -- arquivo de mensagens do Telegram