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
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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-httpWhat it can do
Tool inventory
Tools (9)
🟢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
Evidence