Steadybit MCP Server
Steadybit platformu ile etkileşime geçerek kaos mühendisliği deneyleri çalıştırın.
Dokümantasyon
Steadybit MCP Server
MCP server for Steadybit, enabling LLM tools like Claude to interact with the Steadybit platform.
Tools
list-experiment-designs- List experiment designs
- Required inputs:
team(string): The team key to list experiment designs for
- Returns: List of experiment designs with their key and name
get_experiment_design- Get an experiment design
- Required inputs:
experimentKey(string): The experiment key to get
- Returns: The experiment design
list_experiment_executions- List experiment executions
- Optional inputs:
experiment(list of string): Filter by one or more experiment keysenvironment(list of string): Filter by one or more environment namesteam(list of string): Filter by one or more team keysstate(list of string): Filter by one or more result states, possible values are [CREATED, PREPARED, RUNNING, FAILED, CANCELED, COMPLETED, ERRORED]from(string, ISO8601 date): Filter by creation date fromto(string, ISO8601 date): Filter by creation date topage(number): Number of the requested page, default is 0pageSize(number): Results per page, defaults to 50, maximum 100 is allowed
- Returns: The experiment design
get_experiment_execution- Get an experiment execution
- Required inputs:
executionId(number): The execution id to get
- Returns: The experiment execution
list_actions- List of currently registered actions
- Optional inputs:
page(number): Number of the requested page, default is 0pageSize(number): Results per page, defaults to 50, maximum 100 is allowed
- Returns: List of actions
list_environments- Get a list of environments
- Returns: List of environments
list_teams- Get a list of teams
- Returns: List of teams
list_experiment_schedules- Get a list of experiment schedules
- Optional inputs:
experiment(list of string): Filter by one or more experiment keysteam(list of string): Filter by one or more team keys
- Returns: List of experiment schedules
list_experiment_templates- Get a list of experiment templates (name and ids)
get_experiment_template- Get an experiment template including its design
- Required inputs:
templateId(string): The id of the template to create an experiment from
create_experiment_from_template- Create an experiment from a template
- Needs to be enabled via environment variable, for example
CAPABILITIES_ENABLED_0=CREATE_EXPERIMENT_FROM_TEMPLATE - Required inputs:
templateId(string): The id of the template to create an experiment fromenvironment(string): The environment to use for the experimentteam(string): The team to use for the experiment
- Optional inputs:
placeholders(object): A map of placeholder keys and their values.externalId(string): An optional external id that can be used to update existing experiment designs.
- Returns: The key of the created experiment or an error message if the experiment could not be created
Setup
You need a Steadybit account and an API token. You can create an API token in the Steadybit platform under
Settings → API Access Tokens. Both token types — Admin or Team — are supported.
If you want to create experiments, you need a team token for the team you want to create experiments in.
Supported environment variables
API_TOKEN: The API token to use for authentication. Required.API_URL: The URL of the Steadybit API. Defaults tohttps://platform.steadybit.com/api.CAPABILITIES_ENABLED_0,CAPABILITIES_ENABLED_1, ...: Additional capabilities to enable. Currently supported:CREATE_EXPERIMENT_FROM_TEMPLATE: Enables thecreate_experiment_from_templatetool.
Usage with Claude Desktop
In Claude Desktop go to Settings → Developer → Edit and add the following JSON, replacing <your-api-token>
with your actual token:
{
"mcpServers": {
"steadybit": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"API_TOKEN",
"ghcr.io/steadybit/mcp:latest"
],
"env": {
"API_TOKEN": "<your-api-token>"
}
}
}
}
Local Development
Prerequisites
- Java 21+
- Maven 3.9+
- Docker (only required for the Docker image flow)
- Node.js /
npx(used to run the MCP inspector)
The MCP server uses STDIO transport, so there is no console logging. Server output is written to
steadybit-mcp.login the directory where you start the server.
Build
mvn clean install
The resulting jar is at target/mcp-<version>-SNAPSHOT.jar.
Run locally with the MCP inspector
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>
Logs are written to steadybit-mcp.log in the directory where you launched the inspector.
Run in Claude Desktop against your local jar
Edit Claude Desktop's developer config (Settings → Developer → Edit) to point at your local Java binary and the freshly-built jar:
{
"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"
}
}
}
}
- MCP-client logs:
~/Library/Logs/Claude/mcp-server-steadybit.log - MCP-server logs: the path configured via
LOGGING_FILE_NAME(defaults tosteadybit-mcp.lognext to the launcher)
Run tests
mvn test
Build the Docker image
docker build -t steadybit/mcp -f Dockerfile .
Then create a config.json and run the inspector against the image:
{
"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
Build a native image
Install GraalVM 24.0.1 via sdkman:
sdk install java 24.0.1-graalce
sdk use java 24.0.1-graalce
Then build with the native profile:
mvn -Pnative native:compile
Example Usage
Example prompts are in examples/examples.md.
License
MIT — see LICENSE for details.