Steadybit

Interaja com a plataforma Steadybit para executar experimentos de engenharia do caos.

Documentação

Servidor MCP Steadybit

[!WARNING] Obsoleto. Este servidor MCP autônomo não é mais mantido. Use o Servidor MCP Remoto que já está integrado à plataforma Steadybit — ele não requer instalação local, suporta OAuth e cobre consideravelmente mais ferramentas (ambientes, alvos, ações, serviços, design de experimentos, sugestões e análise de execuções). Consulte a documentação para instruções de configuração.

Servidor MCP para Steadybit, permitindo que ferramentas de LLM como Claude interajam com a plataforma Steadybit.

Ferramentas

  1. list-experiment-designs
    • Listar designs de experimentos
    • Entradas obrigatórias:
      • team (string): A chave da equipe para listar os designs de experimentos
    • Retorna: Lista de designs de experimentos com suas chaves e nomes
  2. get_experiment_design
    • Obter um design de experimento
    • Entradas obrigatórias:
      • experimentKey (string): A chave do experimento a ser obtida
    • Retorna: O design do experimento
  3. list_experiment_executions
    • Listar execuções de experimentos
    • Entradas opcionais:
      • experiment (lista de strings): Filtrar por uma ou mais chaves de experimento
      • environment (lista de strings): Filtrar por um ou mais nomes de ambiente
      • team (lista de strings): Filtrar por uma ou mais chaves de equipe
      • state (lista de strings): Filtrar por um ou mais estados de resultado, valores possíveis são [CREATED, PREPARED, RUNNING, FAILED, CANCELED, COMPLETED, ERRORED]
      • from (string, data ISO8601): Filtrar pela data de criação a partir de
      • to (string, data ISO8601): Filtrar pela data de criação até
      • page (número): Número da página solicitada, o padrão é 0
      • pageSize (número): Resultados por página, o padrão é 50, máximo permitido é 100
    • Retorna: O design do experimento
  4. get_experiment_execution
    • Obter uma execução de experimento
    • Entradas obrigatórias:
      • executionId (número): O ID da execução a ser obtido
    • Retorna: A execução do experimento
  5. list_actions
    • Lista de ações atualmente registradas
    • Entradas opcionais:
      • page (número): Número da página solicitada, o padrão é 0
      • pageSize (número): Resultados por página, o padrão é 50, máximo permitido é 100
    • Retorna: Lista de ações
  6. list_environments
    • Obter uma lista de ambientes
    • Retorna: Lista de ambientes
  7. list_teams
    • Obter uma lista de equipes
    • Retorna: Lista de equipes
  8. list_experiment_schedules
    • Obter uma lista de agendamentos de experimentos
    • Entradas opcionais:
      • experiment (lista de strings): Filtrar por uma ou mais chaves de experimento
      • team (lista de strings): Filtrar por uma ou mais chaves de equipe
    • Retorna: Lista de agendamentos de experimentos
  9. list_experiment_templates
    • Obter uma lista de modelos de experimentos (nomes e IDs)
  10. get_experiment_template
    • Obter um modelo de experimento incluindo seu design
    • Entradas obrigatórias:
      • templateId (string): O ID do modelo para criar um experimento a partir dele
  11. create_experiment_from_template
    • Criar um experimento a partir de um modelo
    • Precisa ser habilitado via variável de ambiente, por exemplo CAPABILITIES_ENABLED_0=CREATE_EXPERIMENT_FROM_TEMPLATE
    • Entradas obrigatórias:
      • templateId (string): O ID do modelo para criar um experimento a partir dele
      • environment (string): O ambiente a ser usado para o experimento
      • team (string): A equipe a ser usada para o experimento
    • Entradas opcionais:
      • placeholders (objeto): Um mapa de chaves de espaço reservado e seus valores.
      • externalId (string): Um ID externo opcional que pode ser usado para atualizar designs de experimentos existentes.
    • Retorna: A chave do experimento criado ou uma mensagem de erro se o experimento não puder ser criado

Configuração

