For agents
ScaleMySystems is an MCP server. An agent can read any problem, change the design, and simulate it against the problem's own traffic and failures, the same deterministic engine the lab uses. A design that meets every goal comes back with a link that re-verifies it.
claude mcp add --transport http scalemysystems https://www.scalemysystems.com/api/mcpThen ask, for example: “Use scalemysystems to solve the read-heavy product catalog problem, and show me the verified link.” Any client that speaks MCP over Streamable HTTP works the same way with the URL above. No key is needed; calls are rate limited per address.
| Tool | What it does |
|---|---|
| list_problemsList system design problems | Lists the ScaleMySystems problem set: each problem is a running system with a flaw (overload, a cache flush, a slow database, an attack, an LLM quota). Filter by topic, level (Easy, Medium, Hard) or a search word. |
| get_problemRead a problem | Returns one problem: the situation, the goals, the traffic and scheduled failures and, for the free problems, what each component does and the starting design as JSON. Paid problems are unlocked in the ScaleMySystems lab. Edit the design (components, connections, settings) and pass it to simulate_design. |
| simulate_designSimulate a design | Runs a design through the deterministic ScaleMySystems simulator and returns every goal with its measured value, success rate, p99 latency, monthly cloud cost, what broke and suggested fixes. Pass problem_id to also check it as a solve (the traffic, failures and goals must be the problem’s own); once every goal holds, the problem’s test cases (a busier hour, a slow dependency, a dead server, a flash crowd, another seed) run too, and solve.solved is true only if all of them pass. A solve returns a link to a page that re-verifies it. |
Scripts can post a design straight to the simulator. Get a starting design from a problem through the MCP tools, or export one from the lab.
curl -s https://www.scalemysystems.com/api/simulate \
-H 'content-type: application/json' \
-d '{"design": { ... }, "problemId": "catalog"}'The answer lists every goal with its measured value, success rate, p99 latency, monthly cost, what broke, suggested fixes, and whether the design solves the problem.
A solve may change the system only: components, connections and their settings. Lowering the traffic, removing the scheduled failure or the component it hits, editing the goals or the seed is reported as a broken rule, not a solve. Designs are limited to 80 components, and a run stops after three million simulated events.