Skip to main content
Glama

fdic-banks-mcp-server

Search FDIC bank failures

fdic_search_failures
Read-onlyIdempotent

Search FDIC-insured bank failures and assistance transactions since 1934 by name, CERT, headquarters state, failure date range, resolution method, or size. Returns each event with failure date, acquirer, total assets and deposits, and the FDIC's estimated loss to the insurance fund, plus totals over every matching event; group_by adds counts and losses per year, state, method, or fund. Searches failures only unless resolution is set to assistance or all. Dollar amounts are in thousands.

Input Schema

NameRequiredDescriptionDefault
nameNoFailed institution name, up to 100 characters; every word of two or more letters or digits must appear in the name FDIC recorded (e.g. "silicon valley"). Case-insensitive. A standalone NA is ignored beside other words, so it also finds names recorded with N.A.
sortNodate_desc (newest first, default), date_asc, loss_desc (largest estimated loss first), or assets_desc.date_desc
certsNoNonempty selection of at most 1000 raw CERTs; deduplicated before querying the first 50. deferred_certs holds the rest for another call. Most events before 1977, and every one before 1970, carry no CERT.
limitNoEvents per page; accepts 1–10000, executes at most 200. effective_limit reports the applied count; use next_offset to continue.
stateNoFailed institution's headquarters state: two-letter code in any case or full name.
offsetNoEvents to skip (0–100,000); pass next_offset from the previous page.
methodsNoHow each event was resolved: PA purchase and assumption of all deposits, PI P&A of insured deposits only, P&A P&A with deposit scope undetermined, IDT insured deposit transfer, ABT asset-backed transfer, PO payout, DINB payout through a Deposit Insurance National Bank, A/A assistance transaction, REP reprivatization, MGR FSLIC management takeover, OBAM undocumented assistance code.
to_dateNoLatest failure date to include (YYYY-MM-DD).
group_byNoAdd counts, assets, deposits, and estimated losses per year, state, method, or insurance_fund over every matching event.
from_dateNoEarliest failure date to include (YYYY-MM-DD, e.g. 2023-03-10).
min_assetsNoMinimum total assets at the last report before failure, in thousands of US dollars.
resolutionNofailure (default), assistance (open-bank assistance and similar transactions), or all. Echoed as resolution_filter.

Output Schema

