Skip to main content
Glama
jflamb

FDIC BankFind MCP Server

by jflamb

Search Institution Demographics Data

fdic_search_demographics
Read-onlyIdempotent

Get quarterly demographic and market-structure attributes (office counts, metro classification, county/territory codes) for FDIC-insured institutions. Filter by certificate number or report date.

Instructions

Use this when the user wants quarterly demographic and market-structure attributes (office counts, metro classification, county/territory codes, geographic reference data) for FDIC-insured institutions. Filter by CERT and/or REPDTE. See fdic://schemas/demographics for the full field catalog.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
certNoFilter by FDIC Certificate Number
limitNoMaximum number of records to return (1-10000, default: 20)
fieldsNoComma-separated list of FDIC field names to return. Leave empty to return all fields. Field names are ALL_CAPS (e.g., NAME, CERT, ASSET, DEP, STALP). Example: NAME,CERT,ASSET,DEP,STALP
offsetNoNumber of records to skip for pagination (default: 0)
repdteNoFilter by Report Date (REPDTE) in YYYYMMDD format (quarter-end: 0331, 0630, 0930, 1231).
filtersNoFDIC API filter using ElasticSearch query string syntax. Combine conditions with AND/OR, use quotes for multi-word values, and [min TO max] for ranges (* = unbounded). Common fields: NAME (institution name), STNAME (state name), STALP (two-letter state code), CERT (certificate number), ASSET (total assets in $thousands), ACTIVE (1=active, 0=inactive). Examples: STNAME:"California", ACTIVE:1 AND ASSET:[1000000 TO *], NAME:"Chase"
sort_byNoField name to sort results by. Example: ASSET, NAME, FAILDATE
sort_orderNoSort direction: ASC (ascending) or DESC (descending)ASC

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYes
totalYes
offsetYes
has_moreYes
truncatedNo
next_offsetNo
demographicsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changedv3.0.1
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / properties / cert / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / offset / maximum
      Added value: +9007199254740991
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / properties / count / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / count / minimum
      Added value: +-9007199254740991
    • addedOutput schema / properties / demographics / items / propertyNames
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / next_offset / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / next_offset / minimum
      Added value: +-9007199254740991
    • addedOutput schema / properties / offset / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / offset / minimum
      Added value: +-9007199254740991
    • addedOutput schema / properties / total / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / total / minimum
      Added value: +-9007199254740991
  2. Changed2 schema fields changedv1.26.0
    • changedInput schema / properties / repdte / description
      Previous value: -"Filter by Report Date (REPDTE) in YYYYMMDD format. FDIC data is published quarterly on: March 31, June 30, September 30, and December 31. Example: 20251231 for Q4 2025. If omitted, returns all available dates."New value: +"Filter by Report Date (REPDTE) in YYYYMMDD format (quarter-end: 0331, 0630, 0930, 1231)."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "count": {
      +      "type": "integer"
      +    },
      +    "demographics": {
      +      "items": {
      +        "additionalProperties": {},
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "has_more": {
      +      "type": "boolean"
      +    },
      +    "next_offset": {
      +      "type": "integer"
      +    },
      +    "offset": {
      +      "type": "integer"
      +    },
      +    "total": {
      +      "type": "integer"
      +    },
      +    "truncated": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "total",
      +    "offset",
      +    "count",
      +    "has_more",
      +    "demographics"
      +  ],
      +  "type": "object"
      +}
  3. First observedv1.1.3

TDQS

A4/5.0
Behavior3/5

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

Annotations already establish that this is read-only, idempotent, non-destructive, and open-world. The description adds that the data is quarterly demographics/market-structure, which is useful, but it does not disclose pagination behavior, result limits, or other operational traits; with annotations covering the safety profile, this is adequate but not rich.

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

Conciseness5/5

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

Three sentences with no filler: the when-to-use trigger, filter guidance, and schema pointer are all front-loaded and purposeful. Every sentence earns its place.

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?

For a read-only search tool with a full parameter schema and output schema, the description gives the domain context and filter entry points needed to call it correctly. It could be more explicit about how this differs from location-adjacent siblings, but overall nothing critical is missing.

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 all eight parameters are already documented in the input schema. The description only reinforces 'Filter by CERT and/or REPDTE' and points to a field catalog, adding no need for compensation beyond the baseline.

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?

The description names a specific purpose—'quarterly demographic and market-structure attributes'—with concrete examples (office counts, metro classification, county/territory codes) and the target resource (FDIC-insured institutions). This makes it easy to distinguish from siblings like fdic_search_financials or fdic_search_failures.

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?

It opens with an explicit 'Use this when' trigger and tells the agent which filters to use (CERT and/or REPDTE). It does not name sibling alternatives or state when not to use it, so it misses the 'when-not/alternatives' bar.

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