QueueSim
Server Details
Run M/M/c queue simulations and four scenarios (call center, ER, coffee shop, single server).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.7/5 across 11 of 11 tools scored.
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).
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.
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.
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.
Available Tools
11 toolscompare_analytical_vs_simulatedARead-onlyInspect
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 watching simulation converge on the formula, or auditing a result that 'feels off' — agreement within ~5%% is the canonical sanity check for an M/M/c run. Pure-Exponential M/M/c only; the closed-form Erlang-C is undefined for other service distributions. Large deltas usually mean the simulation run was too short for steady-state — raise simulationDays. ANTI-FABRICATION: both sides come from real computation — closed-form is deterministic, simulation is stochastic but engine-backed. Quote both verbatim. Do not synthesize an 'average of the two' or recompute the formula from training-data recall.
| Name | Required | Description | Default |
|---|---|---|---|
| servers | Yes | Number of parallel servers (c). Integer 1-50. | |
| arrivalRate | Yes | Mean arrivals per hour (λ). | |
| serviceRate | Yes | Mean customers one server can finish per hour (μ). Must be > 0. | |
| simulationDays | No | Days to simulate on the DES side. Closed-form is instant. Range 1-30; longer runs converge closer to the formula. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| delta | Yes | |
| inputs | Yes | |
| simulated | Yes | |
| analytical | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description discloses key behavioral traits: 'closed-form is deterministic, simulation is stochastic but engine-backed,' the anti-fabrication rule to quote both verbatim, and the troubleshooting hint that large deltas mean simulation too short. It also warns against synthesizing averages or recomputing from training-data recall. This provides substantial behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose statement, followed by when-to-use, constraints, troubleshooting, and anti-fabrication rules. Every sentence carries important information without redundancy. The length is justified by the tool's complexity and the critical behavioral guidance needed for correct usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and 4 well-documented parameters, the description covers purpose, usage scenarios, exclusions, troubleshooting, and behavioral expectations. It explicitly notes the pure-M/M/c limitation and how to react to large deltas. With annotations and output schema already providing structured metadata, this description is fully complete for an AI agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all 4 parameters with 100% coverage, so the baseline is 3. The description adds value by tying the 'simulationDays' parameter to a troubleshooting scenario ('raise simulationDays' for large deltas) and confirms the M/M/c scope for the service distribution. This incremental guidance justifies a score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs the same M/M/c configuration through both the Erlang-C formula and the discrete-event simulator, returning a side-by-side comparison with deltas. It uses a specific verb ('Run'), names the exact resources, and is easily distinguished from siblings like 'compare_separate_vs_pooled' or 'simulate_mmc'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool: 'validating QueueSim's engine against textbook values, learning queueing theory... or auditing a result that feels off.' It also provides an exclusion criterion: 'Pure-Exponential M/M/c only; the closed-form Erlang-C is undefined for other service distributions.' This gives clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_separate_vs_pooledARead-onlyInspect
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 load ρ is the same; the only structural difference is whether arrivals share a queue or split into c isolated streams. The pooled configuration ALWAYS produces shorter waits — that's the whole teaching point. Use this when the user asks 'should we pool our resources?' / 'should we cross-train?' / 'why do banks have one line instead of c?' / 'what's the cost of siloing my call center into specialist queues?'. Returns both runs side by side with the pooled-vs-separate wait delta. ANTI-FABRICATION: numbers come from two real DES runs. Quote them VERBATIM.
| Name | Required | Description | Default |
|---|---|---|---|
| servers | Yes | 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). | |
| arrivalRate | Yes | Mean total arrival rate (λ). Pooled run takes all of it; separate run divides evenly across the c queues. | |
| serviceRate | Yes | Mean service rate per server (μ, customers/hour each server finishes). Identical across both runs. | |
| simulationDays | No | Days to simulate (same for both runs). Range 1-30. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hourly | Yes | |
| inputs | Yes | Echo of the run's parameters. |
| summary | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description adds key behavioral context: 'The pooled configuration ALWAYS produces shorter waits — that's the whole teaching point' and 'ANTI-FABRICATION: numbers come from two real DES runs. Quote them VERBATIM.' These are non-obvious behaviors not disclosed by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured, with a clear statement of the demo, the teaching point, usage triggers, return value, and an anti-fabrication warning. Every sentence serves a purpose, and the text is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the tool's context: it explains the comparison methodology, the invariant load, the expected outcome, typical user intents, and the nature of the results. An output schema exists, so the return description is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented. The description adds conceptual meaning by explaining that 'Both runs have identical total capacity (c × μ) and identical total arrivals (λ)' and that separate queues each get λ/c traffic, which enriches the understanding of arrivalRate and serviceRate relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '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).' It distinguishes from siblings like compare_analytical_vs_simulated by focusing on pooled vs. separate queue structures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage triggers are provided: 'Use this when the user asks 'should we pool our resources?' / 'should we cross-train?' / 'why do banks have one line instead of c?' / 'what's the cost of siloing my call center into specialist queues?'.' This clearly explains when to choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_scenarioARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Scenario key from list_scenarios. | coffee |
Output Schema
| Name | Required | Description |
|---|---|---|
| key | Yes | |
| title | Yes | |
| defaults | Yes | |
| description | No | |
| teachingNote | No | |
| supportedOverrides | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds contextual value by specifying the returned fields and that it reveals the 'default shape' for overrides, which is behavior beyond what annotations state. No contradiction exists, so a 4 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the tool's action and content, followed by a clear usage directive. No redundant words, and each sentence serves a distinct purpose (what it does and when to use it).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one enum parameter, a rich output schema, and comprehensive annotations, the tool is simple. The description provides all necessary context: what it returns, the specific fields, and how it fits into the workflow (before simulate_scenario). There's no missing information for this level of complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the single parameter 'name' with enum, default, and description. The tool description does not add parameter-specific details beyond the schema's explanation of scenario keys. Following the baseline rule for high schema coverage, a 3 is suitable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Return full details for one preset scenario' which is a specific verb+resource, and it enumerates the exact contents (title, description, teaching note, peak parameters, staffing arrays). It also distinguishes itself from the sibling simulate_scenario by advising to use it before simulating, clearly differentiating its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use this before simulate_scenario to understand the default shape and what overrides make sense.' This provides clear context and a direct alternative/pairing with simulate_scenario, meeting the highest bar for usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_advanced_patternsARead-onlyIdempotentInspect
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 hanging up, VIP queues, specialist escalation, agent breaks, transfers) that plain M/M/c doesn't model. The tool frames each pattern conceptually and points users at ChiAha for custom modeling.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds the key behavioral trait: it frames each pattern conceptually and points users to ChiAha for custom modeling, which is valuable context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: front-loaded purpose with pattern list, usage guidance, and a final note on output style and ChiAha pointer. Every sentence earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-input explanation tool with strong annotations, the description fully specifies scope (six patterns), when to use it, and what the output looks like (textbook-level, conceptual framing, ChiAha pointer). No gaps are evident.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is an empty object with zero parameters, so the baseline of 4 applies. The description correctly avoids mentioning parameters since none exist, and there is no semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Return a textbook-level description of six queueing complexity patterns beyond basic M/M/c' and enumerates them. This specific verb+resource distinguishes it from siblings like explain_queueing_theory, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it ('Use this when the user describes real-world complexity...') with concrete examples. It does not name alternative tools, but the boundary ('beyond basic M/M/c') is clear enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_queueing_theoryARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is known. The description adds that the output is ~500 words and covers specified topics, which supplements the structured data without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is two sentences: the first states the deliverable and content scope, the second gives usage guidance. No filler or redundant phrasings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a conceptual explainer with no inputs, the description covers purpose, output length, content areas, and when to use it. Since there is no output schema, the stated '~500-word educational explainer' adequately sets expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters and the description explicitly notes 'No inputs,' aligning with the 0-parameter baseline of 4. No additional parameter semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Return a ~500-word educational explainer of M/M/c queueing theory' and enumerates specific topics (Little's Law, utilization, etc.), clearly distinguishing it from sibling tools that simulate or compare scenarios.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states 'Use this when the user asks a conceptual 'why' or 'how does this work' question' and contrasts with 'rather than asking for a number.' However, it does not name specific sibling tools as alternatives, so it stops one step short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interpret_resultARead-onlyIdempotentInspect
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 do, and which complexity factors (priority, abandonment, skills routing) might be hiding in real data the M/M/c model can't see. Use this to TEACH while answering — when the user wants context around a number, not just the number itself. Pure text computation, no simulation, no RNG — deterministic output.
| Name | Required | Description | Default |
|---|---|---|---|
| servers | Yes | Server count (c). | |
| arrivalRate | Yes | Mean arrivals per hour (λ). | |
| serviceRate | Yes | Mean customers one server finishes per hour (μ). | |
| observedAvgWaitMinutes | No | 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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent, and the description adds valuable behavioral context: 'Pure text computation, no simulation, no RNG — deterministic output,' the educational intent ('TEACH'), and a key limitation ('complexity factors... the M/M/c model can't see'). This goes beyond annotations and is consistent with them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each serving a distinct purpose: what the tool returns, when to use it, and its deterministic/limitation nature. No redundancy or filler; information is front-loaded and efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description fully enumerates the output components ('where you sit on the utilization curve, what ρ means, what one more/fewer server would do, and complexity factors'). It also covers optional parameter behavior and determinism, making it complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds meaning by linking arrivalRate, serviceRate, and servers to ρ computation and by explaining the optional parameter's behavior: 'If omitted, the tool computes ρ from the inputs and gives a parameter-only interpretation.' This clarifies how parameters influence the output beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'returns a queueing-theory framed interpretation' for an M/M/c configuration, listing specific output components like utilization curve position and plain-language ρ meaning. It distinguishes itself from siblings by explicitly contrasting with simulation ('no simulation, no RNG') and framing its role as teaching context around a number, not just returning the number.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Use this to TEACH while answering — when the user wants context around a number, not just the number itself.' It implies alternatives (simulation tools, theoretical explanations) but does not name specific sibling tools or give explicit when-not-to-use conditions, stopping short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scenariosARead-onlyIdempotentInspect
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 simulate_scenario to run one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| scenarios | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint, and openWorldHint, covering the safety profile. The description adds useful behavioral context beyond annotations: it returns key, title, and one-line description for each of a fixed set of four scenarios, implying deterministic output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and resource, and every sentence earns its place. Includes names, return fields, and usage guidance without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters, rich annotations, and an output schema, the description fully covers what the tool does, what it returns, and when to use it. No significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing to explain. Schema coverage is 100% (vacuously), and the description focuses on output semantics. Baseline 4 is appropriate for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('four pre-built QueueSim scenarios'), and enumerates the exact set (Single Server, Coffee Shop, Grocery Checkout, Call Center). It clearly distinguishes from siblings by directing to describe_scenario for more detail and simulate_scenario to run one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to call ('when the user's problem matches one of the preset shapes') and names alternatives for further actions. This provides clear context and differentiation from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_staffingARead-onlyInspect
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.
| 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 |
|---|---|---|
| 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. |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
simulate_mmcARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| servers | Yes | Number of parallel servers (c). Integer 1-50. | |
| serviceCoV | No | Coefficient of variation for service time — used when serviceDistribution is 'Normal' or 'LogNormal'. Ignored for Exponential/Constant. Range 0-5. | |
| arrivalRate | Yes | Mean arrivals per hour (λ). Any positive value up to 200. | |
| serviceRate | Yes | Mean customers one server can finish per hour (μ). Must be > 0. | |
| simulationDays | No | 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. | |
| arrivalDistribution | No | Shape of inter-arrival times. 'Exponential' = Poisson process (default). 'Constant' = evenly-spaced. | Exponential |
| serviceDistribution | No | Shape of service-time distribution. 'Exponential' = classical M/M/c (default). | Exponential |
Output Schema
| Name | Required | Description |
|---|---|---|
| hourly | Yes | |
| inputs | Yes | Echo of the run's parameters. |
| summary | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
simulate_scenarioARead-onlyInspect
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). Use this for (a) faithful reproduction of a scenario's defaults, or (b) uniform scaling (everywhere it was open, use these new numbers). Do NOT use this when the user wants to keep a scheduled scenario's shape but tweak just one part — there's no per-hour override here, and collapsing a 4/6/4 pattern to 5 often isn't what the user meant. For flat what-if analysis on scheduled scenarios, prefer simulate_mmc using peak params from describe_scenario. ANTI-FABRICATION: 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 scenario+overrides, re-call this tool rather than recalling numbers from earlier in the conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Scenario key from list_scenarios. | coffee |
| overrides | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hourly | Yes | |
| inputs | Yes | Echo of the run's parameters. |
| summary | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite readOnlyHint=true annotations, the description adds crucial behavior: overrides apply uniformly, closed hours stay zero, and results come from a real simulation requiring verbatim quoting. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Although lengthy, each section earns its place: purpose, usage boundaries, and anti-fabrication rules. Front-loaded with core function and scannable guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simulation tool with rich annotations and output schema. It covers behavioral semantics, alternative tool selection, and critical output fidelity instructions. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already covers all parameter fields, but description explains the overrides object's uniform application semantics, replacing patterns like 4/6/4 with flat values—something schema cannot capture. This adds meaningful value beyond field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb ('Run') + resource ('preset scenarios') + enumerates the scenarios and overrides. It also distinguishes itself from simulate_mmc, clarifying its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (faithful reproduction or uniform scaling) and when not to use (per-hour tweaks), and points to simulate_mmc as alternative. This is exemplary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_scheduleARead-onlyInspect
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: arrivalRates (24-element array of customers/hr per hour-of-day) and staffing (24-element array of servers/hr); optional uniform serviceTimeMinutes. Use 0 in both arrays for closed hours (terminating system). Returns the same per-hour metrics + summary shape as simulate_mmc / simulate_scenario. Stronger fit than simulate_scenario when the user's shape doesn't match the four presets; stronger fit than simulate_mmc when they need per-hour variation. ANTI-FABRICATION: numbers come from a real DES run. Quote them VERBATIM. Do not round, estimate, or derive from training-data recall.
| Name | Required | Description | Default |
|---|---|---|---|
| staffing | Yes | 24 hourly staffing counts (servers/hr, one per hour-of-day 0-23). Use 0 for closed hours. Range 0-50 per hour. | |
| serviceCoV | No | CoV for service time when distribution is Normal or LogNormal. Range 0-5. | |
| arrivalRates | Yes | 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. | |
| simulationDays | No | Days to simulate. Range 1-30. | |
| serviceTimeMinutes | No | Mean service time in minutes per customer. Applies uniformly across hours. Range 0.1-180. | |
| arrivalDistribution | No | Exponential | |
| serviceDistribution | No | Exponential |
Output Schema
| Name | Required | Description |
|---|---|---|
| hourly | Yes | |
| inputs | Yes | Echo of the run's parameters. |
| summary | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and non-destructive, but the description adds critical behavioral context: numbers come from a real DES run and must be quoted verbatim without rounding or estimation. It also explains the terminating-system effect of using 0, which is not in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a moderately long paragraph, but it is front-loaded with the purpose and every sentence serves a role: example, inputs, closed-hours rule, return shape, alternatives, and anti-fabrication. Slightly dense but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return details need not be spelled out. The description provides usage context, alternatives, behavioral constraints, and the per-hour variation emphasis, making it complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 71%, and the description mostly restates schema descriptions for arrivalRates, staffing, and serviceTimeMinutes. It adds little beyond 'Use 0 in both arrays for closed hours,' which the schema already mentions. Distribution parameters are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Run a queueing simulation against an arbitrary 24-hour staffing schedule.' It clearly distinguishes the tool from siblings by emphasizing custom day shapes and explicitly comparing to simulate_scenario and simulate_mmc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger: 'Take this when the user describes a custom day shape that doesn't match a preset,' with a concrete example. It also names alternatives and indicates when each is a stronger fit, plus the closed-hours convention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityDmaintenanceEnables simulation and analysis of M/M/1 and M/M/c queuing systems using SimPy, with tools for parameter validation, theoretical metric calculation, simulation execution, and comparison of separate vs pooled queue strategies.MIT
- Alicense-quality-maintenanceEnables LLMs to access M/M/1 queuing theory resources, validate parameters, calculate theoretical metrics, generate and execute SimPy simulations, and compare simulation results with theoretical predictions.
- AlicenseAqualityDmaintenanceGenerates AnyLogic simulation models from natural-language prompts in Claude Code, allowing users to describe queueing systems, factories, or ERs and obtain runnable .alp files.251MIT
- Flicense-qualityDmaintenanceAdvanced server for simulating financial models and stochastic processes, offering tools for generating simulations, calculating financial metrics, and visualizing results with interactive components.