# FreeRateUpdate Mortgage & Home Equity Shopping

> Today's mortgage and home equity rates (HELOC, home equity loan, cash-out), lenders, start links.

- name: com.freerateupdate/mortgage-home-equity
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 89/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.freerateupdate%2Fmortgage-home-equity
- tools: https://api.protogrid.dev/v1/servers/com.freerateupdate%2Fmortgage-home-equity/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "mortgage-home-equity": {
      "type": "http",
      "url": "https://fru-api.freerateupdate.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-16d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (good)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 300000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 9 of 9 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,525 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 50 (weight 15)

- pass `stability.changes`: 3 tool changes in 30 days
- fail `stability.rug_pull`: 1 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 9, about 1,525 tokens to load them all
- tool set hash: 95bf847c0ed077fec163360b881b21e4
- tools last changed: 2026-10-19T20:19:34.628Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.freerateupdate/mortgage-home-equity.svg)](https://protogrid.dev/servers/com.freerateupdate/mortgage-home-equity)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-19 `get_nmls_standing` removed
  - 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.
- 2026-10-18 `get_lender_universe` changed (description, inputSchema) **meaning changed**
  - before: 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.
  - after: 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.
- 2026-10-18 `get_nmls_standing` added
  - 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.

Full history: https://api.protogrid.dev/v1/servers/com.freerateupdate%2Fmortgage-home-equity/changes

## Remotes

- https://fru-api.freerateupdate.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (9)

- `get_content_answer`: 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.
- `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.
- `get_home_values`: FreeRateUpdate first-party median home value from consumers who shopped rates with us (national, or one state), rolling 12-month window, refreshed monthly.
- `get_lender_score`: 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.
- `get_lender_universe`: 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.
- `get_mortgage_rates`: 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.
- `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.
- `get_reference_series`: Public reference time series FreeRateUpdate maintains (e.g. pmms_30yr_fixed, treasury_10yr_par), with license notes and observations.
- `get_start_link`: 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.
