agentstack-mcp
Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- LOWen decide_score
- LOWen evaluate_options_with_scenarios
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"agentstack-mcp": {
"command": "npx",
"args": [
"agentstack-mcp"
]
}
}
}Paquetes ejecutables
1.0.1stdioPuntos de conexión remotos
https://agentstack-mcp.pages.dev/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (24)
🟢list_capabilities
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.
Esquema de entrada
{
"type": "object",
"properties": {}
}🟢health_check
Aggregated health/status for the whole stack (all three engines + composites). No parameters.
Esquema de entrada
{
"type": "object",
"properties": {}
}⚪sim_run(template, inputs, metrics, horizon, period_label)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"template": {
"type": "string"
},
"inputs": {
"type": "object"
},
"metrics": {
"type": "array",
"items": {
"type": "object"
}
},
"horizon": {
"type": "integer"
},
"period_label": {
"type": "string"
}
}
}🟢sim_sensitivity(template, inputs, target_metric, variable, variables, ...)
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').
Esquema de entrada
{
"type": "object",
"properties": {
"template": {
"type": "string"
},
"inputs": {
"type": "object"
},
"target_metric": {
"type": "string"
},
"variable": {
"type": "string"
},
"variables": {
"type": "array",
"items": {
"type": "object"
}
},
"variation": {
"type": "number"
},
"steps": {
"type": "integer"
},
"values": {
"type": "array",
"items": {
"type": "number"
}
},
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"horizon": {
"type": "integer"
},
"period_label": {
"type": "string"
}
},
"required": [
"template"
]
}⚪sim_break_even(template, inputs, solve_for, target_metric, target_value, ...)
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'.
Esquema de entrada
{
"type": "object",
"properties": {
"template": {
"type": "string"
},
"inputs": {
"type": "object"
},
"solve_for": {
"type": "string"
},
"target_metric": {
"type": "string"
},
"target_value": {
"type": "number"
},
"bounds": {
"type": "array",
"items": {
"type": "number"
}
},
"horizon": {
"type": "integer"
},
"period_label": {
"type": "string"
}
},
"required": [
"template",
"solve_for",
"target_value"
]
}⚪sim_compare(scenarios, compare_metric, goal, horizon, include_projections)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"scenarios": {
"type": "array",
"items": {
"type": "object"
}
},
"compare_metric": {
"type": "string"
},
"goal": {
"type": "string"
},
"horizon": {
"type": "integer"
},
"include_projections": {
"type": "boolean"
}
},
"required": [
"scenarios"
]
}🟢sim_list_templates
SIMULATE. List every scenario template (inputs, defaults, outputs) plus the custom-model format and period labels. No parameters.
Esquema de entrada
{
"type": "object",
"properties": {}
}⚪decide(options, criteria, scores, method)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"options": {
"type": "array"
},
"criteria": {
"type": "array"
},
"scores": {
"type": "object"
},
"method": {
"type": "string"
}
},
"required": [
"options",
"criteria",
"scores"
]
}⚪decide_score(options, criteria, scores, method)
DECIDE. Return the full normalized scored matrix (per-option, per-criterion) + ranking when scores are supplied separately, without the winner narrative.
Esquema de entrada
{
"type": "object",
"properties": {
"options": {
"type": "array"
},
"criteria": {
"type": "array"
},
"scores": {
"type": "object"
},
"method": {
"type": "string"
}
},
"required": [
"options",
"criteria",
"scores"
]
}⚪decide_sensitivity(options, criteria, scores, method, variation, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"options": {
"type": "array"
},
"criteria": {
"type": "array"
},
"scores": {
"type": "object"
},
"method": {
"type": "string"
},
"variation": {
"type": "number"
},
"steps": {
"type": "integer"
}
},
"required": [
"options",
"criteria",
"scores"
]
}⚪decide_compare_two(option_a, option_b, options, criteria, scores, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"option_a": {
"type": "string"
},
"option_b": {
"type": "string"
},
"options": {
"type": "array"
},
"criteria": {
"type": "array"
},
"scores": {
"type": "object"
},
"method": {
"type": "string"
}
},
"required": [
"criteria",
"scores"
]
}🟢decide_list_methods
DECIDE. List the scoring methods (weighted_sum, weighted_product, topsis) with normalization details and when to use each. No parameters.
Esquema de entrada
{
"type": "object",
"properties": {}
}🟢calc_metric(metric, params, currency)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"metric": {
"type": "string"
},
"params": {
"type": "object"
},
"currency": {
"type": "string"
}
},
"required": [
"metric",
"params"
]
}🟢calc_list_metrics
COMPUTE. List every supported metric with descriptions and required/optional params. No parameters.
Esquema de entrada
{
"type": "object",
"properties": {}
}⚪calc_currency_convert(amount, from_currency, to_currency, date, live)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"amount": {
"type": "number"
},
"from_currency": {
"type": "string"
},
"to_currency": {
"type": "string"
},
"date": {
"type": "string"
},
"live": {
"type": "boolean"
}
},
"required": [
"amount",
"from_currency",
"to_currency"
]
}🟡calc_business_days(operation, start_date, days, end_date, region, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"start_date": {
"type": "string"
},
"days": {
"type": "integer"
},
"end_date": {
"type": "string"
},
"region": {
"type": "string"
},
"custom_holidays": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"operation",
"start_date"
]
}⚪calc_compound_growth(operation, rate, years, present_value, future_value, ...)
COMPUTE. Compound-interest/growth math. operation: future_value | present_value | cagr. rate is annual decimal; compounding: daily|weekly|monthly|quarterly|semiannually|annually|continuous.
Esquema de entrada
{
"type": "object",
"properties": {
"operation": {
"type": "string"
},
"rate": {
"type": "number"
},
"years": {
"type": "number"
},
"present_value": {
"type": "number"
},
"future_value": {
"type": "number"
},
"begin_value": {
"type": "number"
},
"end_value": {
"type": "number"
},
"compounding": {
"type": "string"
},
"currency": {
"type": "string"
}
},
"required": [
"operation"
]
}⚪calc_npv(rate, cashflows, currency)
COMPUTE. Net Present Value (discounted cash flow). NPV = sum(CF_t/(1+rate)^t); cashflows[0] is period 0 (usually the negative outlay).
Esquema de entrada
{
"type": "object",
"properties": {
"rate": {
"type": "number"
},
"cashflows": {
"type": "array",
"items": {
"type": "number"
}
},
"currency": {
"type": "string"
}
},
"required": [
"rate",
"cashflows"
]
}🟡calc_irr(cashflows, guess)
COMPUTE. Internal Rate of Return: per-period rate where NPV=0 (Newton + bisection). Requires a sign change in cashflows.
Esquema de entrada
{
"type": "object",
"properties": {
"cashflows": {
"type": "array",
"items": {
"type": "number"
}
},
"guess": {
"type": "number"
}
},
"required": [
"cashflows"
]
}⚪calc_loan_amortization(principal, annual_rate, term_months, extra_payment, currency, ...)
COMPUTE. Level-payment loan: monthly payment, total interest, payoff, and (optional) full schedule.
Esquema de entrada
{
"type": "object",
"properties": {
"principal": {
"type": "number"
},
"annual_rate": {
"type": "number"
},
"term_months": {
"type": "integer"
},
"extra_payment": {
"type": "number"
},
"currency": {
"type": "string"
},
"include_schedule": {
"type": "boolean"
}
},
"required": [
"principal",
"annual_rate",
"term_months"
]
}⚪calc_depreciation(method, cost, salvage_value, useful_life_years, currency)
COMPUTE. Asset depreciation schedule. method: straight_line | declining_balance | sum_of_years_digits.
Esquema de entrada
{
"type": "object",
"properties": {
"method": {
"type": "string"
},
"cost": {
"type": "number"
},
"salvage_value": {
"type": "number"
},
"useful_life_years": {
"type": "integer"
},
"currency": {
"type": "string"
}
},
"required": [
"method",
"cost",
"salvage_value",
"useful_life_years"
]
}⚪plan_to_valuation(template, inputs, metrics, horizon, period_label, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"template": {
"type": "string"
},
"inputs": {
"type": "object"
},
"metrics": {
"type": "array",
"items": {
"type": "object"
}
},
"horizon": {
"type": "integer"
},
"period_label": {
"type": "string"
},
"cashflow_metric": {
"type": "string"
},
"rate": {
"type": "number"
},
"initial_investment": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"required": [
"template",
"cashflow_metric",
"rate"
]
}⚪evaluate_options_with_scenarios(template, inputs, horizon, period_label, method, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"template": {
"type": "string"
},
"inputs": {
"type": "object"
},
"horizon": {
"type": "integer"
},
"period_label": {
"type": "string"
},
"method": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "object"
}
},
"criteria": {
"type": "array",
"items": {
"type": "object"
}
}
},
"required": [
"options",
"criteria"
]
}⚪stress_test_decision(template, inputs, horizon, period_label, method, ...)
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}.
Esquema de entrada
{
"type": "object",
"properties": {
"template": {
"type": "string"
},
"inputs": {
"type": "object"
},
"horizon": {
"type": "integer"
},
"period_label": {
"type": "string"
},
"method": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "object"
}
},
"criteria": {
"type": "array",
"items": {
"type": "object"
}
},
"stress": {
"type": "object"
}
},
"required": [
"options",
"criteria",
"stress"
]
}Comunidad
Evidencia