SwitchWize for AI

Verified financial intelligence for AI

Give agents live rates, savings-gap answers, card offer intelligence, and CD maturity rules through 15 read-only tools. Every response includes source, freshness, and attribution context.

Read-only by design
No API key required
Freshness on every response
Official sources where available

Useful before technical

Build answers people can act on

Savings gap

What is my bank costing me?

Compare a balance with current market rates and quantify the annual gap.

Best next move

Where is the strongest verified offer?

Surface current rates and card offers with timestamps and source links.

Maturity decision

What happens when my CD matures?

Explain rollover defaults, grace periods, and verified opt-out instructions.

Live playground

Ask a useful financial question

These examples call the same read-only tools available through our hosted MCP server. No account, API key, or financial credentials are required.

Choose a workflow

Tool call

get_bank_gap
{
  "name": "get_bank_gap",
  "arguments": {
    "bank": "Chase",
    "balance": 25000
  }
}

Results include freshness, attribution, and source metadata so an agent can explain where its answer came from.

Copy-paste prompts

Ask your agent one of these

Paste any of these into an agent connected to the hosted MCP endpoint or npm package above. Each maps to one or two of the 15 tools.

Compare the best current savings rates and tell me how fresh each observation is.

Estimate my annual loss from keeping $25,000 at Chase.

Which of my cards should I use for dining, groceries, and travel this week?

Show active transfer bonuses, but only make best-ever claims when enough history exists.

What happens if I let my CD renew automatically?

Connect in minutes

One endpoint, or one npm command

The hosted endpoint is the no-setup path: rate-limited, no secrets, works for anyone. The stdio package and Claude Desktop config below are for running against your own SwitchWize checkout.

Hosted MCP

Remote endpoint

https://www.switchwize.com/api/mcp

In Claude, open Settings → Connectors → Add custom connector, then paste this URL. Tool discovery and calls use the standard Streamable HTTP transport.

Local clients

Claude Desktop / stdio

{
  "mcpServers": {
    "switchwize": {
      "command": "npx",
      "args": ["-y", "switchwize-mcp"]
    }
  }
}

This runs the same tools against the database directly, so it needs its own DATABASE_URL (and optionally Upstash Redis credentials) in the environment it runs in. That makes it a fit for local development against your own SwitchWize checkout, not a plug-and-play path for an outside visitor. If you just want it working with no setup, use the hosted endpoint above instead.

Coding clients

Cursor

// .cursor/mcp.json
{
  "mcpServers": {
    "switchwize": {
      "url": "https://www.switchwize.com/api/mcp"
    }
  }
}

Cursor connects directly to the hosted Streamable HTTP endpoint, no npm install needed. Other MCP-aware coding clients (Windsurf, Cline) use the same config shape.

OpenAI Responses API

Call the remote server from an application

const response = await client.responses.create({
  model: "gpt-5",
  tools: [{
    type: "mcp",
    server_label: "switchwize",
    server_url: "https://www.switchwize.com/api/mcp",
    require_approval: "never",
    allowed_tools: ["get_bank_gap", "get_top_rates"]
  }],
  input: "What could $25,000 at Chase be missing each year?"
})

Need the raw data instead?

The MCP tools are built on the public endpoints below. Use the REST API, datasets, spreadsheet integrations, or embeds directly with attribution as “SwitchWize (switchwize.com).” Commercial use is subject to our terms.

Public rates API

Top live rates as JSON. Auth-free, CORS-open, edge-cached (~1 hour). Categories: savings, cds, money-market, checking, mortgage. Optional ?limit= (1–25, default 8). The same contract is also available at /savings.json, /cds.json, /money-market.json, /checking.json, and /mortgage.json.

GET https://www.switchwize.com/api/public/rates/savings?limit=5

{
  "schemaVersion": "2026-07-01",
  "id": "rates:savings",
  "category": "savings",
  "rate_type": "APY",
  "count": 5,
  "asOf": "2026-07-02T14:31:00.644Z",
  "generatedAt": "2026-07-02T14:58:28.955Z",
  "freshnessStatus": "fresh",
  "attribution": "SwitchWize (https://www.switchwize.com)",
  "attributionDetails": {
    "requiredText": "SwitchWize (switchwize.com)"
  },
  "sourceDetails": {
    "method": "verified_observations"
  },
  "rates": [
    { "rank": 1, "institution": "...", "product": "...", "rate": 4.40, "rate_type": "APY", "fdic_insured": true }
  ]
}

