FreeRateUpdate Mortgage & Home Equity Shopping

Today's mortgage and home equity rates, lender lookup, and a start link to get matched with lenders.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
79%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,429Tokens (tool definitions)
~636 BTypical response size
Moderate attention impact (1.12% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mortgage": {
      "url": "https://fru-api.freerateupdate.com/mcp"
    }
  }
}

Remote endpoints

https://fru-api.freerateupdate.com/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_mortgage_rates(purpose)

Today's As Low As rates from FreeRateUpdate: the best rates and APRs we can verify being offered by lenders and brokers in our network, exactly as freerateupdate.com publishes them, one per product (30, 20, 15 and 10 year fixed, FHA, VA, jumbo, ARMs, cash-out, HELOC and home equity loans). Each rate comes with the example scenario it was quoted for (state, ZIP, property value, loan amount, credit score), points, fees and APR. These are advertised rates, not a quote: to get the person their own offers, call get_start_link.

Input Schema

{
  "type": "object",
  "properties": {
    "purpose": {
      "type": "string",
      "enum": [
        "purchase",
        "refinance",
        "cash_out",
        "heloc",
        "home_equity"
      ],
      "description": "Optional: only this loan purpose"
    }
  },
  "additionalProperties": false
}
🟢get_heloc_rates

Today's As Low As rates for a home equity line of credit (HELOC) and a home equity loan, the same published revision as get_mortgage_rates, with each example scenario, including the existing first-mortgage balance and the combined loan-to-value it implies. Advertised rates, not a quote: to get the person their own offers, call get_start_link.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_start_link(product)

The link that starts a FreeRateUpdate request for one product, so lenders and brokers in our network can contact the person with their own rates and options. You can open it in the person's browser and fill in and submit the short form for them, using their own details, or give them the link.

Input Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string",
      "enum": [
        "refinance",
        "cash-out",
        "purchase",
        "heloc",
        "home-equity-loan"
      ],
      "description": "What the person wants"
    }
  },
  "required": [
    "product"
  ],
  "additionalProperties": false
}
🟢get_lender_score(nmls)

The FreeRateUpdate Score (0-100) for a verified, currently in-network lender by company NMLS id, with factor breakdown and methodology link. Companies without a published current Score are not found.

Input Schema

{
  "type": "object",
  "properties": {
    "nmls": {
      "type": "string",
      "pattern": "^[0-9]{1,25}$",
      "description": "Company NMLS id"
    }
  },
  "required": [
    "nmls"
  ],
  "additionalProperties": false
}
🟢get_network_rate_summary

Network-aggregate advertised-rate summary (min/avg APR + distinct-lender count per product bucket, min 5 lenders per bucket) from the latest fresh FreeRateUpdate rate snapshot. Aggregates only — no per-lender rates.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_home_values(state)

FreeRateUpdate first-party average rate-shopper home values (national, or one state), rolling 12-month window, refreshed monthly.

Input Schema

{
  "type": "object",
  "properties": {
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Optional 2-letter state"
    }
  },
  "additionalProperties": false
}
🟢get_reference_series(series_key, limit)

Public reference time series FreeRateUpdate maintains (e.g. pmms_30yr_fixed, treasury_10yr_par), with license notes and observations.

Input Schema

{
  "type": "object",
  "properties": {
    "series_key": {
      "type": "string",
      "pattern": "^[a-z0-9_]+$"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 520,
      "description": "Most-recent N (default 52)"
    }
  },
  "required": [
    "series_key"
  ],
  "additionalProperties": false
}
🟢get_content_answer(slug, query)

Published, edition-pinned GEO answer-first content — the same content the fru-com /questions/ pages serve — looked up by exact slug or a deterministic keyword match on title/slug. Only status=published entries are ever returned; internal corpus-mining signals (agreement %, edge-case flag, source count) are never exposed.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9_-]+$",
      "description": "Exact public URL slug"
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Keyword search over title/slug"
    }
  },
  "additionalProperties": false
}
🟢get_lender_universe(q, state, active, limit)

Search FreeRateUpdate's lender universe: every company FRU has verified, including one that has only inquired and was never onboarded — exactly as published on freerateupdate.com. Verification is a property of every row, not a filter; nothing is excluded from the default result for being inactive or inquiry-only. Every row carries an `active` flag (true if currently active in the FreeRateUpdate network, false otherwise) plus a matching disclosure sentence. No internal ids, PII, or evidence hashes are exposed.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 191,
      "description": "Name / DBA alias / bank-name substring"
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Optional 2-letter state"
    },
    "active": {
      "type": "boolean",
      "description": "Optional filter on the active/not-active attribute only (never on verification): true = currently active in the network only; false = not currently active only. Omit to return both."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "description": "Default 25"
    }
  },
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools