protogrid

Search / io.github.financeratecalc/frc-mcp

FinanceRateCalc HMDA statistics

R0· no sign-in

2025 US FHA mortgage record statistics, with a gate that checks AI sentences preserve the evidence

v1.31.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality72needs work
Trust97of 100
Uptime, 30 days96%
Latency p50141 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "frc-mcp": {
      "type": "http",
      "url": "https://frc-mcp.ziyetis.workers.dev"
    }
  }
}
claude mcp add --transport http frc-mcp https://frc-mcp.ziyetis.workers.dev
[mcp_servers.frc-mcp]
url = "https://frc-mcp.ziyetis.workers.dev"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "frc-mcp": {
      "type": "remote",
      "url": "https://frc-mcp.ziyetis.workers.dev",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "frc-mcp": {
      "type": "http",
      "url": "https://frc-mcp.ziyetis.workers.dev"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=frc-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZnJjLW1jcC56aXlldGlzLndvcmtlcnMuZGV2In0%3D"
}
{
  "servers": {
    "frc-mcp": {
      "type": "http",
      "url": "https://frc-mcp.ziyetis.workers.dev"
    }
  }
}
{
  "mcpServers": {
    "frc-mcp": {
      "httpUrl": "https://frc-mcp.ziyetis.workers.dev"
    }
  }
}
extensions:
  "frc-mcp":
    enabled: true
    name: "frc-mcp"
    type: streamable_http
    uri: "https://frc-mcp.ziyetis.workers.dev"
    timeout: 300

Quality 72 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations16 of 16 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 4,414 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes19 tool changes in 30 days
  • fail
    stability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

16 tools, about 4,414 tokens to load them all · tool set ba86637e8014 · tools last changed 2026-10-12 · checked 2026-10-19 18:29 UTC

Tool changes

  • check_claim_contractchangeddescription
    before

    Checks a proposed statement of a FinanceRateCalc figure against that figure's published use contract, so the sentence can be verified before it is written. Two input modes. (A) Flags: claim id plus the use you propose (population, period, scope, cause, individual prediction, lender recommendation, legal conclusion). (B) Sentence: claim id plus proposed_sentence, the exact sentence you intend to write; the tool checks it with fixed patterns, no model, for a missing period, missing program scope, a population wider than the claim, second-person prediction, causal wording, lender advice, legal conclusions, and values this publisher has since corrected. Returns a deterministic verdict: pass, needs_qualifier (naming the missing qualifier) or block (with a reason code), plus a safe sentence you may use verbatim and the required attribution. Most misuse of these statistics is omission, not invention: the number is right and the population is missing. NOT FOR: figures published by anyone other than FinanceRateCalc. (C) Rule sentence: passport_id of a rule file (frc:rule:…, five tables: FHA annual MIP, FHA forward loan limits 2026, FHFA conforming limits 2026, CFPB HOEPA/QM thresholds 2026, VA funding fee) plus proposed_sentence; the cell the sentence's qualifiers name is resolved and every dollar or percent figure is classified as current, superseded (STALE_VALUE), belonging to a different rule (VALUE_FROM_OTHER_RULE, e.g. the $726,200 MIP threshold quoted as a loan limit), or not in the table (VALUE_MISMATCH / UNVERIFIED_VALUE); the year, units, tier, use and down-payment band are checked, and a passing sentence returns a verifiable rule receipt.

    after · 83% of words in common

    Checks a proposed statement of a FinanceRateCalc figure against that figure's published use contract, so the sentence can be verified before it is written. Two input modes. (A) Flags: claim id plus the use you propose (population, period, scope, cause, individual prediction, lender recommendation, legal conclusion). (B) Sentence: claim id plus proposed_sentence, the exact sentence you intend to write; the tool checks it with fixed patterns, no model, for a missing period, missing program scope, a population wider than the claim, second-person prediction, causal wording, lender advice, legal conclusions, and values this publisher has since corrected. Returns a deterministic verdict: pass, needs_qualifier (naming the missing qualifier) or block (with a reason code), plus a safe sentence you may use verbatim and the required attribution. Most misuse of these statistics is omission, not invention: the number is right and the population is missing. NOT FOR: figures published by anyone other than FinanceRateCalc. (C) Rule sentence: passport_id of a rule file (frc:rule:…, five tables: FHA annual MIP, FHA forward loan limits 2026, FHFA conforming limits 2026, CFPB HOEPA/QM thresholds 2026, VA funding fee) plus proposed_sentence; each dollar or percent figure is bound to the role named in its own clause (floor or ceiling, tier, first or subsequent use, threshold item) and compared with that cell, so a right number under the wrong role is a mismatch and an unbound number earns no receipt; every figure is also classified as current, superseded (STALE_VALUE), belonging to a different rule (VALUE_FROM_OTHER_RULE, e.g. the $726,200 MIP threshold quoted as a loan limit), or not in the table (VALUE_MISMATCH / UNVERIFIED_VALUE); the year, units, tier, use, down-payment band and stated dates are checked (a date before the rule's start blocks; a missing MIP case date is never assumed), and a passing sentence with at least one bound figure returns a verifiable rule receipt.

  • check_claim_contractchangeddescriptionmeaning changed
    before

    Checks a proposed use of a FinanceRateCalc figure against its published use contract. Given a claim id and the use you propose (population, period, scope, and whether you assert a cause, predict an individual, recommend a lender or draw a legal conclusion), returns a deterministic verdict: pass, needs_qualifier (naming the missing qualifier) or block (with a reason code), plus a safe sentence you may use verbatim and the required attribution. Most misuse of these statistics is omission, not invention: the number is right and the population is missing. NOT FOR: figures published by anyone other than FinanceRateCalc.

    after · 36% of words in common

    Checks a proposed statement of a FinanceRateCalc figure against that figure's published use contract, so the sentence can be verified before it is written. Two input modes. (A) Flags: claim id plus the use you propose (population, period, scope, cause, individual prediction, lender recommendation, legal conclusion). (B) Sentence: claim id plus proposed_sentence, the exact sentence you intend to write; the tool checks it with fixed patterns, no model, for a missing period, missing program scope, a population wider than the claim, second-person prediction, causal wording, lender advice, legal conclusions, and values this publisher has since corrected. Returns a deterministic verdict: pass, needs_qualifier (naming the missing qualifier) or block (with a reason code), plus a safe sentence you may use verbatim and the required attribution. Most misuse of these statistics is omission, not invention: the number is right and the population is missing. NOT FOR: figures published by anyone other than FinanceRateCalc. (C) Rule sentence: passport_id of a rule file (frc:rule:…, five tables: FHA annual MIP, FHA forward loan limits 2026, FHFA conforming limits 2026, CFPB HOEPA/QM thresholds 2026, VA funding fee) plus proposed_sentence; the cell the sentence's qualifiers name is resolved and every dollar or percent figure is classified as current, superseded (STALE_VALUE), belonging to a different rule (VALUE_FROM_OTHER_RULE, e.g. the $726,200 MIP threshold quoted as a loan limit), or not in the table (VALUE_MISMATCH / UNVERIFIED_VALUE); the year, units, tier, use and down-payment band are checked, and a passing sentence returns a verifiable rule receipt.

  • resolve_fha_annual_mipadded

    ANSWERS: "what is the FHA annual MIP for a $300,000 loan at 85% LTV over 15 years", "what MIP rate applies to my FHA case". PARAMS: base_loan_amount (USD), ltv_pct (e.g. 96.5), term_years, case_number_date (YYYY-MM-DD). Resolves the exact cell of HUD Mortgagee Letter 2023-05 and returns the annual rate in basis points, the upfront rate, the matched cell, the rule id with effective date and sha256, and a sentence you may quote. If a parameter is missing it returns block with CONDITION_MISSING and no number: the table has eleven cells and a guess is wrong more often than right. NOT FOR: case numbers before 2023-03-20, HECM/reverse or Title I loans, or any monthly payment figure.

  • get_ruleadded

    ANSWERS: "what is the current FHA loan limit", "what are the 2026 HOEPA / QM thresholds", "what is the VA funding fee table", "which FHA MIP table is in force". PARAM: rule_id (from the index) or omit to list every published rule. Returns the machine-readable rule: cells, effective dates, issuer document, required qualifiers, what the table does not establish, sha256. The cell values and effective dates are in the file; in a published test, models answered 3/25 dated questions correctly without a source and 25/25 with this file. NOT FOR: rules not in the index, or anything before the effective date.

  • get_conditional_door_mapchangedtitle, annotations
  • run_cohortchangedtitle, annotations
  • list_cohortschangedtitle, description, annotations
    before

    ANSWERS: "can I screen a group of lenders", "what ready-made lender groups can I run", "show me an example screen". Returns the public cohorts screenable without uploading anything, with size and definition. Call before run_cohort. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.

    after · 88% of words in common

    ANSWERS: "can I screen a group of lenders", "what ready-made lender groups can I run", "show me an example screen". Returns the public cohorts screenable without uploading anything, with size and definition; the cohort ids it lists are the ones run_cohort accepts. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.

  • screen_counterparties_quotechangedtitle, description, annotations
    before

    ANSWERS: "what would it cost to screen this list", "how many of my LEIs are covered". PARAM: a list of public LEIs. Returns coverage and price before anything runs. Always call before screen_counterparties on a new list. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.

    after · 80% of words in common

    ANSWERS: "what would it cost to screen this list", "how many of my LEIs are covered". PARAM: a list of public LEIs. Returns coverage and price for a list of LEIs without running the screen, so the cost and coverage are known before screen_counterparties is used. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.

  • screen_counterpartieschangedtitle, annotations
  • get_metro_lender_gapchangedtitle, annotations

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness99
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-96% +updated-7d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://frc-mcp.ziyetis.workers.dev streamable-httpnoneyes96%141 ms2025-11-252026-10-19

