protogrid

Search / io.github.cyanheads/fdic-banks-mcp-server

fdic-banks-mcp-server

R0· no sign-in

Search FDIC-insured banks, Call Report financials, peer rankings, failures, deposit market share.

v0.2.0 · active · repository · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality84good
Trust94of 100
Uptime, 30 days100%
Latency p50203 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "fdic-banks-mcp-server": {
      "type": "http",
      "url": "https://fdic-banks.caseyjhand.com/mcp"
    }
  }
}
claude mcp add --transport http fdic-banks-mcp-server https://fdic-banks.caseyjhand.com/mcp
[mcp_servers.fdic-banks-mcp-server]
url = "https://fdic-banks.caseyjhand.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "fdic-banks-mcp-server": {
      "type": "remote",
      "url": "https://fdic-banks.caseyjhand.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "fdic-banks-mcp-server": {
      "type": "http",
      "url": "https://fdic-banks.caseyjhand.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=fdic-banks-mcp-server&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZmRpYy1iYW5rcy5jYXNleWpoYW5kLmNvbS9tY3AifQ%3D%3D"
}
{
  "servers": {
    "fdic-banks-mcp-server": {
      "type": "http",
      "url": "https://fdic-banks.caseyjhand.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "fdic-banks-mcp-server": {
      "httpUrl": "https://fdic-banks.caseyjhand.com/mcp"
    }
  }
}
extensions:
  "fdic-banks-mcp-server":
    enabled: true
    name: "fdic-banks-mcp-server"
    type: streamable_http
    uri: "https://fdic-banks.caseyjhand.com/mcp"
    timeout: 300

Quality 84 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations9 of 9 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: fdic_search_institutions (destructiveHint); fdic_query_financials (destructiveHint); fdic_get_deposits (destructiveHint); …
  • pass
    tools.token_costabout 6,926 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes7 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15

9 tools, about 6,926 tokens to load them all · tool set acd125a023c4 · tools last changed 2026-10-16 · checked 2026-10-20 17:34 UTC

Tool changes

  • fdic_dataframe_querychangedinput schema, output schema
  • fdic_get_depositschangedinput schema
  • fdic_search_failureschangedinput schema, output schema
  • fdic_query_financialschangedinput schema, output schema
  • fdic_compare_peerschangedinput schema, output schema
  • fdic_get_institution_financialschangedinput schema, output schema
  • fdic_search_institutionschangedinput schema, output schema

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 94 / 100

provenance80
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +reachable +uptime-100% +updated-4d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

@cyanheads/[email protected] npmthis version is not known to the dependency resolver

@cyanheads/[email protected] npmthis version is not known to the dependency resolver

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://fdic-banks.caseyjhand.com/mcp streamable-httpnoneyes100%203 ms2026-07-282026-10-20
packageregistryversionruntimesecrets
@cyanheads/fdic-banks-mcp-servernpm0.2.0npx
@cyanheads/fdic-banks-mcp-servernpm0.2.0npx

Tools (9)

fdic_compare_peersread-onlyCompare one institution with a peer group for one quarter: for each metric, the institution's value next to the peer median, quartiles, minimum and maximum, and its percentile and rank. The default peer group is every institution in the same asset-size band that reported that quarter; narrow it to one state, widen it to all sizes, or name the peers by CERT. Dollar amounts are in thousands; ratios are percentages.
fdic_dataframe_describeread-onlyDescribe the df_<id> dataframes that fdic_query_financials and fdic_get_deposits staged when a result exceeded its inline preview, plus any that fdic_dataframe_query saved with register_as. Pass name (from a dataset field) for one dataframe in full: source tool, the parameters it was called with, row count, creation and expiry time, column schema, and the unit and basis of each amount, ratio, or count column (thousands of dollars, percent, or count). Read a table's columns this way before writing SQL for fdic_dataframe_query. Omit name to list the live dataframes, newest first, 50 per page, as name, source tool, row count, and expiry only. A deployment that serves HTTP without authentication, where every caller shares one canvas, does not list; there, pass the name a dataset field returned.
fdic_dataframe_queryread-onlyRun one read-only SELECT (DuckDB SQL) across the df_<id> dataframes that fdic_query_financials and fdic_get_deposits staged or an earlier register_as saved; joins, aggregates, window functions, and CTEs work. Before writing SQL, pass each table name to fdic_dataframe_describe to read its columns. DOUBLE columns come back as JSON numbers and dollar columns are thousands of US dollars; BIGINT results such as COUNT(*) come back as strings, so CAST them to INTEGER or DOUBLE for arithmetic. Writes, DDL, file-reading functions, and system catalogs are rejected. register_as materializes the result as a new dataframe with a fresh TTL.
fdic_get_depositsread-onlyGet Summary of Deposits data (branch-level domestic deposits, annual as of June 30, 1994 onward). With cert only: the institution's branches and its deposit market share in each state where it has offices. With a geography (state, county, city, ZIP, or MSA code): every institution in that market ranked by deposits, with market share and the Herfindahl-Hirschman index. With both: the institution's branches in that market and its rank and share there. Defaults to the latest survey year. Dollar amounts are in thousands.
fdic_get_institution_financialsread-onlyGet one institution's quarterly Call Report financials by CERT — balance sheet, income, returns, credit quality, and capital ratios — most recent quarter first, with its name, status, and holding company. Unsuffixed income and return metrics are single-quarter figures; _ytd metrics accumulate from January 1. Dollar amounts are in thousands. Quarterly data lands about seven weeks after quarter end; history reaches back to 1984.
fdic_list_referenceread-onlyList the vocabulary the other fdic_ tools accept and return: every financial metric name with its FDIC field, unit, and basis (single quarter, year-to-date, or point in time), bank charter classes, failure resolution methods, insurance funds, the asset bands fdic_compare_peers uses, and the years each dataset covers. Served from built-in tables; no request to FDIC.
fdic_query_financialsread-onlyPull a multi-institution, multi-quarter Call Report panel — one row per institution per quarter — filtered by CERTs, headquarters state, asset range, and thresholds on any catalog metric. Use it to screen (every bank in a state with a noncurrent-loan rate above 3%) or to build a trend panel for SQL. Returns an inline preview sorted as requested; when the panel exceeds the preview it is staged as a dataframe for fdic_dataframe_query. With no dates it covers the latest published quarter only.
fdic_search_failuresread-onlySearch 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.
fdic_search_institutionsread-onlyFind FDIC-insured banks and savings institutions by name, CERT, location, size, charter class, or holding company — including closed, merged, and failed institutions. Name matching is fuzzy, case-insensitive, and also matches former and trade names (a result says which it matched); every word must match. Returns institution records keyed by CERT, the FDIC certificate number every other fdic_ tool takes, with active status, successor CERT for merged or failed institutions, holding company, and latest reported assets and deposits. Credit unions are insured by the NCUA and are not in this data.

