Skip to content

io.github.inity13/agentstack-mcp

by inity13 · remote · local (npm) · no sign-in to list tools · v1.0.1 · published by GitHub user inity13

Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.

Changes · 18

24 tools: 18 change things and 6 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http agentstack https://agentstack-mcp.pages.dev/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

24 tools

Changes things 18Claude Code: ask
  • calc_business_daysCOMPUTE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    COMPUTE. Business-day arithmetic honoring weekends + regional holidays. operation: add_business_days | count_business_days | next_business_day | previous_business_day. region: US | UK | EU | NONE.
  • calc_compound_growthCOMPUTE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    COMPUTE. Compound-interest/growth math. operation: future_value | present_value | cagr. rate is annual decimal; compounding: daily|weekly|monthly|quarterly|semiannually|annually|continuous.
  • calc_currency_convertCOMPUTE.No findings

    Why it is in this group

    • The name "calc_currency_convert" says "convert": a word for a change.
    Description, as the server wrote it
    COMPUTE. Convert between major currencies (USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, INR) with Decimal precision. Static offline table by default; live/historical ECB rates via date/live=true.
  • calc_depreciationCOMPUTE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    COMPUTE. Asset depreciation schedule. method: straight_line | declining_balance | sum_of_years_digits.
  • calc_irrCOMPUTE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    COMPUTE. Internal Rate of Return: per-period rate where NPV=0 (Newton + bisection). Requires a sign change in cashflows.
  • calc_loan_amortizationCOMPUTE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    COMPUTE. Level-payment loan: monthly payment, total interest, payoff, and (optional) full schedule.
  • calc_metricCOMPUTE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    COMPUTE. Exact business/SaaS/finance metric: ltv, cac, ltv_cac_ratio, payback_period_months, contribution_margin, gross_margin, churn_rate, mrr_growth_rate, arr, break_even_units, nrr, grr, rule_of_40, magic_number. Rates/margins are decimals (0.05=5%). Call calc_list_metrics for schemas.
  • calc_npvCOMPUTE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    COMPUTE. Net Present Value (discounted cash flow). NPV = sum(CF_t/(1+rate)^t); cashflows[0] is period 0 (usually the negative outlay).
  • decideDECIDE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    DECIDE. Rank named options against weighted criteria and return the winner, full ranking, per-criterion breakdowns, methodology, weights, and an explanation. Provide options, criteria [{name, weight, direction}], and a scores matrix. method: weighted_sum (default) | weighted_product | topsis.
  • decide_scoreDECIDE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    DECIDE. Return the full normalized scored matrix (per-option, per-criterion) + ranking when scores are supplied separately, without the winner narrative.
  • decide_sensitivityDECIDE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    DECIDE. Test how robust the decision winner is to changes in CRITERIA WEIGHTS (distinct from sim_sensitivity, which varies scenario inputs). Sweeps each weight +/-variation and reports a robustness score + flip points.
  • evaluate_options_with_scenariosCOMPOSITE (simulate -> decide).No findings

    Why it is in this group

    • The name "evaluate_options_with_scenarios" says "evaluate": a word for a change.
    Description, as the server wrote it
    COMPOSITE (simulate -> decide). Project each option as its own scenario, then rank the options against weighted criteria drawn from the scenario OUTCOMES. Provide a base 'template', an 'options' array ([{name, inputs}]), and 'criteria' ([{metric, weight, direction}]) where each metric is a scenario key_result. Combines ScenarioSim + DecisionMatrix.
  • health_checkAggregated health/status for the whole stack (all three engines + composites).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Aggregated health/status for the whole stack (all three engines + composites). No parameters.
  • plan_to_valuationCOMPOSITE (simulate -> compute).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    COMPOSITE (simulate -> compute). Project a scenario, take a per-period cash-flow line from its projections ('cashflow_metric', e.g. 'mrr' or 'net_burn'), and value it exactly: NPV at a discount 'rate', IRR, and undiscounted total. Optional 'initial_investment' becomes the period-0 outflow (needed for IRR). Combines ScenarioSim + PrecisionCalc.
  • sim_break_evenSIMULATE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    SIMULATE. Solve for the scenario input value required to make an output metric hit a target value (deterministic bisection). Requires 'template', 'solve_for', 'target_value'.
  • sim_runSIMULATE.No findings

    Why it is in this group

    • The name "sim_run" says "run": a word for a change.
    Description, as the server wrote it
    SIMULATE. Deterministic what-if projection from a 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 per-period projections, key_results, assumptions_used, methodology, and an explanation.
  • sim_sensitivitySIMULATE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    SIMULATE. Vary one or more scenario inputs and show the impact on a target output metric (one-at-a-time), with elasticity + most-influential ranking. Requires 'template' and 'variable' (or 'variables').
  • stress_test_decisionCOMPOSITE (simulate x decide).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    COMPOSITE (simulate x decide). Take an options-vs-scenarios decision and stress ONE scenario assumption across a range applied to every option; report how often the baseline winner survives (robustness) and where it flips. Same args as evaluate_options_with_scenarios plus 'stress': {variable, variation, steps}.
