MCP server for Steadybit, enabling LLM tools like Claude to interact with the Steadybit platform.
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
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.
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>"
}
}
}
}- 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.
mvn clean installThe resulting jar is at target/mcp-<version>-SNAPSHOT.jar.
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.
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)
mvn testdocker 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 steadybitInstall GraalVM 24.0.1 via sdkman:
sdk install java 24.0.1-graalce
sdk use java 24.0.1-graalceThen build with the native profile:
mvn -Pnative native:compileExample prompts are in examples/examples.md.
MIT — see LICENSE for details.