{"serverId":"mcp-registry/io.github.inity13/agentstack-mcp","tools":[{"name":"calc_currency_convert","fixed":{"name":"calc_currency_convert","description":"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.","inputSchema":{"type":"object","required":["amount","from_currency","to_currency"],"properties":{"date":{"type":"string"},"live":{"type":"boolean"},"amount":{"type":"number"},"to_currency":{"type":"string"},"from_currency":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":134,"tokensAfter":134},{"name":"calc_list_metrics","fixed":{"name":"calc_list_metrics","description":"COMPUTE. List every supported metric with descriptions and required/optional params. 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":"decide_compare_two","fixed":{"name":"decide_compare_two","description":"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.","inputSchema":{"type":"object","required":["criteria","scores"],"properties":{"method":{"type":"string"},"scores":{"type":"object"},"options":{"type":"array"},"criteria":{"type":"array"},"option_a":{"type":"string"},"option_b":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"decide_list_methods","fixed":{"name":"decide_list_methods","description":"DECIDE. List the scoring methods (weighted_sum, weighted_product, topsis) with normalization details and when to use each. No parameters.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":65,"tokensAfter":65},{"name":"health_check","fixed":{"name":"health_check","description":"Aggregated health/status for the whole stack (all three engines + composites). No parameters.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":51,"tokensAfter":51},{"name":"list_capabilities","fixed":{"name":"list_capabilities","description":"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.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":90,"tokensAfter":90},{"name":"sim_compare","fixed":{"name":"sim_compare","description":"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.","inputSchema":{"type":"object","required":["scenarios"],"properties":{"goal":{"type":"string"},"horizon":{"type":"integer"},"scenarios":{"type":"array","items":{"type":"object"}},"compare_metric":{"type":"string"},"include_projections":{"type":"boolean"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":129,"tokensAfter":129},{"name":"sim_list_templates","fixed":{"name":"sim_list_templates","description":"SIMULATE. List every scenario template (inputs, defaults, outputs) plus the custom-model format and period labels. No parameters.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":62,"tokensAfter":62},{"name":"sim_run","fixed":{"name":"sim_run","description":"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.","inputSchema":{"type":"object","properties":{"inputs":{"type":"object"},"horizon":{"type":"integer"},"metrics":{"type":"array","items":{"type":"object"}},"template":{"type":"string"},"period_label":{"type":"string"}}},"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":160,"tokensAfter":160}],"toolsChanged":9,"tokensSaved":0,"todo":[{"tool":"calc_business_days","params":["days","region","end_date","operation","start_date","custom_holidays"]},{"tool":"calc_compound_growth","params":["rate","years","currency","end_value","operation","begin_value","compounding","future_value","present_value"]},{"tool":"calc_currency_convert","params":["date","live","amount","to_currency","from_currency"]},{"tool":"calc_depreciation","params":["cost","method","currency","salvage_value","useful_life_years"]},{"tool":"calc_irr","params":["guess","cashflows"]},{"tool":"calc_loan_amortization","params":["currency","principal","annual_rate","term_months","extra_payment","include_schedule"]},{"tool":"calc_metric","params":["metric","params","currency"]},{"tool":"calc_npv","params":["rate","currency","cashflows"]},{"tool":"decide","params":["method","scores","options","criteria"]},{"tool":"decide_compare_two","params":["method","scores","options","criteria","option_a","option_b"]},{"tool":"decide_score","params":["method","scores","options","criteria"]},{"tool":"decide_sensitivity","params":["steps","method","scores","options","criteria","variation"]},{"tool":"evaluate_options_with_scenarios","params":["inputs","method","horizon","options","criteria","template","period_label"]},{"tool":"plan_to_valuation","params":["rate","inputs","horizon","metrics","currency","template","period_label","cashflow_metric","initial_investment"]},{"tool":"sim_break_even","params":["bounds","inputs","horizon","template","solve_for","period_label","target_value","target_metric"]},{"tool":"sim_compare","params":["goal","horizon","scenarios","compare_metric","include_projections"]},{"tool":"sim_run","params":["inputs","horizon","metrics","template","period_label"]},{"tool":"sim_sensitivity","params":["max","min","steps","inputs","values","horizon","template","variable","variables","variation","period_label","target_metric"]},{"tool":"stress_test_decision","params":["inputs","method","stress","horizon","options","criteria","template","period_label"]}],"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."}