Skip to main content
Glama

run_scenario

Main simulation tool. Run a deterministic what-if projection from a pre-built template (saas_growth, pricing_change, churn_impact, cost_reduction, hiring_plan, cash_runway, unit_economics, marketing_funnel, compound_growth) OR a free-form 'metrics' model. Returns period-by-period projections, headline key_results, the exact assumptions used (with defaults filled in), the methodology, notes, and a plain-language explanation. Pass 'template' + 'inputs' (assumptions), plus optional 'horizon' and 'period_label'. 100% deterministic (40-digit decimal math).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
inputsNoScenario assumptions as {name: value}. Which keys are valid depends on the template (call list_templates). Unlisted keys fall back to documented defaults; unknown keys are ignored and reported in notes. You may also pass assumptions at the top level.
horizonNoNumber of periods to project forward (1..1200). Default depends on template (usually 12).
metricsNoFor a CUSTOM free-form scenario (template omitted or 'custom'): a list of independently-growing metrics. Each: {name, start, growth_rate (per period, default 0), mode: 'compound' (default) | 'linear'}.
templateNoPre-built scenario template id: saas_growth, pricing_change, churn_impact, cost_reduction, hiring_plan, cash_runway, unit_economics, marketing_funnel, compound_growth (aliases like 'saas','pricing','runway','ltv' also resolve). Omit (or use 'custom') to run a free-form 'metrics' projection.
period_labelNoLabel for each period; also sets annualization (periods/year).month

TDQS

A4.6/5.0
Behavior5/5

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

The description clearly discloses that it is '100% deterministic (40-digit decimal math)' and details every major output element: period-by-period projections, key_results, assumptions with defaults filled in, methodology, notes, and a plain-language explanation. This is especially valuable because no annotations are provided, fully compensating for the absence of structured transparency.

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 five sentences, front-loaded with 'Main simulation tool' and proceeding logically through what it runs, what it returns, how to call it, and its deterministic nature. The template list is long but necessary for discoverability; no sentence is redundant.

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?

Despite lacking an output schema and annotations, the description covers all key aspects: it lists return values, supports both template and custom scenarios, explains deterministic behavior, and works in tandem with the rich input schema. This is sufficient for an agent to know when and how to use the tool and what to expect.

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?

With 100% schema coverage, the baseline is 3, and the description adds a useful high-level abstraction: it clarifies the two modes (pre-built template vs free-form 'metrics') and gives the core call pattern ('template + inputs'). This goes slightly beyond the schema by synthesizing which parameters work together, aiding correct invocation.

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 states a specific verb ('Run') and resource ('simulation tool'), and goes beyond by naming both pre-built templates and a free-form 'metrics' model. The phrase 'Main simulation tool' establishes its role relative to siblings like sensitivity_analysis and compare_scenarios, making 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 Guidelines4/5

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

Provides explicit usage instructions: 'Pass template + inputs, plus optional horizon and period_label' and enumerates valid template IDs. However, it does not explicitly explain when to choose this tool over alternatives like break_even or sensitivity_analysis, leaving some inference up to the agent.

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.4/5.0
Disambiguation5/5

Each tool targets a distinct operation: health_check for status, list_templates for discovery, run_scenario for single simulations, compare_scenarios for multi-scenario comparison, sensitivity_analysis for input sweeping, and break_even for root-finding. There is no meaningful overlap or ambiguity between tool purposes.

Naming Consistency5/5

All tool names follow a clear snake_case pattern, with most using verb_noun construction (run_scenario, list_templates, compare_scenarios). Even though health_check and break_even are compound nouns, they are consistent in style and clearly action-oriented.

Tool Count5/5

Six tools is well within the ideal range and each tool fills a necessary role for scenario simulation. The set covers running, comparing, sensitivity analysis, break-even solving, discovery, and system health without being bloated or sparse.

Completeness5/5

The tool surface covers the full lifecycle of scenario analysis: discover templates, run a scenario, compare multiple, vary inputs, and solve for targets. Custom scenarios are also supported via run_scenario, so there are no critical gaps in the domain.