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
81%
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,762Tokens (tool definitions)
~620 BTypical response size
Moderate attention impact (1.38% 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 (10)

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

Today's mortgage and home equity 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: HELOC, home equity loan and cash-out refinance first, then 30, 20, 15 and 10 year fixed, FHA, VA, jumbo and ARMs. Each rate comes with the example scenario it was quoted for (state, ZIP, property value, loan amount, credit score), points, fees, APR and loan-to-value. 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": [
        "heloc",
        "home-equity-loan",
        "cash-out",
        "refinance",
        "purchase",
        "home-improvement"
      ],
      "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 median home value from consumers who shopped rates with us (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_nmls_standing(nmls)

What the NMLS registry reports for one company number that has a published FreeRateUpdate public lender page, exactly as FRU's registry mirror records it: company name, registration status and standing AS RECORDED (never interpreted) from the same registry edition, date formed and years in business, and the public page URL and states the page resolver publishes. Sources are the NMLS mirror tables only. found=false with a reason when there is no published page for the company, or no registry record. No pricing or rate comparison is returned.

Input Schema

{
  "type": "object",
  "properties": {
    "nmls": {
      "type": "string",
      "pattern": "^[0-9]{1,25}$",
      "description": "The company's NMLS number"
    }
  },
  "required": [
    "nmls"
  ],
  "additionalProperties": false
}
🟢get_lender_universe(q, state, limit)

Search FreeRateUpdate's published lender pages: every company the public page resolver publishes on freerateupdate.com/reviews/, and nothing else. A row shows only what that page shows: the display name, the company NMLS, the states the page shows (currently none: fru-com's licensing projection is off), and the page URL. No internal ids, aliases, crosswalks or status labels. Eligibility is decided before the limit: the limit never draws a company whose page is hidden, redirected away or rejected by the identity check back in. A returned match is evidence FRU holds the identity; absence from the list is not proof it does not. FRU never publishes which lender has the best rate. One row per company; a DBA brand page is the same company's row. count is the full deduplicated match count (one row per company), while rows return at most `limit` of them (25 by default, up to 200): a count above the rows returned means the response is truncated, so absence from one response is not absence.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 191,
      "description": "Name / DBA alias / bank-name substring (a matching key only; the row still shows only what the page shows)"
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Optional 2-letter state; matches the states the page shows (currently none, so this returns no rows until fru-com turns its licensing projection on)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "description": "Default 25"
    }
  },
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools