chiaha-ai avatar

QueueSim

chiaha-ai/queuesim-site

You're working with queueing theory and need to run simulations without building everything from scratch. This server exposes M/M/c queue operations, the classic multi-server model where arrivals and service times follow exponential distributions. It comes with four preset scenarios: call center staffing, emergency room flow, coffee shop lines, and single server analysis. Reach for this when you're prototyping capacity planning, doing back-of-napkin calculations for service level targets, or teaching the fundamentals of wait time analysis. It's streamable HTTP, so Claude can run simulations and interpret results in conversation without you spinning up simulation code yourself.

tools
11
transport
HTTP
last updated
Nov 10, 2026

Install

From registry metadata
$ npx add-mcp https://queuesim.com/mcp/v1 --name public

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http public https://queuesim.com/mcp/v1

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 11 tools

Verified live against the running server on Nov 6, 2026.

simulate_mmcRun 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...7 params

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...

Parameters* required
arrivalDistributionstring
Shape of inter-arrival times. 'Exponential' = Poisson process (default). 'Constant' = evenly-spaced.one of Exponential · Constantdefault: Exponential
arrivalRate*number
Mean arrivals per hour (λ). Any positive value up to 200.default: 20
servers*integer
Number of parallel servers (c). Integer 1-50.default: 2
serviceCoVnumber
Coefficient of variation for service time — used when serviceDistribution is 'Normal' or 'LogNormal'. Ignored for Exponential/Constant. Range 0-5.
serviceDistributionstring
Shape of service-time distribution. 'Exponential' = classical M/M/c (default).one of Exponential · Constant · Normal · LogNormaldefault: Exponential
serviceRate*number
Mean customers one server can finish per hour (μ). Must be > 0.default: 12
simulationDaysinteger
Days to simulate (default 7). Range 1-30 — longer runs are not supported on the public surface; for production-scale studies contact queuesim@chiaha.com.default: 7
list_scenariosList the four pre-built QueueSim scenarios. Returns key, title, and one-line description for each (Single Server, Coffee Shop, Grocery Checkout, Call Center). Call this when the user's problem matches one of the preset shapes — use describe_scenario for more detail and simulat...

List the four pre-built QueueSim scenarios. Returns key, title, and one-line description for each (Single Server, Coffee Shop, Grocery Checkout, Call Center). Call this when the user's problem matches one of the preset shapes — use describe_scenario for more detail and simulat...

No parameters. Call it with no arguments.

describe_scenarioReturn full details for one preset scenario: title, description, teaching note, peak parameters, and per-hour arrival + staffing arrays. Use this before simulate_scenario to understand the default shape and what overrides make sense.1 params

Return full details for one preset scenario: title, description, teaching note, peak parameters, and per-hour arrival + staffing arrays. Use this before simulate_scenario to understand the default shape and what overrides make sense.

Parameters* required
name*string
Scenario key from list_scenarios.one of single · coffee · grocery · callcenterdefault: coffee
simulate_scenarioRun one of the four preset scenarios (single, coffee, grocery, callcenter) with optional overrides. Overrides apply UNIFORMLY across open hours — e.g. setting servers=5 on 'coffee' replaces the 4/6/4 staffing pattern with a flat 5 during open hours (closed hours stay at zero)....2 params

Run one of the four preset scenarios (single, coffee, grocery, callcenter) with optional overrides. Overrides apply UNIFORMLY across open hours — e.g. setting servers=5 on 'coffee' replaces the 4/6/4 staffing pattern with a flat 5 during open hours (closed hours stay at zero)....

Parameters* required
name*string
Scenario key from list_scenarios.one of single · coffee · grocery · callcenterdefault: coffee
overridesobject
Optional overrides applied uniformly across open hours (closed hours preserved at zero for scheduled scenarios). All fields optional — leave empty to run the scenario's published defaults.
simulate_scheduleRun a queueing simulation against an arbitrary 24-hour staffing schedule. Take this when the user describes a custom day shape that doesn't match a preset (e.g., 'my coffee shop is open 6am–10pm with 4 baristas off-peak, 7 at the 8am rush, 5 at the 4pm rush'). Inputs: `arrival...7 params

Run a queueing simulation against an arbitrary 24-hour staffing schedule. Take this when the user describes a custom day shape that doesn't match a preset (e.g., 'my coffee shop is open 6am–10pm with 4 baristas off-peak, 7 at the 8am rush, 5 at the 4pm rush'). Inputs: `arrival...

Parameters* required
arrivalDistributionstring
one of Exponential · Constantdefault: Exponential
arrivalRates*array
24 hourly arrival rates (customers/hr, one per hour-of-day 0-23). Use 0 for closed hours (terminating system). Range 0-200 per hour.
serviceCoVnumber
CoV for service time when distribution is Normal or LogNormal. Range 0-5.
serviceDistributionstring
one of Exponential · Constant · Normal · LogNormaldefault: Exponential
serviceTimeMinutesnumber
Mean service time in minutes per customer. Applies uniformly across hours. Range 0.1-180.default: 5
simulationDaysinteger
Days to simulate. Range 1-30.default: 7
staffing*array
24 hourly staffing counts (servers/hr, one per hour-of-day 0-23). Use 0 for closed hours. Range 0-50 per hour.
compare_separate_vs_pooledRun the classic operations-research teaching demo: pooled queueing (one shared queue, c servers) vs separate queues (c independent queues, one server each, λ/c traffic to each). Both runs have identical total capacity (c × μ) and identical total arrivals (λ), so the offered lo...4 params

