Skip to main content
Glama

QueueSim

simulate_mmc

Read-only

Run a generic M/M/c queue simulation. Provide an arrival rate (λ, arrivals/hour), a service rate per server (μ, customers/hour each server can finish), and a server count (c). Optional: distribution shapes, service coefficient of variation, run length. Returns per-hour metrics and an overall summary (avg wait, queue length, offered load, throughput). This is the primary tool for 'how many servers do I need?' / 'what's my average wait?' style questions. ALSO preferred over simulate_scenario for what-if questions about scheduled scenarios (Coffee Shop) when the user wants flat uniform numbers — pull the peak params from describe_scenario and run them here. That usually matches user intent better than collapsing a schedule. ANTI-FABRICATION: the returned numbers come from a real discrete-event simulation run. Quote them VERBATIM in your reply. Do not round, estimate, or compute derived figures from training-data recall. If the user asks a follow-up about the same configuration, re-call this tool rather than recalling numbers from earlier in the conversation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
serversYesNumber of parallel servers (c). Integer 1-50.
serviceCoVNoCoefficient of variation for service time — used when serviceDistribution is 'Normal' or 'LogNormal'. Ignored for Exponential/Constant. Range 0-5.
arrivalRateYesMean arrivals per hour (λ). Any positive value up to 200.
serviceRateYesMean customers one server can finish per hour (μ). Must be > 0.
simulationDaysNoDays to simulate (default 7). Range 1-30 — longer runs are not supported on the public surface; for production-scale studies contact queuesim@chiaha.com.
arrivalDistributionNoShape of inter-arrival times. 'Exponential' = Poisson process (default). 'Constant' = evenly-spaced.Exponential
serviceDistributionNoShape of service-time distribution. 'Exponential' = classical M/M/c (default).Exponential

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hourlyYes
inputsYesEcho of the run's parameters.
summaryYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, but the description adds critical behavioral context beyond that: it states that numbers come from a real discrete-event simulation, mandates quoting them verbatim (anti-fabrication), warns against rounding or computing derived figures from training-data recall, and advises re-calling for follow-ups. It also discloses a simulation duration limit (30 days) and directs users for longer studies. This significantly exceeds annotation coverage.

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

Conciseness5/5

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

The description is appropriately sized—not too long—and front-loaded with the core action. Every sentence adds value: purpose, required inputs, optional inputs, output summary, usage guidance, alternative-tool guidance, and a critical anti-fabrication directive. There is no filler or redundancy.

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?

Considering the tool's complexity (7 parameters, optional distributions, output summary, and multiple sibling tools), the description covers all necessary aspects: what it does, parameter meaning, output shape, when to use it, and behavioral constraints. The output schema is present, and the description doesn't need to explain return values in detail. The anti-fabrication and simulation-time limits round out a complete picture.

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

Parameters3/5

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

The schema has 100% parameter description coverage with detailed descriptions, including units and ranges. The description restates the key params (λ, μ, c) and mentions optional ones, but it does not add substantive meaning beyond what the schema already provides. Baseline of 3 is appropriate given the schema's completeness.

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 opens with a specific verb and resource: 'Run a generic M/M/c queue simulation.' It clearly lists required inputs (arrival rate, service rate, server count) and outputs, and explicitly distinguishes itself from siblings by calling itself 'the primary tool' for staffing/average-wait questions and preferred over simulate_scenario for flat-number what-if questions.

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 when-to-use guidance: it is the primary tool for 'how many servers do I need?' and 'what's my average wait?' questions, and it names an alternative (simulate_scenario) with a clear rule for when to prefer this tool instead. It also instructs to pull peak params from describe_scenario, giving concrete usage context.

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