Borrowing it
Nothing to install: this file belongs to nlsnnvas/fi-lookup-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/nlsnnvas/fi-lookup-mcp/main/CLAUDE.mdgit clone --depth 1 https://github.com/nlsnnvas/fi-lookup-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/nlsnnvas/fi-lookup-mcp/claude-md)<a href="https://agentmods.dev/instructions/nlsnnvas/fi-lookup-mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/nlsnnvas/fi-lookup-mcp/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/nlsnnvas/fi-lookup-mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/nlsnnvas/fi-lookup-mcp/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.05121 | $0.05121 |
| Opus 5 | $0.02560 | $0.02560 |
| Sonnet 5 | $0.01024 | $0.01024 |
| Haiku 4.5 | $0.00512 | $0.00512 |
Grade A, and why
fi-lookup-mcp CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 117 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
What this is
A local MCP (Model Context Protocol) server built with FastMCP that exposes 11 tools over public US financial-institution regulatory data (FDIC, NCUA, FFIEC NIC). It resolves messy external records to canonical institutions, traces merger/acquisition lineage, and serves a regulatory change feed. This is a tool-use/reconciliation pattern — deterministic scoring and lookups against a pre-built snapshot — not RAG.
There is a small hermetic pytest suite in tests/ (pure-function + convention guards — no snapshot, network, or ZIPs required; run python -m pytest); test deps are in requirements-dev.txt and CI runs them via .github/workflows/ci.yml. No linter or build step is configured. Python 3.11 (.python-version pins 3.11.9), runtime deps in requirements.txt, venv in .venv/.
Commands
# Activate environment
source .venv/bin/activate
# Build / rebuild the data snapshot (fetches FDIC live, reads ZIPs, runs NIC enrichment).
# Required before first run. Takes 2-3 min on cold start.
python -c "import asyncio; from data_loader import build_snapshot; asyncio.run(build_snapshot())"
# Run the MCP server directly (stdio transport; lifespan builds the snapshot on startup)
python server.py
# Install into Claude Desktop
fastmcp install claude-desktop server.py --name "fi-lookup"
To exercise a single tool without Claude Desktop, import it from server.py and await it inside an asyncio.run, after calling build_snapshot() to populate the in-memory snapshot.
Architecture
server.py — FastMCP app + 11 @mcp.tool() definitions. lifespan() calls build_snapshot() on startup.
data_loader.py — FDIC API fetch, NCUA ZIP ingestion, FFIEC + SBA + website enrichment, the unified snapshot.
nic_loader.py — Parses FFIEC NIC bulk ZIPs (transformations, relationships, active+closed name lookup).
reconciler.py — Name normalization + confidence scoring for reconcile_institution.
sba_loader.py — Builds the SBA 7(a)/504 small-business-lender index (cache/sba_lenders.json).
business_classifier.py — Scrapes home URLs for advertised business/SMB accounts + business login portals.
web_app.py — Starlette local web dashboard (FI Explorer) over the snapshot + tools. No new deps.
division_loader.py — per-division coverage: scrapes each `trade_name_urls` entry (reuses business_classifier.scrape_one) → `cache/division_coverage.json`; `enrich_divisions` attaches a `divisions` list (per-division business/SMB/login/provider) to each record. Built by scrape_division_coverage.py — checkpointed + resumable (re-run skips cached URLs). **Name-only divisions:** NCUA publishes credit-union trade names with NO URL, so there's nothing to scrape — `_name_only_divisions` surfaces each CU brand as a division with `url=""`, `name_source="ncua"`, and every coverage field `None` (unknown). The dashboard renders these as "brand only · no home URL". `division_count` counts the attached `divisions` (URL divisions + name-only brands), not `trade_name_urls`.
audit_divisions.py — stress-tests every URL division (and its redirect target) against the quality rules (social / dup_parent / login / redirect_parent / error / unreachable) and exits non-zero on any leak. Re-run after a data refresh.
js_loader.py — **OPTIONAL** headless-Chromium (Playwright) tier for the high-value JS-rendered / blocked sites plain-HTTP can't read. Wraps Playwright in an httpx-response-shaped adapter so `scrape_one` is reused unchanged (only the fetch is swapped); writes into `cache/business_coverage.json`, tagging rendered entries `js: true`. Dep is in `requirements-js.txt` (NOT core; `playwright install chromium`) and imported lazily, so the project runs without it. Built by scrape_js_coverage.py — scoped to a deposit-ranked subset, checkpointed + resumable. Recovers JS-rendered sites (Citibank, Huntington) but NOT hard bot walls (PNC stays unreachable).
find_url_candidates.py — ranks likely corporate-URL institutions (large unreachable / zero-signal) to review for CONSUMER_DOMAIN_OVERRIDES.
refresh_sba.py / scrape_business_coverage.py — occasional (heavy) batch enrichers; build the caches the
above two modules read cheaply on every snapshot build.
cache/ — Local data snapshots, source ZIPs, and enrichment caches. NOT committed (see .gitignore).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 117 lines · 5,121 tokens per session scan A 54c48a73394d
fi-lookup-mcp CLAUDE.md is an instructions file published in the GitHub repository nlsnnvas/fi-lookup-mcp (0 stars, last pushed 2mo ago), licensed MIT. It adds 5,121 tokens to every session, about $0.0256 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
codex AGENTS.md
AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
spec-kit AGENTS.md
AGENTS.md instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.