A streamable HTTP MCP server for orchestrating RL experiments for LLMs.
uv sync
uv run python scripts/init_db.py
uv run rl-mcp-serveruv run python scripts/run_demo_experiment.pySee .env.example for all options. Key variables:
| Variable | Default | Description |
|---|---|---|
RLO_DATABASE_URL |
sqlite+aiosqlite:///./nexus.db |
Database URL |
RLO_VERL_DRY_RUN |
true |
Skip real subprocess |
RLO_KEYCLOAK_URL |
unset | Enable JWT auth (set before exposing to any network) |
RLO_KEYCLOAK_REALM |
mcp-realm |
Keycloak realm name |
RLO_KEYCLOAK_CLIENT_ID |
rl-mcp |
Keycloak client ID |
RLO_RESOURCE_SERVER_URL |
auto | Public URL for OAuth metadata (set when using ngrok) |
RLO_SERVER_PORT |
8000 |
Server port |
For full Keycloak setup instructions (Railway deploy, Claude Desktop, Claude.ai via ngrok), see docs/auth-setup.md.
http://localhost:8000/mcp — streamable HTTP transport
validate_experiment_spec, create_experiment, update_experiment, launch_experiment,
get_run_status, summarize_run, trigger_evaluation, get_evaluation_results,
compare_runs, list_experiments, list_runs, get_artifact_refs