Skip to main content
Glama

QueueSim

recommend_staffing

Read-only

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

TableJSON Schema
NameRequiredDescriptionDefault
maxServersNoSearch ceiling (default 50, max 50). If even this many servers can't meet the target, the tool returns null with the achieved wait.
serviceCoVNo
arrivalRateYesMean arrivals per hour (λ).
serviceRateYesMean customers one server can finish per hour (μ). Must be > 0.
simulationDaysNoDays to simulate per candidate (default 7). Range 1-30. Lower = faster search; higher = less seed-to-seed variance.
arrivalDistributionNoExponential
serviceDistributionNoExponential
targetAvgWaitMinutesYesMaximum average wait time you're willing to accept, in minutes. The tool returns the smallest server count that meets this target.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteYes
trialsYes
recommendedServersNoSmallest c meeting the target. null when even maxServers can't meet it.
targetAvgWaitMinutesYes
achievedAvgWaitMinutesYes
offeredLoadAtRecommendationNoPresent only when a feasible recommendation was found.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses detailed behavioral traits: it runs a binary search over server counts up to maxServers (default 50), invokes the simulator for each candidate, and returns null with achieved wait if even maxServers can't meet the target. It also includes anti-fabrication instructions to quote results verbatim and not propose a different number. These go well beyond the annotations, which only state readOnlyHint and destructiveHint, and do not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than the minimal examples but each sentence serves a clear purpose: purpose, usage guidance, algorithm, infeasibility handling, and anti-fabrication caution. It is structured logically and front-loaded with the core purpose, though the anti-fabrication paragraph adds some length while still being valuable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's algorithm (binary search), its behavior at the maxServers boundary (null with achieved wait), and offers clear guidance on alternative tools. Since an output schema exists, it does not need to describe return values in detail. For a complex inverse simulation tool, this description is remarkably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to the parameters by explaining that targetAvgWaitMinutes is the maximum acceptable wait and that the tool finds the smallest server count meeting it. It also explains maxServers as the search ceiling. However, schema description coverage is 63%, and the description does not compensate for undocumented parameters like serviceCoV or the distribution enums. It provides moderate added value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'given an arrival rate, service rate, and a target average wait time, returns the SMALLEST number of servers needed to meet the target.' It uses a specific verb ('returns') and resource ('SMALLEST number of servers'), and explicitly distinguishes it from the sibling tool 'simulate_mmc' by labeling it 'INVERSE of simulate_mmc'. This makes the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage conditions: 'Use this when the user asks "how many servers do I need?" / "what staffing keeps wait under N minutes?"' It also states when not to use it: 'If the user asks "what if c=N?" for a specific N, call simulate_mmc with that c.' This is clear when-to-use and when-not-to-use guidance with a named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: simulation (simulate_mmc, simulate_scenario, simulate_schedule), comparison (compare_analytical_vs_simulated, compare_separate_vs_pooled), inverse analysis (recommend_staffing), interpretation (interpret_result), education (explain_queueing_theory, explain_advanced_patterns), and scenario management (list_scenarios, describe_scenario). No two tools overlap significantly, and nuanced differences are explicitly documented (e.g., when to use simulate_mmc vs simulate_scenario).

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case: compare_*, describe_*, explain_*, interpret_*, list_*, recommend_*, simulate_*. Even compound names like compare_analytical_vs_simulated are clearly structured and match the pattern. There are no mixed conventions or vague verbs.

Tool Count5/5

11 tools is well within the ideal 3-15 range and each tool earns its place. The set covers simulation, comparison, recommendation, interpretation, education, and scenario discovery without redundancy or bloat. The count feels right for a queueing theory teaching and simulation server.

Completeness5/5

The tool surface is complete for its stated domain: it offers multiple simulation modes (generic, preset, custom schedule), an inverse staffing finder, analytical-vs-simulation comparison, pooled-vs-separate comparison, interpretation, and educational explainers. There are no obvious dead ends—users can model, validate, understand, and optimize queueing scenarios. The intentional exclusion of advanced pattern simulation is addressed by explain_advanced_patterns pointing to ChiAha.

Resources