Skip to main content
Glama
jflamb

FDIC BankFind MCP Server

by jflamb

fdic_search_financials

Search quarterly financial data for FDIC-insured banks to analyze balance sheets, income statements, capital levels, and performance ratios using over 1,100 variables.

Instructions

Search quarterly financial (Call Report) data for FDIC-insured institutions. Covers over 1,100 financial variables reported quarterly.

Returns balance sheet, income statement, capital, and performance ratio data from FDIC Call Reports.

Common filter examples:

  • Financials for a specific bank: CERT:3511

  • By report date: REPDTE:20231231

  • High-profit banks in Q4 2023: REPDTE:20231231 AND ROA:[1.5 TO *]

  • Large banks most recent: ASSET:[10000000 TO *]

  • Negative net income: NETINC:[* TO 0]

Key returned fields:

  • CERT: FDIC Certificate Number

  • REPDTE: Report Date — the last day of the quarterly reporting period (YYYYMMDD)

  • ASSET: Total assets ($thousands)

  • DEP: Total deposits ($thousands)

  • DEPDOM: Domestic deposits ($thousands)

  • INTINC: Total interest income ($thousands)

  • EINTEXP: Total interest expense ($thousands)

  • NETINC: Net income ($thousands)

  • ROA: Return on assets (%)

  • ROE: Return on equity (%)

  • NETNIM: Net interest margin (%)

Args:

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

  • repdte (string, optional): Report Date in YYYYMMDD format (quarter-end dates: 0331, 0630, 0930, 1231)

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

  • fields (string, optional): Comma-separated field names (the full set has 1,100+ fields)

  • 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: 'DESC' recommended for most recent first)

Prefer concise human-readable summaries or tables when answering users. Structured fields are available for totals, pagination, and quarterly financial 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: DESC (descending, default for most recent first) or ASC (ascending)DESC
certNoFilter by FDIC Certificate Number to get financials for a specific institution
repdteNoFilter by Report Date (REPDTE) in YYYYMMDD format. FDIC data is published quarterly on call report dates: March 31, June 30, September 30, and December 31. Example: 20231231 for Q4 2023. If omitted, returns all available dates (sorted most recent first by default).

Implementation Reference

  • The handler function for fdic_search_financials tool, which queries the FDIC financials endpoint, formats the results, and handles pagination.
    async ({ cert, repdte, ...params }) => {
      try {
        const response = await queryEndpoint(ENDPOINTS.FINANCIALS, {
          ...params,
          filters: buildFilterString({
            cert,
            dateField: "REPDTE",
            dateValue: repdte,
            rawFilters: params.filters,
          }),
        });
        const records = extractRecords(response);
        const pagination = buildPaginationInfo(
          response.meta.total,
          params.offset ?? 0,
          records.length,
        );
        const output = { ...pagination, financials: records };
        const text = truncateIfNeeded(
          formatSearchResultText("financial records", records, pagination, [
            "CERT",
            "NAME",
            "REPDTE",
            "ASSET",
            "DEP",
            "NETINC",
          ]),
          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 tool registration for fdic_search_financials, including its metadata, description, input schema, and handler.
      server.registerTool(
        "fdic_search_financials",
        {
          title: "Search Institution Financial Data",
          description: `Search quarterly financial (Call Report) data for FDIC-insured institutions. Covers over 1,100 financial variables reported quarterly.
    
    Returns balance sheet, income statement, capital, and performance ratio data from FDIC Call Reports.
    
    Common filter examples:
      - Financials for a specific bank: CERT:3511
      - By report date: REPDTE:20231231
      - High-profit banks in Q4 2023: REPDTE:20231231 AND ROA:[1.5 TO *]
      - Large banks most recent: ASSET:[10000000 TO *]
      - Negative net income: NETINC:[* TO 0]
    
    Key returned fields:
      - CERT: FDIC Certificate Number
      - REPDTE: Report Date — the last day of the quarterly reporting period (YYYYMMDD)
      - ASSET: Total assets ($thousands)
      - DEP: Total deposits ($thousands)
      - DEPDOM: Domestic deposits ($thousands)
      - INTINC: Total interest income ($thousands)
      - EINTEXP: Total interest expense ($thousands)
      - NETINC: Net income ($thousands)
      - ROA: Return on assets (%)
      - ROE: Return on equity (%)
      - NETNIM: Net interest margin (%)
    
    Args:
      - cert (number, optional): Filter by institution CERT number
      - repdte (string, optional): Report Date in YYYYMMDD format (quarter-end dates: 0331, 0630, 0930, 1231)
      - filters (string, optional): Additional ElasticSearch query filters
      - fields (string, optional): Comma-separated field names (the full set has 1,100+ fields)
      - 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: 'DESC' recommended for most recent first)
    
    Prefer concise human-readable summaries or tables when answering users. Structured fields are available for totals, pagination, and quarterly financial records.`,
          inputSchema: FinancialQuerySchema,
          annotations: {
            readOnlyHint: true,
            destructiveHint: false,
            idempotentHint: true,
            openWorldHint: true,
          },
        },
  • The input schema validation for the fdic_search_financials tool using Zod.
    const FinancialQuerySchema = CommonQuerySchema.extend({
      sort_order: z
        .enum(["ASC", "DESC"])
        .default("DESC")
        .describe(
          "Sort direction: DESC (descending, default for most recent first) or ASC (ascending)",
        ),
      cert: z
        .number()
        .int()
        .positive()
        .optional()
        .describe(
          "Filter by FDIC Certificate Number to get financials for a specific institution",
        ),
      repdte: z
        .string()
        .optional()
        .describe(
          "Filter by Report Date (REPDTE) in YYYYMMDD format. FDIC data is published quarterly on call report dates: March 31, June 30, September 30, and December 31. Example: 20231231 for Q4 2023. If omitted, returns all available dates (sorted most recent first by default).",
        ),
    });

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