# Safe Rate

> US mortgage rate estimates, lender rankings and research, and US Treasury market data.

- name: com.saferate/saferate
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 100/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.saferate%2Fsaferate
- tools: https://api.protogrid.dev/v1/servers/com.saferate%2Fsaferate/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "saferate": {
      "type": "http",
      "url": "https://mcp.saferate.com/mcp"
    }
  }
}
```


## Trust

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

## Quality 100/100 (new)

### 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 3600000)

### 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`: 22 of 22 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 6,414 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

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

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 2 of the 7 days needed

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

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

- tools: 22, about 6,414 tokens to load them all
- tool set hash: d7b8ac9f5613384346c37cabffe14b29
- tools last changed: 2026-11-05T20:17:30.451Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.saferate/saferate.svg)](https://protogrid.dev/servers/com.saferate/saferate)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-05 `share_application` removed
  - Requires the shopper's Safe Rate sign-in (scope poppy:read). Does NOT share anything: sharing an application with a lender always takes the shopper's own click on saferate.com. Returns the link where the shopper reviews and shares it themselves.

Full history: https://api.protogrid.dev/v1/servers/com.saferate%2Fsaferate/changes

## Remotes

- https://mcp.saferate.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)
- https://mcp.saferate.com/mcp/account (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (22)

- `assess_property_context`: Assess hazard exposure and insurance conditions for a US location: FEMA National Risk Index score, flood-zone coverage and whether flood insurance is likely to be required for a mortgage, wildfire and earthquake exposure, and local insurance-market conditions. Describes the area, not a specific property.
- `fetch`: Fetch one Safe Rate published page by its document id. Returns plain text carrying its own as-of date, canonical URL, data license, and citation notice. Rate index pages are indicative and refreshed daily; they are not a quote for a specific borrower.
- `find_lenders_in_market`: List the lenders Safe Rate publishes rankings for in a metro area or a whole state, sliced by loan type OR by institution type. Rankings are derived from public federal HMDA filings; placement cannot be purchased. This is a starting list, not a recommendation for a specific borrower.
- `get_market_context`: Get local housing-market context for a US location: median home value with its national percentile, median rent, recent price appreciation, and historical mortgage activity from HMDA filings. Use this to answer whether a price or a market is typical.
- `get_my_application`: Requires the shopper's Safe Rate sign-in (scope poppy:read). Read the shopper's own Safe Rate Universal Application, the one application they build to share with the lenders they choose (building it is not applying for a loan): their loan scenario (price, down payment, ZIP, occupancy and so on), how far along it is, and its status. Identity details such as a Social Security number are never returned.
- `get_my_quotes`: Requires the shopper's Safe Rate sign-in (scope poppy:read). List the quote requests the shopper sent to lenders and the offers that came back (rate, APR, points, product). Offers from Safe Rate Mortgage stay hidden until the shopper accepts the affiliated business disclosure on saferate.com.
- `get_quote_estimate`: Get live mortgage rate estimates for any US location without collecting the borrower's name, email, or phone number. Rates are Safe Rate's non-binding estimates (never quotes; a lender's actual quote may differ), and include an estimate ID the borrower can use to track rate changes.
- `get_savings_bond_rates`: Get current and historical U.S. savings bond rates — the Series I composite, its fixed and inflation components, and Series EE rates by issue cohort — and optionally how many bonds the public holds and how many are being sold. An I bond's headline rate applies for six months only; the fixed component is the part that lasts.
- `get_share_link`: Requires the shopper's Safe Rate sign-in (scope poppy:read). Does NOT share anything: sharing an application with a lender always takes the shopper's own click on saferate.com. Returns the link where the shopper reviews and shares it themselves.
- `get_treasury_curve`: Get the U.S. Treasury yield curve for a single day: the fitted zero-coupon (spot) curve and, on request, the par curve, money-market curve, TIPS real curve, breakeven inflation, the prior trading day for day-over-day moves, and per-CUSIP yields. Omit the date for the most recent published day, which is what you want on a weekend or holiday. Treasury yields are not mortgage rates.
- `get_treasury_debt`: Get the U.S. federal debt from the monthly Treasury statement: debt held by the public, total public debt outstanding, and its composition, plus the STRIPS float on request. These two headline figures differ by trillions: debt held by the public excludes intragovernmental trust-fund holdings.
- `get_treasury_index`: Get Safe Rate's Treasury total-return indices — by maturity bucket, plus bills, TIPS, floating-rate and aggregate. Call with no code to list every index with its current level and discover the codes. These are TOTAL RETURN levels, not yields: a rising level usually means yields fell. Constructed by Safe Rate, not an official Treasury statistic.
- `get_treasury_rate_history`: Get a history of U.S. Treasury yields between two dates: the nominal zero curve, the short-end money-market curve, or the TIPS real curve, one row per trading day. Use this for 'how have rates moved' questions. Coverage starts 2008-09-02. Keep ranges tight — a decade is thousands of rows.
- `get_treasury_security`: Look up one Treasury security by CUSIP: its terms, price history, and analytics including duration, convexity, DV01 and key-rate durations, plus TIPS and floating-rate analytics where they apply, and the amount outstanding. Takes a CUSIP, not a description such as 'the current 10-year'.
- `list_treasury_securities`: List Treasury securities as at a date: which security is on-the-run for each tenor (this is how to resolve 'the current 10-year' to a CUSIP), the full outstanding and priced universe, or just the priced CUSIPs. Omit the date for the most recent day with prices.
- `price_treasury_security`: Convert between price and yield for a Treasury bill, note or bond. Supply exactly one side — a price or a yield (a discount rate for a bill) — and the other is returned, with accrued interest, dirty price and the investment rate as applicable. For a note or bond, a CUSIP looks the terms up instead of restating them.
- `research_lender`: Look up any US mortgage lender by name or NMLS ID: origination volume, approval and pull-through rates, product mix and geographic footprint, from federal HMDA data.
- `search`: Search Safe Rate's published pages: local mortgage-rate indexes by geography, lender profiles, lender rankings by market (optionally by loan type or institution type), and the ranking methodology. Returns document ids for those pages. These are published reference pages, not priced scenarios: they do not estimate a rate for a specific borrower.
- `start_my_application`: Requires the shopper's Safe Rate sign-in (scope poppy:write). Start building the shopper's Universal Application from a loan scenario. If they already have one, nothing changes and it is returned. Holds no personal information: no name, SSN or date of birth.
- `track_quote_estimate`: Check a previously created Safe Rate rate estimate by its estimate ID. Returns the original scenario, how rates have moved since the estimate was created, and current rates for the same scenario. No account or contact information required.
- `update_my_application`: Requires the shopper's Safe Rate sign-in (scope poppy:write). Change answers in the loan scenario of the shopper's Universal Application. Send only the fields that change: everything else keeps its saved value, and nothing is saved if the result would be invalid. Cannot share the application or record an SSN — those are the shopper's own click on saferate.com.
- `value_savings_bond`: Value a U.S. Series I or Series EE savings bond: what it is worth now, how it got there, and what the holder would actually receive. Bonds under five years old forfeit three months of interest on redemption, and bonds under twelve months cannot be redeemed at all, so the amount received can be less than the accrued value. The purchase date is the bond's issue date.