Only reads 6Claude Code: allow
  • calc_list_metricsCOMPUTE.No findings

    Why it is in this group

    • The name "calc_list_metrics" says "list": a word for reading.
    Description, as the server wrote it
    COMPUTE. List every supported metric with descriptions and required/optional params. No parameters.
  • decide_compare_twoDECIDE.No findings

    Why it is in this group

    • The name "decide_compare_two" says "compare": a word for reading.
    Description, as the server wrote it
    DECIDE. Head-to-head comparison of exactly two options with per-criterion win counts and margin. Pass option_a/option_b (or a 2-element options array), criteria, and scores.
  • decide_list_methodsDECIDE.No findings

    Why it is in this group

    • The name "decide_list_methods" says "list": a word for reading.
    Description, as the server wrote it
    DECIDE. List the scoring methods (weighted_sum, weighted_product, topsis) with normalization details and when to use each. No parameters.
  • list_capabilitiesDiscovery: the three namespaces (sim_*, decide_*, calc_*), the cross-domain composite tools, the available ?profile= filters, and links to the standalone servers.No findings

    Why it is in this group

    • The name "list_capabilities" says "list": a word for reading.
    Description, as the server wrote it
    Discovery: the three namespaces (sim_*, decide_*, calc_*), the cross-domain composite tools, the available ?profile= filters, and links to the standalone servers. Call this first to see everything AgentStack exposes. No parameters.
  • sim_compareSIMULATE.No findings

    Why it is in this group

    • The name "sim_compare" says "compare": a word for reading.
    Description, as the server wrote it
    SIMULATE. Run 2-3 scenarios and compare their key_results side by side with deltas vs the first (baseline). Optional 'compare_metric' + 'goal' (max|min) picks a winner.
  • sim_list_templatesSIMULATE.No findings

    Why it is in this group

    • The name "sim_list_templates" says "list": a word for reading.
    Description, as the server wrote it
    SIMULATE. List every scenario template (inputs, defaults, outputs) plus the custom-model format and period labels. No parameters.

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http agentstack https://agentstack-mcp.pages.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__agentstack__list_capabilities",
      "mcp__agentstack__sim_compare",
      "mcp__agentstack__sim_list_templates",
      "mcp__agentstack__decide_compare_two",
      "mcp__agentstack__decide_list_methods",
      "mcp__agentstack__calc_list_metrics"
    ],
    "ask": [
      "mcp__agentstack__health_check",
      "mcp__agentstack__sim_run",
      "mcp__agentstack__sim_sensitivity",
      "mcp__agentstack__sim_break_even",
      "mcp__agentstack__decide",
      "mcp__agentstack__decide_score",
      "mcp__agentstack__decide_sensitivity",
      "mcp__agentstack__calc_metric",
      "mcp__agentstack__calc_currency_convert",
      "mcp__agentstack__calc_business_days",
      "mcp__agentstack__calc_compound_growth",
      "mcp__agentstack__calc_npv",
      "mcp__agentstack__calc_irr",
      "mcp__agentstack__calc_loan_amortization",
      "mcp__agentstack__calc_depreciation",
      "mcp__agentstack__plan_to_valuation",
      "mcp__agentstack__evaluate_options_with_scenarios",
      "mcp__agentstack__stress_test_decision"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as agentstack. Review it before you use it.