Steadybit

Interactúa con la plataforma Steadybit para ejecutar experimentos de ingeniería del caos.

Documentación

Servidor MCP de Steadybit

[!WARNING] Obsoleto. Este servidor MCP independiente ya no se mantiene. Utilice el Servidor MCP remoto integrado en la plataforma Steadybit en su lugar: no requiere instalación local, admite OAuth y cubre considerablemente más herramientas (entornos, objetivos, acciones, servicios, diseño de experimentos, sugerencias y análisis de ejecuciones). Consulte la documentación para las instrucciones de configuración.

Servidor MCP para Steadybit, que permite que herramientas LLM como Claude interactúen con la plataforma Steadybit.

Herramientas

  1. list-experiment-designs
    • Listar diseños de experimentos
    • Entradas requeridas:
      • team (cadena): La clave del equipo para listar los diseños de experimentos
    • Devuelve: Lista de diseños de experimentos con su clave y nombre
  2. get_experiment_design
    • Obtener un diseño de experimento
    • Entradas requeridas:
      • experimentKey (cadena): La clave del experimento a obtener
    • Devuelve: El diseño del experimento
  3. list_experiment_executions
    • Listar ejecuciones de experimentos
    • Entradas opcionales:
      • experiment (lista de cadenas): Filtrar por una o más claves de experimento
      • environment (lista de cadenas): Filtrar por uno o más nombres de entorno
      • team (lista de cadenas): Filtrar por una o más claves de equipo
      • state (lista de cadenas): Filtrar por uno o más estados de resultado, los valores posibles son [CREATED, PREPARED, RUNNING, FAILED, CANCELED, COMPLETED, ERRORED]
      • from (cadena, fecha ISO8601): Filtrar por fecha de creación desde
      • to (cadena, fecha ISO8601): Filtrar por fecha de creación hasta
      • page (número): Número de la página solicitada, el valor predeterminado es 0
      • pageSize (número): Resultados por página, el valor predeterminado es 50, se permite un máximo de 100
    • Devuelve: El diseño del experimento
  4. get_experiment_execution
    • Obtener una ejecución de experimento
    • Entradas requeridas:
      • executionId (número): El id de la ejecución a obtener
    • Devuelve: La ejecución del experimento
  5. list_actions
    • Lista de acciones actualmente registradas
    • Entradas opcionales:
      • page (número): Número de la página solicitada, el valor predeterminado es 0
      • pageSize (número): Resultados por página, el valor predeterminado es 50, se permite un máximo de 100
    • Devuelve: Lista de acciones
  6. list_environments
    • Obtener una lista de entornos
    • Devuelve: Lista de entornos
  7. list_teams
    • Obtener una lista de equipos
    • Devuelve: Lista de equipos
  8. list_experiment_schedules
    • Obtener una lista de programaciones de experimentos
    • Entradas opcionales:
      • experiment (lista de cadenas): Filtrar por una o más claves de experimento
      • team (lista de cadenas): Filtrar por una o más claves de equipo
    • Devuelve: Lista de programaciones de experimentos
  9. list_experiment_templates
    • Obtener una lista de plantillas de experimentos (nombre e ids)
  10. get_experiment_template
    • Obtener una plantilla de experimento incluyendo su diseño
    • Entradas requeridas:
      • templateId (cadena): El id de la plantilla para crear un experimento a partir de ella
  11. create_experiment_from_template
    • Crear un experimento a partir de una plantilla
    • Debe habilitarse mediante una variable de entorno, por ejemplo CAPABILITIES_ENABLED_0=CREATE_EXPERIMENT_FROM_TEMPLATE
    • Entradas requeridas:
      • templateId (cadena): El id de la plantilla para crear un experimento a partir de ella
      • environment (cadena): El entorno a utilizar para el experimento
      • team (cadena): El equipo a utilizar para el experimento
    • Entradas opcionales:
      • placeholders (objeto): Un mapa de claves de marcador de posición y sus valores.
      • externalId (cadena): Un id externo opcional que se puede utilizar para actualizar diseños de experimentos existentes.
    • Devuelve: La clave del experimento creado o un mensaje de error si el experimento no se pudo crear

Configuración

Necesita una cuenta de Steadybit y un token de API. Puede crear un token de API en la plataforma Steadybit en Configuración → Tokens de acceso a la API. Ambos tipos de token — Admin o Team — son compatibles.

Si desea crear experimentos, necesita un token de equipo para el equipo en el que desea crear experimentos.

Variables de entorno compatibles

  • API_TOKEN: El token de API a utilizar para la autenticación. Requerido.
  • API_URL: La URL de la API de Steadybit. El valor predeterminado es https://platform.steadybit.com/api.
  • CAPABILITIES_ENABLED_0, CAPABILITIES_ENABLED_1, ...: Capacidades adicionales para habilitar. Actualmente compatibles:
    • CREATE_EXPERIMENT_FROM_TEMPLATE: Habilita la herramienta create_experiment_from_template.

Uso con Claude Desktop

En Claude Desktop vaya a Configuración → Desarrollador → Editar y agregue el siguiente JSON, reemplazando <your-api-token> con su token real:

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

Desarrollo local

Requisitos previos

  • Java 21+
  • Maven 3.9+
  • Docker (solo requerido para el flujo de imagen Docker)
  • Node.js / npx (se utiliza para ejecutar el inspector MCP)

El servidor MCP utiliza transporte STDIO, por lo que no hay registro en consola. La salida del servidor se escribe en steadybit-mcp.log en el directorio donde inicia el servidor.

Compilación

mvn clean install

El jar resultante está en target/mcp-<version>-SNAPSHOT.jar.

Ejecutar localmente con el inspector 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>

Los registros se escriben en steadybit-mcp.log en el directorio donde inició el inspector.

Ejecutar en Claude Desktop contra su jar local

Edite la configuración de desarrollador de Claude Desktop (Configuración → Desarrollador → Editar) para apuntar a su binario Java local y al jar recién 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"
      }
    }
  }
}
  • Registros del cliente MCP: ~/Library/Logs/Claude/mcp-server-steadybit.log
  • Registros del servidor MCP: la ruta configurada mediante LOGGING_FILE_NAME (el valor predeterminado es steadybit-mcp.log junto al lanzador)

Ejecutar pruebas

mvn test

Compilar la imagen Docker

docker build -t steadybit/mcp -f Dockerfile .

Luego cree un config.json y ejecute el inspector contra la imagen:

{
  "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 una imagen nativa

Instale GraalVM 24.0.1 mediante sdkman:

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

Luego compile con el perfil native:

mvn -Pnative native:compile

Ejemplo de uso

Los ejemplos de indicaciones están en examples/examples.md.

Licencia

MIT — consulte LICENSE para más detalles.