Server definition
- Hash
- sha256:78abd7329fbe52044c035849909d2467e07be93302789de8e701c7a9b3ec68fb
- What it is
- What a remote MCP server returned when asked what it offers: 24 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "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.",
"inputSchema": {
"properties": {
"custom_holidays": {
"items": {
"type": "string"
},
"type": "array"
},
"days": {
"type": "integer"
},
"end_date": {
"type": "string"
},
"operation": {
"type": "string"
},
"region": {
"type": "string"
},
"start_date": {
"type": "string"
}
},
"required": [
"operation",
"start_date"
],
"type": "object"
},
"name": "calc_business_days",
"outputSchema": null
},
{
"description": "COMPUTE. Compound-interest/growth math. operation: future_value | present_value | cagr. rate is annual decimal; compounding: daily|weekly|monthly|quarterly|semiannually|annually|continuous.",
"inputSchema": {
"properties": {
"begin_value": {
"type": "number"
},
"compounding": {
"type": "string"
},
"currency": {
"type": "string"
},
"end_value": {
"type": "number"
},
"future_value": {
"type": "number"
},
"operation": {
"type": "string"
},
"present_value": {
"type": "number"
},
"rate": {
"type": "number"
},
"years": {
"type": "number"
}
},
"required": [
"operation"
],
"type": "object"
},
"name": "calc_compound_growth",
"outputSchema": null
},
{
"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": {
"properties": {
"amount": {
"type": "number"
},
"date": {
"type": "string"
},
"from_currency": {
"type": "string"
},
"live": {
"type": "boolean"
},
"to_currency": {
"type": "string"
}
},
"required": [
"amount",
"from_currency",
"to_currency"
],
"type": "object"
},
"name": "calc_currency_convert",
"outputSchema": null
},
{
"description": "COMPUTE. Asset depreciation schedule. method: straight_line | declining_balance | sum_of_years_digits.",
"inputSchema": {
"properties": {
"cost": {
"type": "number"
},
"currency": {
"type": "string"
},
"method": {
"type": "string"
},
"salvage_value": {
"type": "number"
},
"useful_life_years": {
"type": "integer"
}
},
"required": [
"method",
"cost",
"salvage_value",
"useful_life_years"
],
"type": "object"
},
"name": "calc_depreciation",
"outputSchema": null
},
{
"description": "COMPUTE. Internal Rate of Return: per-period rate where NPV=0 (Newton + bisection). Requires a sign change in cashflows.",
"inputSchema": {
"properties": {
"cashflows": {
"items": {
"type": "number"
},
"type": "array"
},
"guess": {
"type": "number"
}
},
"required": [
"cashflows"
],
"type": "object"
},
"name": "calc_irr",
"outputSchema": null
},
{
"description": "COMPUTE. List every supported metric with descriptions and required/optional params. No parameters.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "calc_list_metrics",
"outputSchema": null
},
{
"description": "COMPUTE. Level-payment loan: monthly payment, total interest, payoff, and (optional) full schedule.",
"inputSchema": {
"properties": {
"annual_rate": {
"type": "number"
},
"currency": {
"type": "string"
},
"extra_payment": {
"type": "number"
},
"include_schedule": {
"type": "boolean"
},
"principal": {
"type": "number"
},
"term_months": {
"type": "integer"
}
},
"required": [
"principal",
"annual_rate",
"term_months"
],
"type": "object"
},
"name": "calc_loan_amortization",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"currency": {
"type": "string"
},
"metric": {
"type": "string"
},
"params": {
"type": "object"
}
},
"required": [
"metric",
"params"
],
"type": "object"
},
"name": "calc_metric",
"outputSchema": null
},
{
"description": "COMPUTE. Net Present Value (discounted cash flow). NPV = sum(CF_t/(1+rate)^t); cashflows[0] is period 0 (usually the negative outlay).",
"inputSchema": {
"properties": {
"cashflows": {
"items": {
"type": "number"
},
"type": "array"
},
"currency": {
"type": "string"
},
"rate": {
"type": "number"
}
},
"required": [
"rate",
"cashflows"
],
"type": "object"
},
"name": "calc_npv",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"criteria": {
"type": "array"
},
"method": {
"type": "string"
},
"options": {
"type": "array"
},
"scores": {
"type": "object"
}
},
"required": [
"options",
"criteria",
"scores"
],
"type": "object"
},
"name": "decide",
"outputSchema": null
},
{
"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": {
"properties": {
"criteria": {
"type": "array"
},
"method": {
"type": "string"
},
"option_a": {
"type": "string"
},
"option_b": {
"type": "string"
},
"options": {
"type": "array"
},
"scores": {
"type": "object"
}
},
"required": [
"criteria",
"scores"
],
"type": "object"
},
"name": "decide_compare_two",
"outputSchema": null
},
{
"description": "DECIDE. List the scoring methods (weighted_sum, weighted_product, topsis) with normalization details and when to use each. No parameters.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "decide_list_methods",
"outputSchema": null
},
{
"description": "DECIDE. Return the full normalized scored matrix (per-option, per-criterion) + ranking when scores are supplied separately, without the winner narrative.",
"inputSchema": {
"properties": {
"criteria": {
"type": "array"
},
"method": {
"type": "string"
},
"options": {
"type": "array"
},
"scores": {
"type": "object"
}
},
"required": [
"options",
"criteria",
"scores"
],
"type": "object"
},
"name": "decide_score",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"criteria": {
"type": "array"
},
"method": {
"type": "string"
},
"options": {
"type": "array"
},
"scores": {
"type": "object"
},
"steps": {
"type": "integer"
},
"variation": {
"type": "number"
}
},
"required": [
"options",
"criteria",
"scores"
],
"type": "object"
},
"name": "decide_sensitivity",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"criteria": {
"items": {
"type": "object"
},
"type": "array"
},
"horizon": {
"type": "integer"
},
"inputs": {
"type": "object"
},
"method": {
"type": "string"
},
"options": {
"items": {
"type": "object"
},
"type": "array"
},
"period_label": {
"type": "string"
},
"template": {
"type": "string"
}
},
"required": [
"options",
"criteria"
],
"type": "object"
},
"name": "evaluate_options_with_scenarios",
"outputSchema": null
},
{
"description": "Aggregated health/status for the whole stack (all three engines + composites). No parameters.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "health_check",
"outputSchema": null
},
{
"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": {
"properties": {},
"type": "object"
},
"name": "list_capabilities",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"cashflow_metric": {
"type": "string"
},
"currency": {
"type": "string"
},
"horizon": {
"type": "integer"
},
"initial_investment": {
"type": "number"
},
"inputs": {
"type": "object"
},
"metrics": {
"items": {
"type": "object"
},
"type": "array"
},
"period_label": {
"type": "string"
},
"rate": {
"type": "number"
},
"template": {
"type": "string"
}
},
"required": [
"template",
"cashflow_metric",
"rate"
],
"type": "object"
},
"name": "plan_to_valuation",
"outputSchema": null
},
{
"description": "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'.",
"inputSchema": {
"properties": {
"bounds": {
"items": {
"type": "number"
},
"type": "array"
},
"horizon": {
"type": "integer"
},
"inputs": {
"type": "object"
},
"period_label": {
"type": "string"
},
"solve_for": {
"type": "string"
},
"target_metric": {
"type": "string"
},
"target_value": {
"type": "number"
},
"template": {
"type": "string"
}
},
"required": [
"template",
"solve_for",
"target_value"
],
"type": "object"
},
"name": "sim_break_even",
"outputSchema": null
},
{
"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": {
"properties": {
"compare_metric": {
"type": "string"
},
"goal": {
"type": "string"
},
"horizon": {
"type": "integer"
},
"include_projections": {
"type": "boolean"
},
"scenarios": {
"items": {
"type": "object"
},
"type": "array"
}
},
"required": [
"scenarios"
],
"type": "object"
},
"name": "sim_compare",
"outputSchema": null
},
{
"description": "SIMULATE. List every scenario template (inputs, defaults, outputs) plus the custom-model format and period labels. No parameters.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "sim_list_templates",
"outputSchema": null
},
{
"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": {
"properties": {
"horizon": {
"type": "integer"
},
"inputs": {
"type": "object"
},
"metrics": {
"items": {
"type": "object"
},
"type": "array"
},
"period_label": {
"type": "string"
},
"template": {
"type": "string"
}
},
"type": "object"
},
"name": "sim_run",
"outputSchema": null
},
{
"description": "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').",
"inputSchema": {
"properties": {
"horizon": {
"type": "integer"
},
"inputs": {
"type": "object"
},
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"period_label": {
"type": "string"
},
"steps": {
"type": "integer"
},
"target_metric": {
"type": "string"
},
"template": {
"type": "string"
},
"values": {
"items": {
"type": "number"
},
"type": "array"
},
"variable": {
"type": "string"
},
"variables": {
"items": {
"type": "object"
},
"type": "array"
},
"variation": {
"type": "number"
}
},
"required": [
"template"
],
"type": "object"
},
"name": "sim_sensitivity",
"outputSchema": null
},
{
"description": "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}.",
"inputSchema": {
"properties": {
"criteria": {
"items": {
"type": "object"
},
"type": "array"
},
"horizon": {
"type": "integer"
},
"inputs": {
"type": "object"
},
"method": {
"type": "string"
},
"options": {
"items": {
"type": "object"
},
"type": "array"
},
"period_label": {
"type": "string"
},
"stress": {
"type": "object"
},
"template": {
"type": "string"
}
},
"required": [
"options",
"criteria",
"stress"
],
"type": "object"
},
"name": "stress_test_decision",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:78abd7329fbe52044c035849909d2467e07be93302789de8e701c7a9b3ec68fb | sha256sum