← WebMCP Directory

Tool tree

akash-aman.github.io

Developer ToolsTools verified
Website
System Design Interview Simulator
Explore capabilities
    list_componentsAnswer

    List every infrastructure component available in the palette: id (use as typeId), name, category, behavior primitive, capacity and latency baseline.

    View tool JSON
    {
      "name": "list_components",
      "kind": "answer",
      "impl": "imperative",
      "description": "List every infrastructure component available in the palette: id (use as typeId), name, category, behavior primitive, capacity and latency baseline.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/system-design-simulator/"
    }
    get_designAnswer

    Read the design currently on the canvas: nodes (with typeId, label, overrides, groupId), edges (source/target + ports), groups (zones/regions).

    View tool JSON
    {
      "name": "get_design",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the design currently on the canvas: nodes (with typeId, label, overrides, groupId), edges (source/target + ports), groups (zones/regions).",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/system-design-simulator/"
    }
    apply_designAction

    Replace the canvas with a new design (undoable). Nodes: {id, typeId, label?, group?, overrides?, x?, y?} — positions auto-layout when omitted. Edges: {source, target, sourcePort?, targetPort?} — ports default to the first out/in port. Groups: {id, kind: zone|region|vpc, label?}; nodes join via their "group" field. Validate typeIds with list_components first.

    View tool JSON
    {
      "name": "apply_design",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace the canvas with a new design (undoable). Nodes: {id, typeId, label?, group?, overrides?, x?, y?} — positions auto-layout when omitted. Edges: {source, target, sourcePort?, targetPort?} — ports default to the first out/in port. Groups: {id, kind: zone|region|vpc, label?}; nodes join via their \"group\" field. Validate typeIds with list_components first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "nodes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "typeId": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "x": {
                  "type": "number"
                },
                "y": {
                  "type": "number"
                },
                "group": {
                  "type": "string"
                },
                "overrides": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "number"
                  }
                }
              },
              "required": [
                "id",
                "typeId"
              ]
            }
          },
          "edges": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "source": {
                  "type": "string"
                },
                "target": {
                  "type": "string"
                },
                "sourcePort": {
                  "type": "string"
                },
                "targetPort": {
                  "type": "string"
                },
                "readShare": {
                  "type": "number"
                },
                "writeShare": {
                  "type": "number"
                },
                "callsPerRequest": {
                  "type": "number"
                }
              },
              "required": [
                "source",
                "target"
              ]
            }
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "region",
                    "zone",
                    "vpc"
                  ]
                },
                "label": {
                  "type": "string"
                }
              },
              "required": [
                "id"
              ]
            }
          }
        },
        "required": [
          "nodes"
        ]
      },
      "page": "/system-design-simulator/"
    }
    load_patternAction

    Load a canonical reference architecture onto the canvas (replaces it, undoable). Available ids: amazon-storefront.

    View tool JSON
    {
      "name": "load_pattern",
      "kind": "act",
      "impl": "imperative",
      "description": "Load a canonical reference architecture onto the canvas (replaces it, undoable). Available ids: amazon-storefront.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ]
      },
      "page": "/system-design-simulator/"
    }
    run_simulationAction

    Simulate the current design headless (fresh engine, live sim untouched) and report per-node utilization, served/dropped RPS, error rate, and p99. Use to find bottlenecks before giving feedback.

    View tool JSON
    {
      "name": "run_simulation",
      "kind": "act",
      "impl": "imperative",
      "description": "Simulate the current design headless (fresh engine, live sim untouched) and report per-node utilization, served/dropped RPS, error rate, and p99. Use to find bottlenecks before giving feedback.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "seconds": {
            "type": "number",
            "description": "Sim-seconds to run (default 30, max 300)"
          },
          "rps": {
            "type": "number",
            "description": "Offered load (default: current slider value)"
          },
          "readRatio": {
            "type": "number",
            "description": "0..1 (default: current setting)"
          }
        }
      },
      "page": "/system-design-simulator/"
    }
    get_analysisAnswer

    Static + live analysis of the current design: single points of failure, composite availability, monthly cost, CAP trade-off warnings, and capacity headroom (headroom needs live sim traffic).

    View tool JSON
    {
      "name": "get_analysis",
      "kind": "answer",
      "impl": "imperative",
      "description": "Static + live analysis of the current design: single points of failure, composite availability, monthly cost, CAP trade-off warnings, and capacity headroom (headroom needs live sim traffic).",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/system-design-simulator/"
    }
    get_live_metricsAnswer

    Current state of the LIVE simulation: sim clock, running flag, per-node metrics, recent failure-timeline events.

    View tool JSON
    {
      "name": "get_live_metrics",
      "kind": "answer",
      "impl": "imperative",
      "description": "Current state of the LIVE simulation: sim clock, running flag, per-node metrics, recent failure-timeline events.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/system-design-simulator/"
    }
    inject_faultAction

    Chaos-inject into the LIVE simulation: kill a node, multiply its latency, or fill its disk. Use resolve to heal.

    View tool JSON
    {
      "name": "inject_fault",
      "kind": "act",
      "impl": "imperative",
      "description": "Chaos-inject into the LIVE simulation: kill a node, multiply its latency, or fill its disk. Use resolve to heal.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "nodeId": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "kill",
              "latency",
              "disk-fill",
              "resolve"
            ]
          },
          "factor": {
            "type": "number",
            "description": "Latency multiplier (kind=latency only, default 8)"
          }
        },
        "required": [
          "nodeId",
          "kind"
        ]
      },
      "page": "/system-design-simulator/"
    }