{
  "version": 1,
  "generatedAt": "2026-06-28T04:42:43.115Z",
  "flows": [
    "shopping/comparison",
    "affordability",
    "refinance",
    "monitoring/alerts",
    "deposit/ALM"
  ],
  "count": 9,
  "capabilities": [
    {
      "id": "rate-shopping",
      "title": "Rate shopping & product comparison",
      "description": "Rank live credit-union mortgage offers for a borrower and return the best products with explanations.",
      "flow": "shopping/comparison",
      "tier": "Free",
      "route": {
        "method": "POST",
        "path": "/v1/decisions",
        "operationId": "createDecision"
      },
      "mcpTool": "compare_products",
      "inputs": [
        {
          "name": "state",
          "required": true,
          "unit": "2-letter state code"
        },
        {
          "name": "product_type",
          "required": true,
          "description": "e.g. 30-year-fixed, 15-year-fixed"
        },
        {
          "name": "loan_amount",
          "required": true,
          "unit": "USD"
        },
        {
          "name": "credit_score",
          "required": false,
          "unit": "FICO"
        },
        {
          "name": "down_payment",
          "required": false,
          "unit": "USD"
        }
      ]
    },
    {
      "id": "explain-ranking",
      "title": "Explain rate ranking",
      "description": "Explain why offers ranked the way they did for a given borrower scenario, factor by factor.",
      "flow": "shopping/comparison",
      "tier": "Free",
      "route": {
        "method": "POST",
        "path": "/v1/explain-ranking",
        "operationId": "explainRanking"
      },
      "mcpTool": "explain_ranking",
      "inputs": [
        {
          "name": "state",
          "required": true,
          "unit": "2-letter state code"
        },
        {
          "name": "product_type",
          "required": true,
          "description": "e.g. 30-year-fixed"
        },
        {
          "name": "loan_amount",
          "required": true,
          "unit": "USD"
        }
      ]
    },
    {
      "id": "affordability",
      "title": "Home affordability estimate",
      "description": "Compute max monthly payment, max loan amount, and max home price from income, debts, and DTI caps.",
      "flow": "affordability",
      "tier": "Free",
      "route": {
        "method": "POST",
        "path": "/v1/affordability",
        "operationId": "affordability"
      },
      "mcpTool": "estimate_affordability",
      "inputs": [
        {
          "name": "annual_income",
          "required": true,
          "unit": "USD/year"
        },
        {
          "name": "monthly_debts",
          "required": true,
          "unit": "USD/month"
        },
        {
          "name": "down_payment",
          "required": true,
          "unit": "USD"
        },
        {
          "name": "state",
          "required": false,
          "unit": "2-letter state code"
        },
        {
          "name": "credit_score",
          "required": false,
          "unit": "FICO"
        }
      ]
    },
    {
      "id": "max-loan",
      "title": "Maximum loan amount",
      "description": "Surface the affordability annuity engine to compute the largest loan a borrower qualifies for.",
      "flow": "affordability",
      "tier": "Free",
      "route": {
        "method": "POST",
        "path": "/v1/affordability",
        "operationId": "affordability"
      },
      "mcpTool": "max_loan",
      "inputs": [
        {
          "name": "annual_income",
          "required": true,
          "unit": "USD/year"
        },
        {
          "name": "monthly_debts",
          "required": true,
          "unit": "USD/month"
        },
        {
          "name": "state",
          "required": false,
          "unit": "2-letter state code"
        }
      ]
    },
    {
      "id": "refinance-break-even",
      "title": "Refinance break-even",
      "description": "Given a current loan and refinance costs, compute break-even months and lifetime savings against live rates.",
      "flow": "refinance",
      "tier": "Free",
      "route": {
        "method": "POST",
        "path": "/v1/refinance-break-even",
        "operationId": "refinanceBreakEven"
      },
      "mcpTool": "refinance_break_even",
      "inputs": [
        {
          "name": "current_balance",
          "required": true,
          "unit": "USD"
        },
        {
          "name": "current_rate",
          "required": true,
          "unit": "annual %"
        },
        {
          "name": "state",
          "required": true,
          "unit": "2-letter state code"
        },
        {
          "name": "closing_costs",
          "required": false,
          "unit": "USD"
        }
      ]
    },
    {
      "id": "rate-monitoring",
      "title": "Rate monitoring",
      "description": "Create a monitor that watches rates for a market segment and fires webhooks/alerts on material changes.",
      "flow": "monitoring/alerts",
      "tier": "Free",
      "route": {
        "method": "POST",
        "path": "/v1/monitors",
        "operationId": "createMonitor"
      },
      "mcpTool": "create_monitor",
      "inputs": [
        {
          "name": "name",
          "required": true
        },
        {
          "name": "state",
          "required": true,
          "unit": "2-letter state code"
        },
        {
          "name": "product_type",
          "required": true,
          "description": "e.g. 30-year-fixed"
        },
        {
          "name": "webhook_url",
          "required": false,
          "unit": "https URL"
        }
      ]
    },
    {
      "id": "rate-alerts",
      "title": "Consumer rate alerts",
      "description": "Subscribe a consumer (double-opt-in email) to alerts when a target rate is reached in their market.",
      "flow": "monitoring/alerts",
      "tier": "Free",
      "route": {
        "method": "POST",
        "path": "/v1/alerts",
        "operationId": "rateAlerts"
      },
      "mcpTool": "subscribe_rate_alert",
      "inputs": [
        {
          "name": "email",
          "required": true
        },
        {
          "name": "state",
          "required": true,
          "unit": "2-letter state code"
        },
        {
          "name": "product_type",
          "required": true,
          "description": "e.g. 30-year-fixed"
        },
        {
          "name": "target_rate",
          "required": false,
          "unit": "annual %"
        }
      ]
    },
    {
      "id": "deposit-beta",
      "title": "Deposit beta (ALM)",
      "description": "Estimate deposit betas for treasury/ALM teams — how deposit pricing tracks the policy rate over time.",
      "flow": "deposit/ALM",
      "tier": "Free",
      "route": {
        "method": "POST",
        "path": "/v1/deposit-beta",
        "operationId": "getDepositBeta"
      },
      "mcpTool": "get_deposit_beta",
      "inputs": [
        {
          "name": "product",
          "required": false,
          "description": "Deposit product, e.g. savings, money-market, cd"
        },
        {
          "name": "state",
          "required": false,
          "unit": "2-letter state code"
        }
      ]
    },
    {
      "id": "deposit-benchmarks",
      "title": "Deposit benchmarks",
      "description": "Benchmark deposit rates (savings, money-market, CDs) across credit unions for ALM/treasury comparison.",
      "flow": "deposit/ALM",
      "tier": "Free",
      "route": {
        "method": "POST",
        "path": "/v1/deposit-rates",
        "operationId": "getDepositRates"
      },
      "mcpTool": "get_deposit_benchmarks",
      "inputs": [
        {
          "name": "product",
          "required": false,
          "description": "Deposit product, e.g. savings, money-market, cd"
        },
        {
          "name": "state",
          "required": false,
          "unit": "2-letter state code"
        }
      ]
    }
  ]
}