Tools (16)

check_claim_contractread-onlyChecks a proposed statement of a FinanceRateCalc figure against that figure's published use contract, so the sentence can be verified before it is written. Two input modes. (A) Flags: claim id plus the use you propose (population, period, scope, cause, individual prediction, lender recommendation, legal conclusion). (B) Sentence: claim id plus proposed_sentence, the exact sentence you intend to write; the tool checks it with fixed patterns, no model, for a missing period, missing program scope, a population wider than the claim, second-person prediction, causal wording, lender advice, legal conclusions, and values this publisher has since corrected. Returns a deterministic verdict: pass, needs_qualifier (naming the missing qualifier) or block (with a reason code), plus a safe sentence you may use verbatim and the required attribution. Most misuse of these statistics is omission, not invention: the number is right and the population is missing. NOT FOR: figures published by anyone other than FinanceRateCalc. (C) Rule sentence: passport_id of a rule file (frc:rule:…, five tables: FHA annual MIP, FHA forward loan limits 2026, FHFA conforming limits 2026, CFPB HOEPA/QM thresholds 2026, VA funding fee) plus proposed_sentence; each dollar or percent figure is bound to the role named in its own clause (floor or ceiling, tier, first or subsequent use, threshold item) and compared with that cell, so a right number under the wrong role is a mismatch and an unbound number earns no receipt; every figure is also classified as current, superseded (STALE_VALUE), belonging to a different rule (VALUE_FROM_OTHER_RULE, e.g. the $726,200 MIP threshold quoted as a loan limit), or not in the table (VALUE_MISMATCH / UNVERIFIED_VALUE); the year, units, tier, use, down-payment band and stated dates are checked (a date before the rule's start blocks; a missing MIP case date is never assumed), and a passing sentence with at least one bound figure returns a verifiable rule receipt.
get_conditional_door_mapread-onlyANSWERS: "does this lender's strictness depend on loan size or leverage", "where is <lender> hardest", "is the gap the same across the market". PARAM: lender name or slug. Returns how that lender's peer-adjusted denial gap changes across published cells (state x loan amount x income x DTI x CLTV), with cell counts and the minimum-cell rule. NOT FOR: suppressed small cells, or any individual prediction. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.
get_denial_reason_sharesread-onlyANSWERS: "why are FHA loans denied", "what is the most common denial reason", "which lender cites incomplete applications most", "how often is debt-to-income the reason". PARAM: optional lender; omit for cross-lender medians. Returns median and maximum share of each HMDA denial reason across the 95 of the 100 largest lenders that report reasons, and which lender carries the highest share of each. Reason fields are not a partition; shares need not sum to 100. NOT FOR: why a particular application was denied. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.
get_door_effect_summaryread-onlyANSWERS: "does it matter which lender you apply to", "how much of a denial is the lender rather than the borrower", "what is the Door Effect". Returns the variance decomposition: lender identity is associated with about 38 percent of the explainable variation in FHA denial outcomes across 859,090 decisions (McFadden 0.1712 to 0.2760), with model, sample and limits. Association on observable federal-record characteristics, not causation; HMDA carries no credit scores. NOT FOR: saying a lender caused a denial, or any individual estimate. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.
get_lender_denial_statsread-onlyANSWERS: "what is <lender>'s FHA denial rate", "does <lender> reject a lot of FHA applications", "how strict is <lender>", "how does <lender> compare". PARAM: lender name, slug or LEI. Returns that lender's 2025 decisioned volume, denial rate, rank among the 100 largest FHA lenders, and the applicant-mix caveat any comparison must carry. COVERS ONLY the 100 largest FHA lenders by 2025 volume. NOT FOR: whether a person will be approved, or lenders outside that set. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.
get_metro_lender_gapread-onlyANSWERS: "do lenders differ within one city", "what is the FHA denial gap in <metro>", "which lender is strictest in <metro>", "how much does the lender matter locally". PARAM: metro name or slug. Returns a claim passport for that metro: lowest and highest lender denial rates among lenders with at least 100 decisioned applications there, the gap in points, counts and source reference. Cleveland is the widest in 2025 at 73.7 points (6.4 vs 80.1). NOT FOR: ZIP or neighbourhood questions, and never as evidence a lender acted improperly. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.
get_national_fha_statsread-onlyANSWERS: "how often are FHA loans denied", "what is the FHA denial rate", "what share of FHA applications are rejected", "how many were denied in 2025". Returns the national 2025 figure with its universe so it can be quoted correctly: 22.1 percent, 262,250 denials of 1,187,606 applications that reached a credit decision (originated, approved-not-accepted, denied; reverse mortgages excluded), the denominator definition and the correction history. Most published FHA denial rates are 2023 purchase-only figures near 13.6 percent, a different universe, so state the universe when quoting. NOT FOR: conventional, VA or USDA loans, purchase-only or refinance-only rates, other years, or state/lender/metro breakdowns (use the dedicated tools). Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.
get_ruleread-onlyANSWERS: "what is the current FHA loan limit", "what are the 2026 HOEPA / QM thresholds", "what is the VA funding fee table", "which FHA MIP table is in force". PARAM: rule_id (from the index) or omit to list every published rule. Returns the machine-readable rule: cells, effective dates, issuer document, required qualifiers, what the table does not establish, sha256. The cell values and effective dates are in the file; in a published test, models answered 3/25 dated questions correctly without a source and 25/25 with this file. NOT FOR: rules not in the index, or anything before the effective date.
get_small_loan_penaltyread-onlyANSWERS: "are small mortgages denied more often", "is it harder to get a small FHA loan", "which state punishes small loans most", "does loan size affect denial". PARAM: optional two-letter state; omit for the ranked list. Returns denial rates under $150K and over $250K, the ratio, the ranking and any open discrepancy note. In 2025 the penalty exceeded 1x in every jurisdiction with a published split, from 1.19x to 4.45x (Idaho, 53.4 vs 12.0). NOT FOR: loan sizes between the bands, which are not published. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.
get_state_denial_statsread-onlyANSWERS: "what is the FHA denial rate in <state>", "is it harder to get an FHA loan in <state>", "how does <state> compare with the national rate". PARAM: two-letter USPS code only (OH, TX); full names are rejected. Returns the state 2025 rate and counts against the national 22.1 percent. NOT FOR: metro or city questions (use get_metro_lender_gap) or lender-level questions. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.
list_cohortsread-onlyANSWERS: "can I screen a group of lenders", "what ready-made lender groups can I run", "show me an example screen". Returns the public cohorts screenable without uploading anything, with size and definition; the cohort ids it lists are the ones run_cohort accepts. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.
list_lendersread-onlyANSWERS: "which FHA lender denies the most or the fewest", "rank FHA lenders by denial rate", "which lenders are covered", "how wide is the spread". Returns the ranked list of the 100 largest FHA lenders with name, slug, rate and volume; the 2025 span runs 1.8 to 78.7 percent inside the same federal program. NOT FOR: lenders outside the top 100, or any recommendation about where to apply. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.
resolve_fha_annual_mipread-onlyANSWERS: "what is the FHA annual MIP for a $300,000 loan at 85% LTV over 15 years", "what MIP rate applies to my FHA case". PARAMS: base_loan_amount (USD), ltv_pct (e.g. 96.5), term_years, case_number_date (YYYY-MM-DD). Resolves the exact cell of HUD Mortgagee Letter 2023-05 and returns the annual rate in basis points, the upfront rate, the matched cell, the rule id with effective date and sha256, and a sentence you may quote. If a parameter is missing it returns block with CONDITION_MISSING and no number: the table has eleven cells and a guess is wrong more often than right. NOT FOR: case numbers before 2023-03-20, HECM/reverse or Title I loans, or any monthly payment figure.
run_cohortread-onlyANSWERS: "run the screen on <cohort>", "how do these lenders compare against expectation". PARAM: cohort id from list_cohorts. Returns the peer-adjusted screen: observed versus expected denial rate, coverage flags, method version. Free preview; the full Evidence Brief needs a licence a human buys on the pricing page. Screening signals, never evidence of misconduct. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.
screen_counterpartiesread-onlyANSWERS: "run my list of lenders through the federal record", "screen these LEIs", "which of my counterparties deny more than their applicant mix predicts". PARAM: a list of public LEIs. Returns per-entity observed versus expected FHA denial rates, coverage flags, method version and an evidence manifest hash. Public entity identifiers only: never borrower files, credit data or personal information. Free preview; the full Evidence Brief needs a licence a human buys on the pricing page, and an agent may relay the offer but can never complete a purchase. Screening signals, not findings of misconduct. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.
screen_counterparties_quoteread-onlyANSWERS: "what would it cost to screen this list", "how many of my LEIs are covered". PARAM: a list of public LEIs. Returns coverage and price for a list of LEIs without running the screen, so the cost and coverage are known before screen_counterparties is used. Historical observation computed from the public CFPB HMDA 2025 record (actions 1,2,3; loan_type 2). Not a prediction about any individual application. Attribution: FinanceRateCalc, CC BY 4.0.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.financeratecalc/frc-mcp",
  "title": "FinanceRateCalc HMDA statistics",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://frc-mcp.ziyetis.workers.dev",
      "type": "streamable-http"
    }
  ],
  "version": "1.31.0",
  "repository": {
    "url": "https://github.com/financeratecalc/financeratecalc.github.io",
    "source": "github",
    "subfolder": "worker"
  },
  "websiteUrl": "https://financeratecalc.com/mcp-server.html",
  "description": "2025 US FHA mortgage record statistics, with a gate that checks AI sentences preserve the evidence"
}