Schemas: list_tools.

Similar MCP servers

More from io.github.cyanheads

And 140 more from this publisher.

Official server.json
{
  "name": "io.github.cyanheads/fdic-banks-mcp-server",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://fdic-banks.caseyjhand.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.2.0",
  "packages": [
    {
      "version": "0.2.0",
      "transport": {
        "type": "stdio"
      },
      "identifier": "@cyanheads/fdic-banks-mcp-server",
      "runtimeHint": "npx",
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "environmentVariables": [
        {
          "name": "FDIC_RATE_LIMIT_RPS",
          "format": "number",
          "default": "8",
          "description": "Maximum request starts per second to api.fdic.gov (1–15), shared by every caller of this process."
        },
        {
          "name": "FDIC_CACHE_TTL_SECONDS",
          "format": "number",
          "default": "3600",
          "description": "TTL of the in-process FDIC response cache in seconds; 0 disables caching."
        },
        {
          "name": "FDIC_PANEL_MAX_ROWS",
          "format": "number",
          "default": "50000",
          "description": "Row cap for one fdic_query_financials panel (1,000–200,000). Newest quarters are kept when it binds."
        },
        {
          "name": "FDIC_DATASET_TTL_SECONDS",
          "format": "number",
          "default": "86400",
          "description": "Per-table TTL for staged dataframes, in seconds (minimum 60)."
        },
        {
          "name": "FDIC_DATAFRAME_DROP_ENABLED",
          "format": "boolean",
          "default": "false",
          "description": "Set to true to expose fdic_dataframe_drop; otherwise it is registered disabled."
        },
        {
          "name": "MCP_LOG_LEVEL",
          "format": "string",
          "default": "info",
          "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
        }
      ]
    },
    {
      "version": "0.2.0",
      "transport": {
        "url": "http://localhost:3010/mcp",
        "type": "streamable-http"
      },
      "identifier": "@cyanheads/fdic-banks-mcp-server",
      "runtimeHint": "npx",
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "environmentVariables": [
        {
          "name": "MCP_TRANSPORT_TYPE",
          "value": "http",
          "format": "string",
          "description": "Selects the HTTP transport."
        },
        {
          "name": "FDIC_RATE_LIMIT_RPS",
          "format": "number",
          "default": "8",
          "description": "Maximum request starts per second to api.fdic.gov (1–15), shared by every caller of this process."
        },
        {
          "name": "FDIC_CACHE_TTL_SECONDS",
          "format": "number",
          "default": "3600",
          "description": "TTL of the in-process FDIC response cache in seconds; 0 disables caching."
        },
        {
          "name": "FDIC_PANEL_MAX_ROWS",
          "format": "number",
          "default": "50000",
          "description": "Row cap for one fdic_query_financials panel (1,000–200,000). Newest quarters are kept when it binds."
        },
        {
          "name": "FDIC_DATASET_TTL_SECONDS",
          "format": "number",
          "default": "86400",
          "description": "Per-table TTL for staged dataframes, in seconds (minimum 60)."
        },
        {
          "name": "FDIC_DATAFRAME_DROP_ENABLED",
          "format": "boolean",
          "default": "false",
          "description": "Set to true to expose fdic_dataframe_drop; otherwise it is registered disabled."
        },
        {
          "name": "MCP_HTTP_HOST",
          "format": "string",
          "default": "127.0.0.1",
          "description": "The hostname for the HTTP server."
        },
        {
          "name": "MCP_HTTP_PORT",
          "format": "string",
          "default": "3010",
          "description": "The port to run the HTTP server on."
        },
        {
          "name": "MCP_HTTP_ENDPOINT_PATH",
          "format": "string",
          "default": "/mcp",
          "description": "The endpoint path for the MCP server."
        },
        {
          "name": "MCP_AUTH_MODE",
          "format": "string",
          "default": "none",
          "description": "Authentication mode to use: 'none', 'jwt', or 'oauth'."
        },
        {
          "name": "MCP_LOG_LEVEL",
          "format": "string",
          "default": "info",
          "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
        }
      ]
    }
  ],
  "repository": {
    "url": "https://github.com/cyanheads/fdic-banks-mcp-server",
    "source": "github"
  },
  "description": "Search FDIC-insured banks, Call Report financials, peer rankings, failures, deposit market share."
}