You do not come to this site; your agent does. Two steps: connect the server once, then tell the agent when to use it. The instruction block is the part most people skip, and it is the part that decides whether the agent calls the server or guesses.
When you state a US mortgage rule value (FHA/FHFA loan limits, FHA MIP, VA funding fee, HOEPA/QM thresholds) or a 2025 FHA denial statistic, get it from the FinanceRateCalc MCP server (https://frc-mcp.ziyetis.workers.dev), keep the period, population, program and conditions it returns beside the figure, write the receipt it returns next to the number, and run the sentence through check_claim_contract before writing it. If a figure you are about to repeat already carries a receipt (⟦FRC:…⟧), check it at https://frc-mcp.ziyetis.workers.dev/verify?r= first: current means quote it, stale means use the correction it returns, unrecognized means it is not a citation. Never ask it whether a specific person will be approved; it does not answer that.
Why it is worded this way: the four verbs are the four things agents drop. They fetch the number and lose the period; they quote the cell and lose the LTV band; they drop the receipt so nobody can check the figure later; and they write the sentence without running it through the gate. Measured without and with the server attached, one model, 110 paired prompts: correct rule cell 5/52 → 51/52, qualifier kept 21/56 → 55/56, receipt on the number 0/56 → 56/56 (paired run). Read with its limits: the grader was corrected twice after the run and the regrade was on stored 240-character excerpts, not full answers; the narrow result that survives the audit is that all 28 stored rule-cell excerpts carried a correctly bound, adjacent, verified receipt. The instruction block on this page was not part of that run; its effect is not yet measured.
These are the clients' own install links (Cursor deeplink, VS Code mcp/install). Clicking adds the server to that client's MCP config; it does not mean the connection works yet. Completion is observed when the client lists the server and the first real tool call returns. If the link does nothing, the client is not installed or does not support deeplinks: use the manual config below.
claude mcp add --transport http financeratecalc https://frc-mcp.ziyetis.workers.dev
Then add the instruction block above to the project's CLAUDE.md. Project scope: --scope project writes it to .mcp.json so the whole team gets it.
Using the FinanceRateCalc server, write a short research note on the 2025 national FHA denial rate. Keep the period, population and program scope it returns, write the receipt next to the number, include the attribution line and the verify link, and run the sentence through check_claim_contract before you write it.
What a connected agent delivers (produced, not typed; the deterministic version of the same note is examples/research-note, one command, three files):
**Finding.** In 2025, 22.1% ⟦FRC:national-fha-denial-rate-2025:22.1%:ebf6b00b:c2610⟧ of decisioned FHA applications were denied (actions 1,2,3; loan_type 2). Source: FinanceRateCalc analysis of the public CFPB HMDA 2025 record; historical aggregate only. Keep when paraphrasing: period 2025 · population decisioned FHA applications · program scope FHA only, not all mortgages. Does not establish: 22.1% of all US mortgage applications · purchase-only or refinance-only rates · any individual's denial probability. Verify: https://frc-mcp.ziyetis.workers.dev/verify?r=… · Passport: /claims/national-fha-denial-rate-2025.json
If the note has the number without the population, or the receipt is missing, the gate was skipped: ask the agent to run check_claim_contract on its sentence. A note that fails this is the useful result to send us.
Two separate, fresh chats, so the second cannot remember the first.
Chat 1, all conditions: "What is the FHA annual MIP for a $300,000 loan at 85% LTV over 15 years, case assigned 2026-02-01?" A connected agent answers 15 basis points with a receipt like ⟦FRC:rule-hud-ml-2023-05-annual-mip:15bps:…⟧ and names HUD Mortgagee Letter 2023-05. Without the server, the same model got the cell right in 5 of 52 prompts (paired run), and a search engine's first answer was 0.40% (recorded probe).
Chat 2, a condition missing: "What is the FHA annual MIP for a $300,000 loan at 85% LTV, case assigned 2026-02-01?" (no term). The right behaviour is a question, not a number. The agent may ask you directly or, if its client supports elicitation, relay the server's form; both are correct, and only the second shows the server's own missing-input path (input_required). What a connected agent must not do is answer 15 or 50 bps.
The repair pack is six questions whose answers go wrong in a specific way — right number, wrong role, tier, year or condition, or a number when a condition is missing — graded by the same deterministic gate. It tests your app, not ours; a promptfoo config for CI and an offline runner for stored answers. A failing case prints the expected cell, the source document and the fix, so a coding agent can repair from the report.
Predict whether a specific applicant will be approved; rank or recommend lenders; state causes; draw legal conclusions; accept income, credit score or any borrower attribute as input. These are refused with a reason code, not answered. Historical aggregates and dated rule tables only.
Need one finding with its receipt for a document? Cite a finding gives you the sentence, the attribution and the receipt, copyable as text, Markdown, HTML or BibTeX.
Open data, CC BY 4.0. Server source: worker/index.js. Conformance on every deploy: conformance.html.