DEV Community

DatanestDigital
DatanestDigital

Posted on • Originally published at agentstack-mcp.pages.dev

AgentStack MCP: one deterministic reasoning stack for AI agents (simulate + decide + compute)

The fourth in a suite of deterministic MCP servers for AI agents — and the one that ties the first three together.

Over the last stretch I shipped three focused, deterministic MCP servers:

They're great on their own, but agents kept needing all three in the same task — and installing three servers, juggling three keys, and hand-gluing their outputs is friction. So here's AgentStack MCP: one endpoint, one key, all three — plus composite tools that chain them.

simulate → decide → compute

{ "mcpServers": { "agentstack": {
    "type": "http", "url": "https://agentstack-mcp.pages.dev/mcp" } } }
Enter fullscreen mode Exit fullscreen mode

Free tier: no key, 20 calls/day. The tools are namespaced so an agent always knows which engine it's calling:

  • sim_* — ScenarioSim (run, sensitivity, break-even, compare, templates)
  • decide_* — DecisionMatrix (decide, score, sensitivity, compare_two, methods)
  • calc_* — PrecisionCalc (metrics, currency, NPV, IRR, loan, depreciation, …)

The part that's actually new: composite tools

These chain the engines to do reasoning no single server can, deterministically end-to-end:

evaluate_options_with_scenarios (simulate → decide) — project each option as its own scenario, then rank the outcomes against weighted criteria:

{ "name": "evaluate_options_with_scenarios", "arguments": {
  "template": "saas_growth", "horizon": 12,
  "options": [
    { "name": "Aggressive", "inputs": { "new_customers_per_period": 60, "churn_rate": 0.05 } },
    { "name": "Lean",       "inputs": { "new_customers_per_period": 20, "churn_rate": 0.02 } }
  ],
  "criteria": [
    { "metric": "ending_mrr", "weight": 3, "direction": "benefit" },
    { "metric": "total_churned_customers", "weight": 1, "direction": "cost" }
  ]
} }
Enter fullscreen mode Exit fullscreen mode

plan_to_valuation (simulate → compute) — project a plan, then value its cash-flow line: NPV, IRR, undiscounted total.

stress_test_decision (simulate × decide) — stress one scenario assumption across every option and report how often the chosen option survives (robustness) and where it flips.

Fighting tool bloat with profiles

Bundling 24 tools risks drowning an agent's tool-selection. So the endpoint takes a ?profile= filter:

https://agentstack-mcp.pages.dev/mcp?profile=finance
Enter fullscreen mode Exit fullscreen mode
  • financecalc_* + plan_to_valuation
  • decisiondecide_* + the two decision composites
  • simulationsim_* + all composites
  • all (default) → everything

Why it's built this way

  • Deterministic: everything runs through decimal.js at 40-digit precision. Same inputs → byte-identical output, across all three engines and the composites.
  • No proxying: AgentStack imports the same engines directly, so there's zero added latency and no cascading failure — not three network hops behind one URL.
  • Additive, not a replacement: the three standalone servers keep running for single-domain use.
  • One key, one quota: ~half the price of subscribing to the three separately.
  • Stateless + MIT: self-host on Cloudflare Pages, Node, Deno, or Bun.

Links

If your agents plan, choose, and do the numbers, give them one calculator that does all three — and never drifts. Feedback welcome.

Top comments (0)