Gated two-step chain for adverse action notice compliance. Step 1 builds the notice skeleton from SHAP-ranked principal-factor codes (Reg B §1002.9, CFPB Circulars 2022-03 and 2023-03, FCRA §615(a) rights). A §21.4 gate checks action_taken: if the application was approved, no notice is required and the chain exits immediately. For denied, counteroffer, or incomplete applications, Step 2 validates the built notice for completeness, prohibited vague codes, factor count, and FCRA disclosure requirements.
build_adverse_action_notice{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "build_adverse_action_notice",
"arguments": {
"action_taken": "denied",
"creditor_name": "Acme Bank",
"notice_date": "2026-07-04",
"factor_codes": [
{"rank": 1, "code": "08", "source": "fico", "shap_value": -0.42},
{"rank": 2, "code": "14", "source": "fico", "shap_value": -0.31},
{"rank": 3, "code": "23", "source": "fico", "shap_value": -0.18}
],
"credit_score_used": true,
"credit_score_value": 618,
"credit_score_model": "FICO Score 8",
"credit_score_range_min": 300,
"credit_score_range_max": 850
}
},
"id": 1
}
validate_adverse_action_notice{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "validate_adverse_action_notice",
"arguments": {
"action_taken": "denied",
"reason_code_source": "fico",
"reason_codes": ["08", "14", "23"],
"has_creditor_name": true,
"has_date": true,
"has_applicant_right_to_obtain_copy": true,
"has_ecoa_notice": true,
"credit_score_used": true,
"has_credit_score_disclosure": true
}
},
"id": 2
}
Copy this paragraph into Claude, OpenClaw, or any MCP-aware agent to run this whole workflow on the server and check one field that answers a real question.
Question: Our adverse action letter is drafted. Would it satisfy Reg B and the FCRA rules as written?
Run the AINumbers MCP tool `run_chain` with {"chain":"adverse-action-notice-compliance"} and read `art-227-validate-adverse-action-notice.compliant`.
Re-run with `inputs` for `art-227-validate-adverse-action-notice`, reusing the values that result echoed, with `notice_includes_fcra_rights` set to false. Compare the same field.
Verify: call `verify_execution_hash` (https://mcp.ainumbers.co/mcp) with `claimed_hash` set to `composite_execution_hash` and the full `composite_artifact`.
Ledger, for a human re-check: https://ledger.ainumbers.co/
PII rule: send synthetic or anonymised inputs only. The MCP server runs these kernels and logs no payloads.
Chain page: https://ainumbers.co/chaingraph/chains/adverse-action-notice-compliance.html