C4C: Mortgage Industry Regulations
by claudeforcompliance.com · remote · no sign-in to list tools · v1.0.2 · published by com.claudeforcompliance
Verbatim U.S. mortgage regulatory text with citations and effective dates. Read-only, no sign-in.
10 tools: 2 change things and 8 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads8Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http mortgage-regs https://mcp.claudeforcompliance.com/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnstart_playbook
The server marks "start_playbook" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "start_playbook" says "start": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
10 tools
Changes things 2Claude Code: ask
start_playbookReturns one playbook's full workflow instructions, its stages, the stage reference names and the rule-kit version: the Fannie Mae AI lender letter (LL-2026-04) P&P review, or FHA, …1 finding
Why it is in this group
- The name "start_playbook" says "start": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "start_playbook" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "start_playbook" says "start": a word for a change.
Description, as the server wrote it Returns one playbook's full workflow instructions, its stages, the stage reference names and the rule-kit version: the Fannie Mae AI lender letter (LL-2026-04) P&P review, or FHA, VA or USDA loan-file QC. Input: the playbook `id`; an unknown id returns `unknown_playbook` with `valid_ids`. Playbook tools accept only ids and reference names, no document text; the user's P&Ps and loan files stay in their own chat.
Annotations the server declares
- title: Start playbook
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
verify_quoteChecks whether a passage appears in a regulator's source document; accepts text from any source.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Checks whether a passage appears in a regulator's source document; accepts text from any source. Inputs: `text` (up to 5,000 words); optional `register_id` (without it, up to 3 candidate documents are located by search). `outcome` is one of: exact (contiguous in the source, quote marks and dashes as the source writes them; a line break counts as a space); normalized (matches after folding quote and dash typography, `typography_folded`; ignoring page footers or running heads, `furniture_ignored`; spacing where the stored source splits or joins words, `spacing_ignored`; or added list markers, `list_markers_ignored`); composed (every word is in the source, in source order, but from non-contiguous pieces, as with an overview or an ellipsis; `omissions` lists the short source phrases skipped between pieces); not_found (no source support; `unsupported` lists the unsupported spans, and on a near miss `differences` gives the closest source text, the source words the text lacks and the words it adds); not_checked (over 5,000 words). `coverage` is the share of words found. `checked_against` names the documents checked (document, edition, retrieval date; ids in `checked_snapshot_ids`); `matched_against` names the one matched, `matched_register_id` / `matched_obligation_id` the stored text containing the passage. `matched_version` is current; superseded (the text is a prior version of the rule; `superseded_by` is the current register); or update-18-optional (HUD's Update 18 revision of an FHA 4000.1 section, optional until `mandatory_date`; `in_force_obligation_id` is the text in force by default). `obligation_currency` lists currency signals on the obligation holding the text (e.g. superseded-in-part). `rescinded: true` (with `rescinded_by`) means the passage is text a later issuance removed or replaced.
Annotations the server declares
- title: Verify quote
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 8Claude Code: allow
find_in_sectionReturns only the verbatim paragraphs of one obligation (section) that contain the given terms.No findings
Why it is in this group
- The name "find_in_section" says "find": a word for reading.
Description, as the server wrote it Returns only the verbatim paragraphs of one obligation (section) that contain the given terms. Inputs: `obligation_id`; `terms`, 1-6 short words or phrases ("cash-out", "credit score", "LTV"; abbreviations are expanded; numbers match as words or digits, so "five years" finds "five (5) years"); optional `max_passages`. Each passage has `verbatim` (the regulator's exact text), `offset` (its position in the section's text), `canonical_citation` (the pinpoint cite, where derivable) and `heading_path` (every heading above it, e.g. "vi. No Cash-Out Refinances > (A) Rate and Term > (i) Standard"). A match inside a table returns the whole table (`table: true`; `table_layout: "flattened"` when the source lost its layout and cells may not line up). A passage ending in a colon includes the list it introduces (`list_included: true`). `truncated` means more passages matched than were returned. No passages means no paragraph contains the terms as given; it is not a statement about the rule. `currency` is null or a version/status signal (dual-version, pending, revision-pending, superseded, expired...). On an FHA section HUD's Update 18 revises, `version` ("in-force" or "update-18-optional") says which text this is and `other_version` identifies the other.
Annotations the server declares
- title: Find in section
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_obligationReturns one obligation's (section's) verbatim regulator text with provenance.No findings
Why it is in this group
- The name "get_obligation" says "get": a word for reading.
Description, as the server wrote it Returns one obligation's (section's) verbatim regulator text with provenance. Inputs: `obligation_id`; optional `offset`, `limit`, `compare_versions`. `verbatim` holds the text between <<<BEGIN VERBATIM>>> and <<<END VERBATIM>>>. `canonical_citation` is the section's citation in the regulator's style (e.g. "4000.1 II.A.5.d", "B3-3.3-07", "38 U.S.C. 3709(b)"), or null. Paging: at most 24,000 chars per response; `chars_offset` + `chars_returned` is the position within `chars_total`; `next_offset` is the offset of the next page, or null when the section ends in this response; `truncated` means more text follows; `started_mid_section` means text before `chars_offset` is not included; `paging` gives page N of M. `currency` is null or a version/status signal (dual-version, pending, revision-pending, superseded, expired...) with a one-line `headline`. An FHA 4000.1 section HUD's Update 18 revises has two obligations, the in-force text and the revision (`<id>::update-18`); `version` says which this is and `other_version` identifies the other. `compare_versions: true` adds `version_changes`, the sentences Update 18 deletes and adds. `figures` is a best-effort extraction of figures in the text; an empty or incomplete list is not evidence that the text states no figure. `canonical_id`, when set, is the register this one is a same-text copy of.
Annotations the server declares
- title: Get obligation
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_playbook_kitReturns a playbook's rule kit.No findings
Why it is in this group
- The name "get_playbook_kit" says "get": a word for reading.
Description, as the server wrote it Returns a playbook's rule kit. FNMA AI lender letter: the verbatim LL-2026-04, InfoSec Supplement and ECOA/Reg B/FCRA/AVM rows with citations, paginated; `next_offset` is the next page's offset, or null when the kit is complete. FHA/VA/USDA QC: the corpus registers each check area is grounded in. The kit block's fingerprint and dates identify its version. Playbook tools accept only ids and reference names, no document text; the user's P&Ps and loan files stay in their own chat.
Annotations the server declares
- title: Get playbook kit
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_playbook_referenceReturns one stage reference document of a playbook (e.g.No findings
Why it is in this group
- The name "get_playbook_reference" says "get": a word for reading.
Description, as the server wrote it Returns one stage reference document of a playbook (e.g. the FNMA playbook's DISCOVERY, RECONCILE, SYNTHESIS, PP-UPDATE, CHANGELOG or UPDATING stage). Inputs: `id`, `name` (one of the playbook's `references`). Playbook tools accept only ids and reference names, no document text; the user's P&Ps and loan files stay in their own chat.
Annotations the server declares
- title: Get playbook reference
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_regReturns a manifest of one register (source document): its provenance, `currency` (null or a version/status signal: dual-version, pending revision, superseded, expired...) and its o…No findings
Why it is in this group
- The name "get_reg" says "get": a word for reading.
Description, as the server wrote it Returns a manifest of one register (source document): its provenance, `currency` (null or a version/status signal: dual-version, pending revision, superseded, expired...) and its obligations (sections), each with `obligation_id`, section, `canonical_citation`, `chars_total` and `will_truncate` (true when the section exceeds one 24,000-char page). The manifest contains no regulator text. A dual-version section lists both obligations, each with `version` ("in-force" or "update-18-optional") and `other_version`.
Annotations the server declares
- title: Get regulation
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_playbooksLists the guided compliance playbooks this server provides: the Fannie Mae AI lender letter (LL-2026-04) P&P review (AI inventory, AI governance policy, risk assessment, P&P update…No findings
Why it is in this group
- The name "list_playbooks" says "list": a word for reading.
Description, as the server wrote it Lists the guided compliance playbooks this server provides: the Fannie Mae AI lender letter (LL-2026-04) P&P review (AI inventory, AI governance policy, risk assessment, P&P updates, change log) and FHA, VA and USDA loan-file QC against the verbatim handbooks. Returns each playbook's id, what it does, when it applies and what the user provides. Playbook tools accept only ids and reference names, no document text; the user's P&Ps and loan files stay in their own chat.
Annotations the server declares
- title: List playbooks
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
lookup_citationResolves a regulatory citation (e.g.No findings
Why it is in this group
- The name "lookup_citation" says "lookup": a word for reading.
Description, as the server wrote it Resolves a regulatory citation (e.g. '4000.1 II.A.8.d', 'B3-4.3-04', 'Freddie Mac Guide 5306.1', '38 U.S.C. 3737', 'M26-7 Chapter 4 Topic 9', 'SBA Notice 5000-872764', 'SOP 50 10 8 B.Ch1.A.2', 'HB-1-3555 11.3') to a `register_id`. Errors: `not_found` (the cite parses but is not in the corpus; `parsed` shows the parse), `ambiguous` (it could mean several registers, listed in `candidates`; no guess is made), `unparsed` (not recognizable as a citation). Near matches are not suggested. A handbook section resolves to the handbook's own register; documents that cite or amend it (e.g. Mortgagee Letters) are listed in `related` and are not the section's text. Identical copies of a section resolve to one register and are listed in `also_at`. A whole-handbook name returns `handbook`, an outline of its parts. A section the regulator renumbered returns `kind` "renumbered": `register_id` is the section under its new number, `renumbered_from` the old register, and no text is given under the old number.
Annotations the server declares
- title: Look up citation
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_regsFull-text search of US mortgage regulator text (Fannie Mae, Freddie Mac, FHA, VA, USDA, Ginnie Mae, SBA, CFPB).No findings
Why it is in this group
- The name "search_regs" says "search": a word for reading.
Description, as the server wrote it Full-text search of US mortgage regulator text (Fannie Mae, Freddie Mac, FHA, VA, USDA, Ginnie Mae, SBA, CFPB). Inputs: `query`; optional `family` (one agency), `limit` (1-25), `currency_kind` (only sections carrying that currency signal; "any" = any signal). Common abbreviations (DTI, LTV, IRRRL, W-2, VOE, PITI, BK...) are expanded to the regulator's terms. Each result is one section: title, `obligation_id`, `canonical_citation` (the citation in the regulator's style, or null) and `excerpt`, a verbatim fragment near the match, not the whole rule. `match` is "all_terms" or "partial"; a partial result lists the query words it lacks in `missing_terms`. Order: `rank_score`, highest first = text score (title-weighted) x term coverage x title fit, with superseded, pending, incorporated or expired text x0.2, a special program's section (`special_program`: Home Possible, HomeReady, 203(k), HECM...) x0.5 unless the query names the program, and `obligation_type` "note" (source-credit notes) or "index" (a chapter heading) x0.2 unless the query asks for them. `section_status` "deleted" marks a deleted-section stub, ranked last. A query that is a citation returns the cited section first and sets `cited`; a bare handbook name ("HUD 4000.1") adds `handbook`, an outline of its parts. `currency` is null or a version/status signal whose kinds include dual-version, pending, revision-pending, superseded, superseded-in-part (a Mortgagee Letter replaced some provisions, named in `headline`), modified-by (a later issuance changes it, optional until its mandatory date) and expired. `version` "in-force" or "update-18-optional" marks the two texts of an FHA section HUD's Update 18 revises (`mandatory_date` for the revision); `other_version` is the other text's obligation_id. Empty results carry `reason` (empty_query, no_match, no_match_above_threshold) and may carry `guidance` naming shorthand in the query.
Annotations the server declares
- title: Search regulations
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.2. Values in angle brackets are yours to fill in.
claude mcp add --transport http mortgage-regs https://mcp.claudeforcompliance.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__mortgage-regs__get_obligation",
"mcp__mortgage-regs__get_reg",
"mcp__mortgage-regs__lookup_citation",
"mcp__mortgage-regs__search_regs",
"mcp__mortgage-regs__find_in_section",
"mcp__mortgage-regs__list_playbooks",
"mcp__mortgage-regs__get_playbook_reference",
"mcp__mortgage-regs__get_playbook_kit"
],
"ask": [
"mcp__mortgage-regs__verify_quote",
"mcp__mortgage-regs__start_playbook"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as mortgage-regs. Review it before you use it.