Google Sheets & Excel

Pull live rates straight into a spreadsheet instead of copying numbers by hand. Both approaches call the same rates API above, so they stay live on every refresh.

Excel & Power BI (Power Query)

Data tab → Get Data → From Other Sources → Blank Query, then open the Advanced Editor and paste:

let
    Source = Json.Document(Web.Contents("https://www.switchwize.com/api/public/rates/savings")),
    rates = Source[rates],
    Table1 = Table.FromRecords(rates)
in
    Table1

Swap savings for cds, money-market, checking, or mortgage. Set the query to refresh on open (Query Properties → Refresh data when opening the file) to keep it live.

Google Sheets (Apps Script)

Sheets’ built-in IMPORTDATA only reads flat CSV/TSV, not JSON, so this needs a short custom function instead. Extensions → Apps Script, paste this, save, then use =SWITCHWIZE_RATES("savings") in any cell:

function SWITCHWIZE_RATES(category, limit) {
  var url = "https://www.switchwize.com/api/public/rates/" + category + "?limit=" + (limit || 5);
  var data = JSON.parse(UrlFetchApp.fetch(url).getContentText());
  var rows = data.rates.map(function(r) {
    return [r.rank, r.institution, r.product, r.rate, r.rate_type];
  });
  return [["Rank", "Institution", "Product", "Rate", "Type"]].concat(rows);
}

Read-only data tools

Agent-callable helper tools expose the same public data contracts. Tools are read-only and return freshness, source, and attribution metadata.

GET https://www.switchwize.com/api/public/tools

POST https://www.switchwize.com/api/public/tools/get_top_rates
{ "category": "savings", "limit": 5 }

POST https://www.switchwize.com/api/public/tools/compare_switch_savings
{ "currentApy": 0.01, "balance": 25000 }

POST https://www.switchwize.com/api/public/tools/get_bank_gap_index
{}

POST https://www.switchwize.com/api/public/tools/get_reality_score
{ "card": "platinum-card", "segment": "small-business-owner" }

The same tools are also available as a hosted MCP (Model Context Protocol) server at https://www.switchwize.com/api/mcp — add it as a remote MCP server in any MCP-compatible client, no local setup required. For local clients, the repository also ships a stdio MCP server inpackages/mcp-server. Start it with npm run mcp:start and verify the protocol handshake with npm run mcp:smoke.

Embeddable widgets

Drop a live rate table or index figure into any page with an iframe. Widgets are self-contained and carry a backlink to SwitchWize.

<!-- Top rates table -->
<iframe src="https://www.switchwize.com/embed/rates/savings"
        width="440" height="320" style="border:0" loading="lazy"></iframe>

<!-- Index figure -->
<iframe src="https://www.switchwize.com/embed/indices/cd-spread"
        width="440" height="200" style="border:0" loading="lazy"></iframe>

<!-- Optional: auto-fit iframe heights to their content -->
<script>(function(){window.addEventListener("message",function(e){if(e.origin!=="https://www.switchwize.com")return;var d=e.data;if(!d||d.type!=="sw-embed-resize")return;var f=document.getElementsByTagName("iframe");for(var i=0;i<f.length;i++){if(f[i].contentWindow===e.source){f[i].style.height=d.height+"px";break;}}});})();</script>

Citable datasets

Dated monthly time series for each SwitchWize index, as machine-readable JSON with Dataset schema. JSON datasets include schemaVersion, asOf, freshnessStatus, and a series array.

Credit card data feeds

Current-state and event feeds for SwitchWize's tracked credit card catalog, refreshed hourly. Every row carries a real verification timestamp (verifiedAt or observedAt) and a sourceUrl.

Deposit and card decision data

What happens automatically at CD maturity, and which credit cards have a verified no-fee downgrade path — sourced directly from each institution's own disclosure, refreshed hourly. A field or card not listed has been checked and not confirmed, never assumed absent.

Rates are collected from official provider pages where available and cross-checked against trusted sources. Data is provided as-is for informational use; verify with the provider before acting. Questions: editorial@switchwize.com.