Giant Swarm App Platform

Um servidor para gerenciar implantações do Giant Swarm App Platform usando credenciais Kubernetes.

Documentação

Servidor MCP para Giant Swarm App Platform

Um servidor MCP (Model Context Protocol) que fornece ferramentas e recursos para gerenciar implantações do Giant Swarm App Platform.

Recursos

  • Gerenciamento de Apps: Criar, atualizar, listar e excluir apps do Giant Swarm
  • Suporte a Catálogos: Navegar e pesquisar catálogos de apps e versões disponíveis
  • Gerenciamento de Configuração: Lidar com configurações de apps via ConfigMaps e Secrets
  • Suporte a Múltiplos Namespaces: Trabalhar com namespaces baseados em organizações
  • Integração com CAPI: Suporte para implantações de apps em clusters de workload
  • Prompts: Guias interativos para operações comuns

Pré-requisitos

  • Go 1.21 ou posterior
  • Acesso a um cluster de gerenciamento Giant Swarm
  • Credenciais Kubernetes configuradas (acesso kubectl)

Instalação

Pré-requisitos

  • Go 1.21 ou posterior
  • Acesso a um cluster de gerenciamento Giant Swarm
  • kubeconfig válido para autenticação

Compilando a partir do código-fonte

# Clone the repository
git clone https://github.com/giantswarm/mcp-giantswarm-apps.git
cd mcp-giantswarm-apps

# Install dependencies
make deps

# Build the server
make build

# Install to $GOPATH/bin
make install

Uso

Executando o Servidor

O servidor é executado usando transporte stdio por padrão:

# Run directly
./build/mcp-giantswarm-apps

# Or if installed
mcp-giantswarm-apps

Configuração

O servidor usa o contexto kubeconfig atual por padrão. Você pode especificar um contexto diferente:

export KUBECONFIG=/path/to/kubeconfig
mcp-giantswarm-apps

Integração com Assistentes de IA

Para usar com Claude Desktop ou outros clientes compatíveis com MCP, adicione à sua configuração:

{
  "mcpServers": {
    "giantswarm-apps": {
      "command": "mcp-giantswarm-apps",
      "args": []
    }
  }
}

Ferramentas Disponíveis

Gerenciamento de Apps

  • app_list - Listar apps do Giant Swarm com opções de filtro
  • app_get - Obter informações detalhadas sobre um app específico
  • app_create - Criar um novo app do Giant Swarm
  • app_update - Atualizar um app existente
  • app_delete - Excluir um app

Gerenciamento de Catálogos

  • catalog_list - Listar catálogos de apps disponíveis
  • catalog_get - Obter informações detalhadas do catálogo
  • catalog_refresh - Atualizar entradas do catálogo
  • catalog_search - Pesquisar apps em todos os catálogos

Entradas de Catálogo de Apps

  • appcatalogentry_list - Listar apps dos catálogos
  • appcatalogentry_get - Obter informações detalhadas do app
  • appcatalogentry_versions - Listar versões disponíveis
  • appcatalogentry_search - Pesquisar entradas do catálogo

Gerenciamento de Configuração

  • config_get - Obter configuração do app
  • config_create - Criar nova configuração
  • config_update - Atualizar configuração
  • config_values - Obter valores de configuração

Gerenciamento de Organizações

  • organization_list - Listar organizações
  • organization_namespaces - Listar namespaces de organizações
  • organization_info - Obter detalhes do namespace
  • organization_validate_access - Verificar permissões de acesso

Gerenciamento de Clusters (CAPI)

  • cluster_list - Listar clusters de workload disponíveis
  • cluster_get - Obter informações detalhadas do cluster
  • cluster_apps - Listar apps implantados em um cluster específico

Ferramentas do Sistema

  • health - Verificar a saúde do servidor e da conexão
  • kubernetes_contexts - Listar contextos disponíveis

Recursos Disponíveis

O servidor expõe vários recursos:

  • app://{namespace}/{name} - Detalhes e status do app
  • catalog://{name} - Informações do catálogo
  • config://{namespace}/{app}/values - Configuração do app

Exemplos de Uso

Listar clusters de workload

# List all clusters
mcp cluster_list

# List clusters for an organization
mcp cluster_list --organization giantswarm

# List only ready clusters
mcp cluster_list --ready-only

Implantar app em cluster de workload

# Deploy app to a specific workload cluster
mcp app_create \
  --name nginx-ingress \
  --namespace org-giantswarm \
  --catalog giantswarm \
  --app nginx-ingress-controller \
  --version 2.1.0 \
  --cluster prod-cluster

Listar apps em um cluster de workload

# List all apps in a specific cluster
mcp cluster_apps --cluster prod-cluster --organization giantswarm

Desenvolvimento

Estrutura do Projeto

.
├── cmd/mcp-server/      # Main server entry point
├── pkg/
│   ├── app/            # App management logic
│   ├── catalog/        # Catalog handling
│   └── config/         # Configuration management
├── internal/
│   └── k8s/           # Kubernetes client utilities
└── Makefile           # Build automation

Executando Testes

make test

Contribuindo

Consulte CONTRIBUTING.md para obter as diretrizes.

Licença

Este projeto é licenciado sob a Apache License 2.0 — consulte o arquivo LICENSE para obter detalhes.

Suporte

Para problemas e solicitações de recursos, use o rastreador de problemas do GitHub.