Run the classic operations-research teaching demo: pooled queueing (one shared queue, c servers) vs separate queues (c independent queues, one server each, λ/c traffic to each). Both runs have identical total capacity (c × μ) and identical total arrivals (λ), so the offered lo...

Parameters* required
arrivalRate*number
Mean total arrival rate (λ). Pooled run takes all of it; separate run divides evenly across the c queues.default: 30
servers*integer
Number of servers (c). Pooled: one queue feeds all c. Separate: c independent queues, each with one server and λ/c traffic. Range 2-50 (with c=1 there's nothing to compare).default: 3
serviceRate*number
Mean service rate per server (μ, customers/hour each server finishes). Identical across both runs.default: 12
simulationDaysinteger
Days to simulate (same for both runs). Range 1-30.default: 7
explain_queueing_theoryReturn a ~500-word educational explainer of M/M/c queueing theory: Little's Law, utilization, why averages mislead, how simulation relates to Erlang-C. No inputs. Use this when the user asks a conceptual 'why' or 'how does this work' question rather than asking for a number.

Return a ~500-word educational explainer of M/M/c queueing theory: Little's Law, utilization, why averages mislead, how simulation relates to Erlang-C. No inputs. Use this when the user asks a conceptual 'why' or 'how does this work' question rather than asking for a number.

No parameters. Call it with no arguments.

explain_advanced_patternsReturn a textbook-level description of six queueing complexity patterns beyond basic M/M/c: abandonment/reneging, priority tiers, overflow routing, skills-based routing, compound service, and server outages. Use this when the user describes real-world complexity (customers han...

Return a textbook-level description of six queueing complexity patterns beyond basic M/M/c: abandonment/reneging, priority tiers, overflow routing, skills-based routing, compound service, and server outages. Use this when the user describes real-world complexity (customers han...

No parameters. Call it with no arguments.

recommend_staffingINVERSE 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 ru...8 params

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 ru...

Parameters* required
arrivalDistributionstring
one of Exponential · Constantdefault: Exponential
arrivalRate*number
Mean arrivals per hour (λ).default: 20
maxServersinteger
Search ceiling (default 50, max 50). If even this many servers can't meet the target, the tool returns null with the achieved wait.default: 50
serviceCoVnumber
serviceDistributionstring
one of Exponential · Constant · Normal · LogNormaldefault: Exponential
serviceRate*number
Mean customers one server can finish per hour (μ). Must be > 0.default: 12
simulationDaysinteger
Days to simulate per candidate (default 7). Range 1-30. Lower = faster search; higher = less seed-to-seed variance.default: 7
targetAvgWaitMinutes*number
Maximum average wait time you're willing to accept, in minutes. The tool returns the smallest server count that meets this target.default: 3
interpret_resultGiven an M/M/c configuration (arrivalRate, serviceRate, servers) and optionally an observed average wait, returns a queueing-theory framed interpretation: where you sit on the utilization curve, what ρ means in plain language, what one more or fewer server would qualitatively...4 params

Given an M/M/c configuration (arrivalRate, serviceRate, servers) and optionally an observed average wait, returns a queueing-theory framed interpretation: where you sit on the utilization curve, what ρ means in plain language, what one more or fewer server would qualitatively...

Parameters* required
arrivalRate*number
Mean arrivals per hour (λ).default: 20
observedAvgWaitMinutesnumber
Optional. The avg wait the user observed (from simulate_mmc, an Erlang-C calculator, or real measurements). If omitted, the tool computes ρ from the inputs and gives a parameter-only interpretation.
servers*integer
Server count (c).default: 2
serviceRate*number
Mean customers one server finishes per hour (μ).default: 12
compare_analytical_vs_simulatedRun the same M/M/c configuration through BOTH the closed-form Erlang-C formula AND the discrete-event simulator, returning a side-by-side comparison with deltas. Use this when the user is validating QueueSim's engine against textbook values, learning queueing theory by watchin...4 params

Run the same M/M/c configuration through BOTH the closed-form Erlang-C formula AND the discrete-event simulator, returning a side-by-side comparison with deltas. Use this when the user is validating QueueSim's engine against textbook values, learning queueing theory by watchin...

Parameters* required
arrivalRate*number
Mean arrivals per hour (λ).default: 20
servers*integer
Number of parallel servers (c). Integer 1-50.default: 2
serviceRate*number
Mean customers one server can finish per hour (μ). Must be > 0.default: 12
simulationDaysinteger
Days to simulate on the DES side. Closed-form is instant. Range 1-30; longer runs converge closer to the formula.default: 7

Sponsors

Readme

Details

Repository
github.com/chiaha-ai/queuesim-site
Transport
HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026

More from chiaha-ai