{"name":"io.github.inity13/scenariosim-mcp","slug":"inity13-scenariosim-mcp","title":null,"description":"Deterministic what-if & scenario simulation for AI agents: projections, sensitivity & break-even.","url":"https://mcp.market/server/inity13-scenariosim-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":25,"stars":1,"forks":0,"downloads_week":28,"last_push_at":"2026-08-12T09:36:31.000Z","license":"MIT"},"uptime":{"percent":100,"checks":20,"ok":20,"last_checked_at":"2026-09-24T08:16:11.826Z","last_ok_at":"2026-09-24T08:16:11.826Z","latency_ms":56},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/inity13/scenariosim-mcp","website":null,"version":"1.0.2","remotes":[{"type":"streamable-http","url":"https://scenariosim-mcp.pages.dev/mcp"}],"packages":[{"registryType":"npm","identifier":"scenariosim-mcp","version":"1.0.2","transport":{"type":"stdio"}}],"tools":[{"name":"break_even","description":"Solve for the input value required to make an output metric hit a target value (deterministic bisection root-finding). Provide 'template', 'solve_for' (the input to solve), 'target_metric' (defaults to the primary output), and 'target_value'. Optionally pass 'bounds' [low, high] to constrain the search. Returns the required input value, the change from baseline, the achieved metric, and the residual. Assumes the metric is monotonic in the solved input over the range.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"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."},"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."},"solve_for":{"type":"string","description":"Name of the input variable to solve for."},"target_metric":{"type":"string","description":"Output metric to hit (defaults to the template's primary output)."},"target_value":{"type":"number","description":"The value the target_metric should reach."},"bounds":{"type":"array","items":{"type":"number"},"description":"Optional [low, high] search range for the solved input. Auto-derived + expanded if omitted."},"horizon":{"type":"integer","description":"Number of periods to project forward (1..1200). Default depends on template (usually 12).","default":12},"period_label":{"type":"string","enum":["day","week","month","quarter","year"],"default":"month","description":"Label for each period; also sets annualization (periods/year)."}},"required":["template","solve_for","target_value"]}},{"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"scenarios":{"type":"array","description":"2-3 scenarios to compare. Each: {name?, template, inputs, horizon?, period_label?} or {name?, metrics:[...]} for a custom model.","items":{"type":"object","properties":{"name":{"type":"string"},"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."},"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."},"metrics":{"type":"array","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'}.","items":{"type":"object","properties":{"name":{"type":"string"},"start":{"type":"number"},"growth_rate":{"type":"number"},"mode":{"type":"string","enum":["compound","linear"],"default":"compound"}},"required":["name","start"]}},"horizon":{"type":"integer","description":"Number of periods to project forward (1..1200). Default depends on template (usually 12).","default":12},"period_label":{"type":"string","enum":["day","week","month","quarter","year"],"default":"month","description":"Label for each period; also sets annualization (periods/year)."}}}},"compare_metric":{"type":"string","description":"Metric to rank scenarios on (optional)."},"goal":{"type":"string","enum":["max","min"],"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."},"include_projections":{"type":"boolean","default":false,"description":"Include each scenario's full per-period projections."}},"required":["scenarios"]}},{"name":"health_check","description":"Server health, version, and capabilities (tools, templates, period labels, max horizon). No parameters.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"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 'period_label'. 100% deterministic (40-digit decimal math).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"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."},"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."},"metrics":{"type":"array","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'}.","items":{"type":"object","properties":{"name":{"type":"string"},"start":{"type":"number"},"growth_rate":{"type":"number"},"mode":{"type":"string","enum":["compound","linear"],"default":"compound"}},"required":["name","start"]}},"horizon":{"type":"integer","description":"Number of periods to project forward (1..1200). Default depends on template (usually 12).","default":12},"period_label":{"type":"string","enum":["day","week","month","quarter","year"],"default":"month","description":"Label for each period; also sets annualization (periods/year)."}}}},{"name":"sensitivity_analysis","description":"Vary one or more input assumptions and show the impact on a target output metric (one-at-a-time sensitivity). Provide 'template', the input to sweep via 'variable' (or 'variables' array), and 'target_metric' (defaults to the template's primary output). Control the sweep with 'variation' (fractional +/- around the baseline, default 0.2), 'steps' (default 5), or explicit 'values' / 'min'+'max'. Returns per-variable sweeps, an elasticity estimate, the output range, and a ranking of the most influential inputs.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"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."},"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."},"target_metric":{"type":"string","description":"Output metric to track (see a template's 'outputs' via list_templates). Defaults to the template's primary output."},"variable":{"type":"string","description":"A single input name to sweep."},"variables":{"type":"array","description":"Multiple inputs to sweep (one at a time). Each: {name, variation?|values?|min?+max?, steps?}.","items":{"type":"object","properties":{"name":{"type":"string"},"variation":{"type":"number"},"steps":{"type":"integer"},"values":{"type":"array","items":{"type":"number"}},"min":{"type":"number"},"max":{"type":"number"}},"required":["name"]}},"variation":{"type":"number","default":0.2,"description":"Fractional sweep around the baseline (0<v<=1). 0.2 = +/-20%."},"steps":{"type":"integer","default":5,"description":"Number of sweep points per variable (2-200)."},"values":{"type":"array","items":{"type":"number"},"description":"Explicit sweep values for a single 'variable'."},"min":{"type":"number","description":"Sweep lower bound (with 'max')."},"max":{"type":"number","description":"Sweep upper bound (with 'min')."},"horizon":{"type":"integer","description":"Number of periods to project forward (1..1200). Default depends on template (usually 12).","default":12},"period_label":{"type":"string","enum":["day","week","month","quarter","year"],"default":"month","description":"Label for each period; also sets annualization (periods/year)."}},"required":["template"]}}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-23T17:17:18.300Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T17:17:18.337Z","components":{"code":{"score":25,"max":25,"notes":["3 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 206ms"]},"poisoning":{"score":15,"max":15,"notes":["6 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 2 write-action tools with no auth"]},"maintenance":{"score":12,"max":15,"notes":["last push 42 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://scenariosim-mcp.pages.dev/mcp","reachable":true,"authRequired":false,"latencyMs":206,"serverInfo":{"name":"ScenarioSim","version":"1.0.0-edge"}}],"packages":[{"registryType":"npm","identifier":"scenariosim-mcp","version":"1.0.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":1,"publishedAt":"2026-08-12T09:31:19.267Z","repositoryUrl":"git+https://github.com/inity13/scenariosim-mcp.git","weeklyDownloads":28}],"repo":{"found":true,"owner":"inity13","repo":"scenariosim-mcp","archived":false,"pushedAt":"2026-08-12T09:36:31Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/30606024?v=4","ownerCreatedAt":"2017-07-31T20:28:48Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/30606024?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":0,"downloadsWeek":28,"license":"MIT","lastPushAt":"2026-08-12T09:36:31.000Z","score":25}}}},"grade_history":[],"reviews":[]}