NameRequiredDescriptionDefault
capNoThe limit applied to this page.
errorNoPresent when the call failed. Absent on success.
shownNoEvents returned on this page.
totalNoMatching events across all pages.
groupsNoPresent with group_by. Years run ascending with empty years filled in; other keys by count, largest first.
noticeNoGuidance when nothing matched, the page is past the end, or more pages remain.
summaryNoTotals over every matching event, not just this page.
failuresNoMatching events for this page.
truncatedNoTrue when more events remain beyond this page.
data_as_ofNoWhen FDIC last rebuilt the failures index (ISO timestamp).
next_offsetNoOffset of the next page; present when more events remain.
deferred_certsNoCERTs not queried; pass these as certs (peer_certs for comparisons) in a new call.
effective_limitNoPage size applied, at most 200.
processed_certsNoDeduplicated CERT selection actually queried; missing CERTs are a subset of these.
selection_noticeNoExecution caps and how to retrieve deferred selections.
resolution_filterNoThe resolution filter applied.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / certs / description
      Previous value: -"Nonempty selection of at most 1000 raw CERTs; deduplicated before querying the first 50. deferred_certs holds the rest for another call. Events before 1977 carry no CERT."New value: +"Nonempty selection of at most 1000 raw CERTs; deduplicated before querying the first 50. deferred_certs holds the rest for another call. Most events before 1977, and every one before 1970, carry no CERT."
    • changedOutput schema / properties / failures / items / properties / cert / description
      Previous value: -"CERT of the failed institution; absent before 1977."New value: +"CERT of the failed institution; absent for most events before 1977."
  2. Changed29 schema fields changed
    • changedInput schema / properties / certs / description
      Previous value: -"Up to 50 CERTs of failed institutions. Events before 1977 carry no CERT."New value: +"Nonempty selection of at most 1000 raw CERTs; deduplicated before querying the first 50. deferred_certs holds the rest for another call. Events before 1977 carry no CERT."
    • changedInput schema / properties / certs / maxItems
      Previous value: -50New value: +1000
    • addedInput schema / properties / certs / minItems
      Added value: +1
    • changedInput schema / properties / limit / description
      Previous value: -"Events per page (1–200)."New value: +"Events per page; accepts 1–10000, executes at most 200. effective_limit reports the applied count; use next_offset to continue."
    • changedInput schema / properties / limit / maximum
      Previous value: -200New value: +10000
    • changedInput schema / properties / methods / maxItems
      Previous value: -11New value: +1000
    • addedInput schema / properties / methods / minItems
      Added value: +1
    • addedOutput schema / properties / deferred_certs
      Added value: +{
      +  "description": "CERTs not queried; pass these as certs (peer_certs for comparisons) in a new call.",
      +  "items": {
      +    "description": "Deferred CERT.",
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / effective_limit
      Added value: +{
      +  "description": "Page size applied, at most 200.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / groups / items / properties / total_assets / description
      Previous value: -"Sum of total assets at the last report before failure, USD thousands; events with no recorded figure add nothing."New value: +"Sum of recorded assets, USD thousands; null when a nonempty set has no recorded amounts."
    • changedOutput schema / properties / groups / items / properties / total_assets / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • addedOutput schema / properties / groups / items / properties / total_assets_missing_count
      Added value: +{
      +  "description": "Events without assets; the sum covers only recorded values.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / groups / items / properties / total_deposits / description
      Previous value: -"Sum of total deposits, USD thousands."New value: +"Sum of recorded deposits, USD thousands; null when a nonempty set has no recorded amounts."
    • changedOutput schema / properties / groups / items / properties / total_deposits / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • addedOutput schema / properties / groups / items / properties / total_deposits_missing_count
      Added value: +{
      +  "description": "Events without deposits; the sum covers only recorded values.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / groups / items / required
      Previous value: -[
      -  "key",
      -  "count",
      -  "total_assets",
      -  "estimated_loss_total",
      -  "estimated_loss_missing_count",
      -  "total_deposits"
      -]New value: +[
      +  "key",
      +  "count",
      +  "total_assets",
      +  "total_assets_missing_count",
      +  "estimated_loss_total",
      +  "estimated_loss_missing_count",
      +  "total_deposits",
      +  "total_deposits_missing_count"
      +]
    • addedOutput schema / properties / processed_certs
      Added value: +{
      +  "description": "Deduplicated CERT selection actually queried; missing CERTs are a subset of these.",
      +  "items": {
      +    "description": "Processed CERT.",
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / selection_notice
      Added value: +{
      +  "description": "Execution caps and how to retrieve deferred selections.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / summary / properties / by_method / items / properties / total_assets / description
      Previous value: -"Sum of total assets at the last report before failure, USD thousands; events with no recorded figure add nothing."New value: +"Sum of recorded assets, USD thousands; null when a nonempty set has no recorded amounts."
    • changedOutput schema / properties / summary / properties / by_method / items / properties / total_assets / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • addedOutput schema / properties / summary / properties / by_method / items / properties / total_assets_missing_count
      Added value: +{
      +  "description": "Events without assets; the sum covers only recorded values.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / summary / properties / by_method / items / required
      Previous value: -[
      -  "method",
      -  "method_label",
      -  "count",
      -  "total_assets",
      -  "estimated_loss_total",
      -  "estimated_loss_missing_count"
      -]New value: +[
      +  "method",
      +  "method_label",
      +  "count",
      +  "total_assets",
      +  "total_assets_missing_count",
      +  "estimated_loss_total",
      +  "estimated_loss_missing_count"
      +]
    • changedOutput schema / properties / summary / properties / total_assets / description
      Previous value: -"Sum of total assets at the last report before failure, USD thousands; events with no recorded figure add nothing."New value: +"Sum of recorded assets, USD thousands; null when a nonempty set has no recorded amounts."
    • changedOutput schema / properties / summary / properties / total_assets / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • addedOutput schema / properties / summary / properties / total_assets_missing_count
      Added value: +{
      +  "description": "Events without assets; the sum covers only recorded values.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / summary / properties / total_deposits / description
      Previous value: -"Sum of total deposits, USD thousands."New value: +"Sum of recorded deposits, USD thousands; null when a nonempty set has no recorded amounts."
    • changedOutput schema / properties / summary / properties / total_deposits / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • addedOutput schema / properties / summary / properties / total_deposits_missing_count
      Added value: +{
      +  "description": "Events without deposits; the sum covers only recorded values.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / summary / required
      Previous value: -[
      -  "count",
      -  "total_assets",
      -  "estimated_loss_total",
      -  "estimated_loss_missing_count",
      -  "total_deposits",
      -  "by_method"
      -]New value: +[
      +  "count",
      +  "total_assets",
      +  "total_assets_missing_count",
      +  "estimated_loss_total",
      +  "estimated_loss_missing_count",
      +  "total_deposits",
      +  "total_deposits_missing_count",
      +  "by_method"
      +]
  3. First observed

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and openWorld, so the safety profile is covered. The description adds real value beyond that: what is returned (failure date, acquirer, assets, deposits, estimated loss), that totals are included over every match, what group_by aggregates, and that dollar amounts are in thousands. It omits pagination/limit behavior and the CERT-less pre-1977 caveat, which live only in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with scope and filters before return shape and the resolution caveat. It is dense but not padded; the long opening sentence could be split for readability, and "plus totals over every matching event" is slightly redundant with the group_by sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema covering return shape and annotations covering safety, the description supplies the remaining essentials: time scope, default resolution behavior, aggregation semantics, and unit convention. The only material gap is paging behavior and the pre-1977 CERT limitation, both of which are documented in the schema instead.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 12 parameters thoroughly, including units, enums, and defaults. The description restates the filter dimensions and the thousands unit but adds no syntax or edge-case detail beyond the schema, which is the expected baseline for fully documented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Search FDIC-insured bank failures and assistance transactions") and names the exact filter dimensions available. The scope phrase "since 1934" and the failures-vs-assistance distinction separate it cleanly from siblings like fdic_search_institutions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit behavioral routing: "Searches failures only unless resolution is set to assistance or all," which tells the agent how to widen scope. It does not name an alternative sibling tool for the institution-search case, so the when-to-use-this-vs-that guidance is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.