Você precisa de uma conta Steadybit e um token de API. Você pode criar um token de API na plataforma Steadybit em Configurações → Tokens de Acesso à API. Ambos os tipos de token — Admin ou Team — são suportados.

Se você quiser criar experimentos, precisará de um token de equipe para a equipe na qual deseja criar experimentos.

Variáveis de ambiente suportadas

  • API_TOKEN: O token de API a ser usado para autenticação. Obrigatório.
  • API_URL: A URL da API Steadybit. O padrão é https://platform.steadybit.com/api.
  • CAPABILITIES_ENABLED_0, CAPABILITIES_ENABLED_1, ...: Capacidades adicionais a serem habilitadas. Atualmente suportadas:
    • CREATE_EXPERIMENT_FROM_TEMPLATE: Habilita a ferramenta create_experiment_from_template.

Uso com Claude Desktop

No Claude Desktop, vá para Configurações → Desenvolvedor → Editar e adicione o seguinte JSON, substituindo <your-api-token> pelo seu token real:

{
  "mcpServers": {
    "steadybit": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "API_TOKEN",
        "ghcr.io/steadybit/mcp:latest"
      ],
      "env": {
        "API_TOKEN": "<your-api-token>"
      }
    }
  }
}

Desenvolvimento Local

Pré-requisitos

  • Java 21+
  • Maven 3.9+
  • Docker (necessário apenas para o fluxo de imagem Docker)
  • Node.js / npx (usado para executar o inspetor MCP)

O servidor MCP usa transporte STDIO, portanto não há registro de console. A saída do servidor é gravada em steadybit-mcp.log no diretório onde você inicia o servidor.

Compilar

mvn clean install

O jar resultante está em target/mcp-<version>-SNAPSHOT.jar.

Executar localmente com o inspetor MCP

npx @modelcontextprotocol/inspector \
  java -jar target/mcp-1.0.0-SNAPSHOT.jar \
  -e API_URL=https://platform.steadybit.com/api \
  -e API_TOKEN=<your-api-token>

Os logs são gravados em steadybit-mcp.log no diretório onde você iniciou o inspetor.

Executar no Claude Desktop com seu jar local

Edite a configuração de desenvolvedor do Claude Desktop (Configurações → Desenvolvedor → Editar) para apontar para seu binário Java local e o jar recém-compilado:

{
  "mcpServers": {
    "steadybit": {
      "command": "/path/to/your/java",
      "args": [
        "-jar",
        "/path/to/your/.m2/repository/com/steadybit/mcp/1.0.0-SNAPSHOT/mcp-1.0.0-SNAPSHOT.jar"
      ],
      "env": {
        "API_URL": "https://platform.steadybit.com/api",
        "API_TOKEN": "<your-api-token>",
        "LOGGING_FILE_NAME": "/path/to/Library/Logs/Claude/steadybit-mcp-server.log"
      }
    }
  }
}
  • Logs do cliente MCP: ~/Library/Logs/Claude/mcp-server-steadybit.log
  • Logs do servidor MCP: o caminho configurado via LOGGING_FILE_NAME (o padrão é steadybit-mcp.log ao lado do lançador)

Executar testes

mvn test

Compilar a imagem Docker

docker build -t steadybit/mcp -f Dockerfile .

Em seguida, crie um config.json e execute o inspetor contra a imagem:

{
  "mcpServers": {
    "steadybit": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "API_TOKEN",
        "-e",
        "API_URL",
        "steadybit/mcp"
      ],
      "env": {
        "API_TOKEN": "<your-api-token>",
        "API_URL": "https://platform.steadybit.com/api"
      }
    }
  }
}
npx @modelcontextprotocol/inspector --config config.json --server steadybit

Compilar uma imagem nativa

Instale o GraalVM 24.0.1 via sdkman:

sdk install java 24.0.1-graalce
sdk use java 24.0.1-graalce

Em seguida, compile com o perfil native:

mvn -Pnative native:compile

Exemplo de Uso

Exemplos de prompts estão em examples/examples.md.

Licença

MIT — consulte LICENSE para detalhes.