Skip to main content
Glama
jflamb

FDIC BankFind MCP Server

by jflamb

fdic_search_locations

Search for branch locations of FDIC-insured financial institutions by state, city, institution, or service type to find addresses, coordinates, and establishment details.

Instructions

Search for branch locations of FDIC-insured financial institutions.

Returns branch/office data including address, city, state, coordinates, branch type, and establishment date.

Common filter examples:

  • All branches of a bank: CERT:3511

  • By state: STALP:TX (two-letter state code)

  • By city: CITY:"Austin"

  • Main offices only: BRNUM:0

  • By county: COUNTY:"Travis"

  • Active branches only: ENDEFYMD:[9999-01-01 TO *] (sentinel date 9999-12-31 means still open)

  • By metro area (CBSA): CBSA_METRO_NAME:"New York-Newark-Jersey City"

Branch service types (BRSERTYP): 11 = Full service brick and mortar 12 = Full service retail 21 = Limited service administrative 22 = Limited service military 23 = Limited service drive-through 24 = Limited service loan production 25 = Limited service consumer/trust 26 = Limited service Internet/mobile 29 = Limited service other

Key returned fields:

  • CERT: FDIC Certificate Number

  • UNINAME: Institution name

  • NAMEFULL: Full branch name

  • ADDRESS, CITY, STALP (two-letter state code), ZIP: Branch address

  • COUNTY: County name

  • BRNUM: Branch number (0 = main office)

  • BRSERTYP: Branch service type code (see above)

  • LATITUDE, LONGITUDE: Geographic coordinates

  • ESTYMD: Branch established date (YYYY-MM-DD)

  • ENDEFYMD: Branch end date (9999-12-31 if still active)

Args:

  • cert (number, optional): Filter by institution CERT number

  • filters (string, optional): Additional ElasticSearch query filters

  • fields (string, optional): Comma-separated field names

  • limit (number): Records to return (default: 20)

  • offset (number): Pagination offset (default: 0)

  • sort_by (string, optional): Field to sort by

  • sort_order ('ASC'|'DESC'): Sort direction (default: 'ASC')

Prefer concise human-readable summaries or tables when answering users. Structured fields are available for totals, pagination, and branch location records.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
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"
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
limitNoMaximum number of records to return (1-10000, default: 20)
offsetNoNumber of records to skip for pagination (default: 0)
sort_byNoField name to sort results by. Example: ASSET, NAME, FAILDATE
sort_orderNoSort direction: ASC (ascending) or DESC (descending)ASC
certNoFilter by FDIC Certificate Number to get all branches of a specific institution

Implementation Reference

  • The handler function for the fdic_search_locations tool, which queries the FDIC locations endpoint and formats the response.
    async ({ cert, ...params }) => {
      try {
        const response = await queryEndpoint(ENDPOINTS.LOCATIONS, {
          ...params,
          filters: buildFilterString({
            cert,
            rawFilters: params.filters,
            rawFiltersPosition: "last",
          }),
        });
        const records = extractRecords(response);
        const pagination = buildPaginationInfo(
          response.meta.total,
          params.offset ?? 0,
          records.length,
        );
        const output = { ...pagination, locations: records };
        const text = truncateIfNeeded(
          formatSearchResultText("locations", records, pagination, [
            "CERT",
            "UNINAME",
            "NAMEFULL",
            "CITY",
            "STALP",
            "BRNUM",
          ]),
          CHARACTER_LIMIT,
          "Request fewer fields, narrow your filters, or paginate with limit/offset.",
        );
        return {
          content: [{ type: "text", text }],
          structuredContent: output,
        };
      } catch (err) {
        return formatToolError(err);
      }
    },
  • The registration of the fdic_search_locations tool within the registerLocationTools function.
    export function registerLocationTools(server: McpServer): void {
      server.registerTool(
        "fdic_search_locations",
        {
          title: "Search Institution Locations / Branches",
          description: `Search for branch locations of FDIC-insured financial institutions.
    
    Returns branch/office data including address, city, state, coordinates, branch type, and establishment date.
    
    Common filter examples:
      - All branches of a bank: CERT:3511
      - By state: STALP:TX (two-letter state code)
      - By city: CITY:"Austin"
      - Main offices only: BRNUM:0
      - By county: COUNTY:"Travis"
      - Active branches only: ENDEFYMD:[9999-01-01 TO *]  (sentinel date 9999-12-31 means still open)
      - By metro area (CBSA): CBSA_METRO_NAME:"New York-Newark-Jersey City"
    
    Branch service types (BRSERTYP):
      11 = Full service brick and mortar
      12 = Full service retail
      21 = Limited service administrative
      22 = Limited service military
      23 = Limited service drive-through
      24 = Limited service loan production
      25 = Limited service consumer/trust
      26 = Limited service Internet/mobile
      29 = Limited service other
    
    Key returned fields:
      - CERT: FDIC Certificate Number
      - UNINAME: Institution name
      - NAMEFULL: Full branch name
      - ADDRESS, CITY, STALP (two-letter state code), ZIP: Branch address
      - COUNTY: County name
      - BRNUM: Branch number (0 = main office)
      - BRSERTYP: Branch service type code (see above)
      - LATITUDE, LONGITUDE: Geographic coordinates
      - ESTYMD: Branch established date (YYYY-MM-DD)
      - ENDEFYMD: Branch end date (9999-12-31 if still active)
    
    Args:
      - cert (number, optional): Filter by institution CERT number
      - filters (string, optional): Additional ElasticSearch query filters
      - fields (string, optional): Comma-separated field names
      - limit (number): Records to return (default: 20)
      - offset (number): Pagination offset (default: 0)
      - sort_by (string, optional): Field to sort by
      - sort_order ('ASC'|'DESC'): Sort direction (default: 'ASC')
    
    Prefer concise human-readable summaries or tables when answering users. Structured fields are available for totals, pagination, and branch location records.`,
          inputSchema: LocationQuerySchema,
          annotations: {
            readOnlyHint: true,
            destructiveHint: false,
            idempotentHint: true,
            openWorldHint: true,
          },
        },
        async ({ cert, ...params }) => {
          try {
            const response = await queryEndpoint(ENDPOINTS.LOCATIONS, {
              ...params,
              filters: buildFilterString({
                cert,
                rawFilters: params.filters,
                rawFiltersPosition: "last",
              }),
            });
            const records = extractRecords(response);
            const pagination = buildPaginationInfo(
              response.meta.total,
              params.offset ?? 0,
              records.length,
            );
            const output = { ...pagination, locations: records };
            const text = truncateIfNeeded(
              formatSearchResultText("locations", records, pagination, [
                "CERT",
                "UNINAME",
                "NAMEFULL",
                "CITY",
                "STALP",
                "BRNUM",
              ]),
              CHARACTER_LIMIT,
              "Request fewer fields, narrow your filters, or paginate with limit/offset.",
            );
            return {
              content: [{ type: "text", text }],
              structuredContent: output,
            };
          } catch (err) {
            return formatToolError(err);
          }
        },
      );
  • The input schema definition for the fdic_search_locations tool, extending CommonQuerySchema with a 'cert' field.
    const LocationQuerySchema = CommonQuerySchema.extend({
      cert: z
        .number()
        .int()
        .positive()
        .optional()
        .describe(
          "Filter by FDIC Certificate Number to get all branches of a specific institution",
        ),
    });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jflamb/fdic-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server