{"serverId":"mcp-registry/io.github.inity13/scenariosim-mcp","tools":[{"name":"compare_scenarios","fixed":{"name":"compare_scenarios","description":"Run 2-3 scenarios and compare their key_results side by side, with deltas against the first (baseline) scenario. Provide a 'scenarios' array where each entry is {name?, template, inputs} (each may set its own horizon, or pass a shared top-level 'horizon'). Optionally rank on 'compare_metric' with 'goal' ('max' default | 'min') to pick a winner, and set include_projections:true to also return per-period series.","inputSchema":{"type":"object","required":["scenarios"],"properties":{"goal":{"enum":["max","min"],"type":"string","default":"max","description":"Whether higher (max) or lower (min) is better for compare_metric."},"horizon":{"type":"integer","description":"Optional shared horizon applied to scenarios that don't set their own."},"scenarios":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"inputs":{"type":"object","description":"Scenario 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."},"horizon":{"type":"integer","default":12,"description":"Number of periods to project forward (1..1200). Default depends on template (usually 12)."},"metrics":{"type":"array","items":{"type":"object","required":["name","start"],"properties":{"mode":{"enum":["compound","linear"],"type":"string","default":"compound"},"name":{"type":"string"},"start":{"type":"number"},"growth_rate":{"type":"number"}}},"description":"For 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'}."},"template":{"type":"string","description":"Pre-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_label":{"enum":["day","week","month","quarter","year"],"type":"string","default":"month","description":"Label for each period; also sets annualization (periods/year)."}}},"description":"2-3 scenarios to compare. Each: {name?, template, inputs, horizon?, period_label?} or {name?, metrics:[...]} for a custom model."},"compare_metric":{"type":"string","description":"Metric to rank scenarios on (optional)."},"include_projections":{"type":"boolean","default":false,"description":"Include each scenario's full per-period projections."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":744,"tokensAfter":744},{"name":"health_check","fixed":{"name":"health_check","description":"Server health, version, and capabilities (tools, templates, period labels, max horizon). No parameters.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":54,"tokensAfter":54},{"name":"list_templates","fixed":{"name":"list_templates","description":"Discovery tool: list every pre-built scenario template (id, label, category, description, primary output, documented inputs with defaults/units, and available output metrics), plus how to run a custom free-form scenario and the supported period labels. No required parameters.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":102},{"name":"run_scenario","fixed":{"name":"run_scenario","description":"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 'p","inputSchema":{"type":"object","properties":{"inputs":{"type":"object","description":"Scenario 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."},"horizon":{"type":"integer","default":12,"description":"Number of periods to project forward (1..1200). Default depends on template (usually 12)."},"metrics":{"type":"array","items":{"type":"object","required":["name","start"],"properties":{"mode":{"enum":["compound","linear"],"type":"string","default":"compound"},"name":{"type":"string"},"start":{"type":"number"},"growth_rate":{"type":"number"}}},"description":"For 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'}."},"template":{"type":"string","description":"Pre-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_label":{"enum":["day","week","month","quarter","year"],"type":"string","default":"month","description":"Label for each period; also sets annualization (periods/year)."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":560,"tokensAfter":560}],"toolsChanged":4,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}