recommend_staffing
INVERSE of simulate_mmc — given an arrival rate, service rate, and a target average wait time, returns the SMALLEST number of servers needed to meet the target. Use this when the user asks 'how many servers do I need?' / 'what staffing keeps wait under N minutes?'. The tool runs a binary search over candidate server counts (up to maxServers, default 50), invoking the simulator for each candidate. Saves Claude from iterating simulate_mmc 3-5 times by hand. If even maxServers servers can't meet the target, the recommendation is null and the response includes the achieved wait so Claude can explain that the target is infeasible at the given load. ANTI-FABRICATION: recommendedServers and achievedAvgWaitMinutes come from real DES runs. Quote them VERBATIM. Do not propose a different number you think 'feels right'; this tool already binary-searches for the minimum that meets the target. If the user asks 'what if c=N?' for a specific N, call simulate_mmc with that c.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| maxServers | No | Search ceiling (default 50, max 50). If even this many servers can't meet the target, the tool returns null with the achieved wait. | |
| serviceCoV | No | ||
| arrivalRate | Yes | Mean arrivals per hour (λ). | |
| serviceRate | Yes | Mean customers one server can finish per hour (μ). Must be > 0. | |
| simulationDays | No | Days to simulate per candidate (default 7). Range 1-30. Lower = faster search; higher = less seed-to-seed variance. | |
| arrivalDistribution | No | Exponential | |
| serviceDistribution | No | Exponential | |
| targetAvgWaitMinutes | Yes | Maximum average wait time you're willing to accept, in minutes. The tool returns the smallest server count that meets this target. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | ||
| trials | Yes | ||
| recommendedServers | No | Smallest c meeting the target. null when even maxServers can't meet it. | |
| targetAvgWaitMinutes | Yes | ||
| achievedAvgWaitMinutes | Yes | ||
| offeredLoadAtRecommendation | No | Present only when a feasible recommendation was found. |