{"name":"vault-mcp","version":"1.20.0","description":"Vault MCP — banking intelligence for AI agents. Built by iDENTIFY.","protocol":"mcp","protocol_version":"2024-11-05","endpoint":"https://vaultbot.ai/.netlify/functions/mcp","tools":[{"name":"search_institutions","description":"Search FDIC-insured banks and credit unions by name, city, or partial match. Returns up to 20 results ranked by relevance and asset size. Typically responds in 2-4 seconds. Use this first to get a CERT number before calling other tools."},{"name":"get_bank_profile","description":"Get detailed profile for a single FDIC-insured bank by certificate number (CERT). Returns institution details, latest financials (assets, deposits, ROA, ROE, NIM, capital ratio), and 8 quarters of historical data. Typically responds in 3-6 seconds — two FDIC API calls run in parallel. Note: always run search_institutions first to get the CERT."},{"name":"get_industry_metrics","description":"Get aggregate U.S. banking industry metrics — total banks, total assets, average ROA/ROE/NIM, and trends. Note: this tool scans up to 5,000 bank records and typically takes 8-15 seconds. Let the user know it may take a moment before calling. If using Perplexity, this tool will likely time out — recommend using Claude Desktop for industry-level queries."},{"name":"get_recent_charters","description":"List newly chartered FDIC-insured banks (de novo banks). Returns bank name, location, charter date, charter agent, asset size, and holding company. Typically responds in 2-4 seconds."},{"name":"get_ma_activity","description":"List recent bank mergers, acquisitions, and failures from FDIC regulatory filings. Returns acquirer, acquired institution, effective date, and transaction type. Typically responds in 2-4 seconds."},{"name":"get_lender_rankings","description":"Get banks ranked by composite Lending Score (loan concentration + capital strength + asset quality + ROA). Filter by state, city, or asset size tier. Typically responds in 4-8 seconds — fetches and scores up to 100 institutions. Let the user know it may take a moment before calling. Note: if using Perplexity, this tool may time out on broad queries — narrow by state or city for best results."},{"name":"get_asset_quality_detail","description":"Get detailed credit quality breakdown for a specific bank: noncurrent loans, OREO (foreclosed real estate), loan loss reserves, net charge-offs, and key ratios. Returns up to 8 quarters of history. Typically responds in 3-6 seconds. Use to answer \"is this bank having credit problems?\" or assess reserve adequacy."},{"name":"get_loan_mix","description":"Get loan portfolio composition for a specific bank: Real Estate (residential, commercial RE, construction), C&I, Agricultural, and Consumer. Returns dollar amounts and % of total loans. Typically responds in 3-6 seconds. Use to understand lending strategy or CRE concentration risk."},{"name":"get_brokered_deposits","description":"Get brokered deposit levels and funding-risk detail for a specific bank: dollar amount, percent of total deposits, and trend over up to 8 quarters. Brokered deposits (funds a bank buys from a broker rather than gathering from local depositors) are a widely-watched funding-risk indicator — high or fast-growing levels can signal liquidity stress or an aggressive growth strategy funded by less-stable \"hot money.\" Typically responds in 3-6 seconds. Use to answer \"how reliant is this bank on brokered funding?\" or assess deposit funding quality."},{"name":"get_branch_data","description":"Get branch-level location and deposit data for a specific bank from the FDIC Summary of Deposits (SOD) — the annual branch-level census FDIC-insured banks file every June. Returns branch count, total branch deposits, and a list of individual branches with address, city, state, deposits, and whether it's the main office. Typically responds in 3-6 seconds. Use to answer \"how many branches does this bank have,\" \"where does this bank operate,\" or \"which branches hold the most deposits.\" Note: SOD data updates once a year (as of each June 30), so this reflects the most recent annual filing, not real-time branch counts."},{"name":"get_county_deposit_share","description":"Get deposit market share and competitive rank by county, from the FDIC Summary of Deposits. Two ways to call it. (1) Pass `cert` to see every county a bank operates in, with its deposits, market share, rank, number of competing banks, and the top competitor in each — answers \"where is this bank strong or weak,\" \"which markets does it dominate,\" and \"who is beating it in its own backyard.\" (2) Pass `county` plus `state` to get the full ranked leaderboard of every bank operating in that county — answers \"who holds deposit share in this market\" and \"who would we compete against if we entered.\" Use the county name alone, without the word \"County\" (e.g. \"Tulsa\", not \"Tulsa County\"). All deposit figures are in thousands of dollars. Standard uses: Community Reinvestment Act deposit market-share analysis, M&A target screening, branch expansion and market-entry planning, and peer benchmarking within a footprint. Note: SOD is an annual filing as of each June 30, so this reflects the most recent annual snapshot, not real-time deposits. Typically responds in 3-8 seconds; a bank spanning many counties takes longer, since each county is ranked separately."},{"name":"get_county_demographics","description":"Get county-level demographic and housing data from the U.S. Census Bureau American Community Survey (ACS 5-year): population, median household income, median family income, median home value, total/owner-occupied/renter-occupied housing units, poverty rate, and unemployment rate. Three ways to call it: `county` plus `state` for one county, `county_fips` for a direct 5-digit state+county FIPS lookup, or `cert` to get demographics for every county a bank operates in (joined through its FDIC branch footprint). Pair it with get_county_deposit_share to build a full market profile: deposit share and competitive rank from one, the demographics of that market from the other, keyed on the same county. Standard uses: Community Reinvestment Act performance evaluations (median FAMILY income is the basis for low/moderate-income thresholds, and is returned separately from household income), branch expansion and market-entry analysis, and assessing lending opportunity in a market. Use the county name without the word \"County\" (e.g. \"Davidson\", not \"Davidson County\"); Louisiana parishes and Alaska boroughs are handled too. Note: ACS is a rolling 5-year survey estimate, not a point-in-time count, and suppressed values are returned as null rather than Census's negative sentinel codes."},{"name":"get_hmda_lending","description":"Get mortgage lending activity from CFPB HMDA data: originations, denials, withdrawals, dollar volume and denial rate. Two ways to call it: `cert` for one bank's lending record (the FDIC certificate is resolved to the lender's LEI automatically — you never need an LEI), or `county` plus `state` / `county_fips` for all lending in a market. Pair with get_county_deposit_share and get_county_demographics to build a full Community Reinvestment Act picture: who holds deposits, who the market is, and who is actually lending in it. Also a credit-appetite and growth signal for M&A screening and vendor targeting. Defaults to the most recent published year. IMPORTANT coverage note to pass on when a bank returns nothing: roughly half of active banks have an LEI recorded with the FDIC (around 94% above $5B in assets, about 10% under $100M), and smaller banks often fall under HMDA reporting thresholds and legitimately do not file — an empty result usually means the bank is small, not that the data is broken. Denial rate is computed against decisioned applications only and excludes purchased loans, which are bought from other lenders rather than decided by this bank."},{"name":"get_bank_leadership","description":"Get key decision-makers for a specific bank, prioritized for B2B sales targeting: CEO/President, CIO/CTO (or closest functional equivalent at smaller banks), and COO -- each with name, title, role_category, source URL, and (when found) a LinkedIn profile URL. Useful for building sales target lists: call search_institutions or get_lender_rankings first to find candidate banks matching your criteria, then call this for each one to build out contacts ready for outreach. On an uncached bank, the FIRST call returns almost instantly (1-2 seconds) with status: \"pending\" -- enrichment runs in the background (can take 30 seconds to a few minutes, longer for banks with generic/common names) rather than blocking the call. Call this same tool again with the same cert a little later to check; it returns the finished result once ready, or another pending status if still running. Repeat calls on an already-resolved bank return in ~150ms (cached 30 days). linkedin_source tells you how a LinkedIn match was confirmed -- \"brightdata_verified\" (matched by name+company search, verified against real work history) or \"ai_search_scrape_verified\" (found via an AI web search, then independently confirmed by scraping that exact profile to check its real data) -- both are safe to use for outreach; null means no LinkedIn URL was found. Nothing is ever returned as an unverified guess. Returns an empty people list when no confident public leadership data can be found for the bank at all."},{"name":"get_bank_leadership_bulk","description":"Cache-only batch read of leadership data for many banks at once — instant (typically well under 2 seconds for dozens of certs), because it never runs the live Claude+Bright Data pipeline, only reads whatever is already cached. Built for bulk workflows: e.g. call search_institutions or get_lender_rankings to build a list of banks matching criteria (state, asset size, etc.), then call this once with all their CERTs to see what leadership data already exists. Returns per-cert results plus a top-level `cache_misses` array of CERTs with nothing cached yet — for those, call get_bank_leadership individually (which DOES run the live pipeline) to populate them, then re-call this to get the fresh data. This is the fast first pass for building a report or spreadsheet across many banks; it does not itself trigger any new lookups or incur any Bright Data / Claude cost."},{"name":"trigger_linkedin_match","description":"Kick off a LinkedIn profile match for one named person at a company -- fast (a few seconds), does NOT wait for the match to complete. Returns a snapshot_id. Available to any user, for a single person or many. Pass the bank cert too (strongly recommended) -- doing so saves the result permanently once found, so this exact person never needs to be looked up again by anyone. After calling this, wait about a minute, then call check_linkedin_match. For bulk workflows processing many banks: call this once per priority-role person across ALL banks first, collecting every snapshot_id, THEN wait 30-60 seconds before checking any -- checking immediately wastes calls, and batching triggers before waiting lets them all process in parallel."},{"name":"check_linkedin_match","description":"Check whether a LinkedIn match started with trigger_linkedin_match is ready, and return the profile URL if so. Fast (a couple seconds) — does NOT wait/poll internally, just checks current status once and returns immediately. Returns {status:\"running\"} if not ready yet (wait ~15-20 seconds before checking again — checking too frequently wastes calls without helping), {status:\"ready\", linkedin_url:\"...\"} once found, or {status:\"not_found\"} if the search completed but found no match. Most matches complete within 1-3 minutes of being triggered; a few take longer. If trigger_linkedin_match was called with a cert, a ready result here also saves the match into the shared cache automatically — nothing further needed to make it permanent. For a bulk spreadsheet workflow, trigger all people across all banks first, then loop checking the pending ones every 15-20 seconds until all are resolved (ready, not_found, or a reasonable give-up point like 5 minutes) rather than checking one at a time."}],"documentation":"https://vaultbot.ai/mcp","powered_by":"iDENTIFY (goidentify.com)"}