Skip to main content
Glama

sim_compare

Destructive

Run several scenarios against one model on one shared seed and return them side by side — the seed sharing is server-enforced, so differences are the scenarios, not the dice. Returns a summary by default (finals with finalStdDev, each final count's spread across realizations, throughput/mean/P95 metrics, depletion and contention — no time series); pass full=true for the complete trajectories, which run to hundreds of KB. A scenario carrying "summary": true stays summarized even under full=true, so one comparison can chart some scenarios and only read the rest. Unset hours default to 8, samples to 60 (the trajectory grid, which only matters under full=true — metrics are time-weighted and do not depend on it) and realizations to 16 per scenario. Each scenario can set its own "engine" (see sim_scenario / docs/engine-selection.md); comparing an "ode" run against an "ssa" one is legitimate but the shared seed only removes dice from scenarios using the same engine. Costs 1 token per scenario from the compute bucket (per address, or per account when signed in). Each result's contention is split exactly as sim_scenario's is: contended holds only what the run was short of (kind conserved or bounded), waitingForWork the entries of kind queue (the work had not arrived) or state (the model was in another phase of its cycle), neither of them a shortage, and neverFired one note per place that never held a token in any run while its transitions never fired; sim_scenario's description lists what the run cannot tell apart behind such a note.

Input Schema

NameRequiredDescriptionDefault
idYesmodel id
fullNoinclude the sample-grid time series in every result (large; default false); a scenario with its own "summary": true is left summarized regardless
scenariosYesJSON array of at most 20 scenarios, each with a name, e.g. [{"name":"today","hours":8},{"name":"one more","hours":8,"marking":{"staff/available":3}},{"name":"bigger batches","hours":8,"params":{"batch_size":6}}]; each is held to sim_scenario's caps

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / scenarios / description
      Previous value: -"JSON array of scenarios, each with a name, e.g. [{\"name\":\"today\",\"hours\":8},{\"name\":\"one more\",\"hours\":8,\"marking\":{\"staff\":3}},{\"name\":\"bigger batches\",\"hours\":8,\"params\":{\"batch_size\":6}}]"New value: +"JSON array of at most 20 scenarios, each with a name, e.g. [{\"name\":\"today\",\"hours\":8},{\"name\":\"one more\",\"hours\":8,\"marking\":{\"staff/available\":3}},{\"name\":\"bigger batches\",\"hours\":8,\"params\":{\"batch_size\":6}}]; each is held to sim_scenario's caps"
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=true, openWorldHint=true, idempotentHint=false). The description adds substantial context beyond that: cost of 1 token per scenario from the compute bucket (per address or account), output size (hundreds of KB under full=true), and the exact defaults applied when hours/samples/realizations are unset. It does not address the destructive/idempotency hints, so it is not exhaustive.

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?

Front-loaded with purpose, then returns, then flags and defaults — good ordering with no throat-clearing. The closing passage on contention breakdown (contended/waitingForWork/neverFired) is dense and partly defers to sim_scenario's description, making the tail heavier than it needs to be.

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?

There is no output schema, so the description carries the return-value burden itself and does so thoroughly: default summary contents (finals with finalStdDev, count spread, throughput/mean/P95, depletion, contention) and the opt-in full trajectories. Combined with defaults, cost and engine semantics, nothing an agent needs to call this correctly is missing.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema: default values for hours (8), samples (60) and realizations (16), the note that samples only matters under full=true because metrics are time-weighted, per-scenario engine and summary overrides, and the 20-scenario cap inherited from sim_scenario. This meaningfully extends 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?

States a specific verb and resource ('run several scenarios against one model ... return them side by side') and immediately distinguishes itself from the single-scenario sibling by emphasizing multi-scenario comparison on one shared seed. An agent can tell this apart from sim_scenario without opening either schema.

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

Usage Guidelines4/5

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

Gives clear when-to-use context: compare multiple scenarios under a shared seed, use full=true for trajectories, per-scenario "summary": true to mix detail levels, and notes that ode-vs-ssa comparison is legitimate but only seed-shares within the same engine. It stops short of explicit when-not-to-use guidance or naming sim_scenario as the alternative for a single run.

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.

Resources