Skip to main content
Glama

fdic-banks-mcp-server

Compare an institution with its peers

fdic_compare_peers
Read-onlyIdempotent

Compare 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.

Input Schema

NameRequiredDescriptionDefault
certYesFDIC certificate number of the institution to compare, from fdic_search_institutions.
metricsNoAt most 1000 raw metric names. Deduplicated before querying the first 20; deferred_metrics holds the rest. Omit or pass [] for the default health set.
peer_certsNoNonempty peer selection, at most 1000 raw CERTs, replacing band/state filters. Deduplicated before querying the first 200; deferred_certs holds the rest and marks the cohort incomplete. Fewer than five peers still computes, with a notice.
peer_stateNoLimit peers to one headquarters state: a two-letter code, a full state name, or same for the institution's own state. Omit for nationwide. Not combinable with peer_certs.
report_dateNoQuarter to compare: a quarter-end date (2026-06-30), the same without dashes (20260630), or a quarter label (2026Q2). Omit for the latest quarter FDIC has published.
peer_asset_bandNoPeer size band by total assets: same (the band holding the institution's own assets, default), any (all sizes), under_100m, 100m_1b, 1b_10b, 10b_250b, or over_250b; fdic_list_reference topic peer_asset_bands gives each band's bounds. Not combinable with peer_certs.

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
noticeNoGuidance when the peer group is empty or a metric has fewer than five peer values.
data_as_ofNoWhen FDIC last rebuilt the financials index (ISO timestamp).
peer_groupNoHow the peer group was built.
comparisonsNoPer-metric comparison, in metric order.
institutionNoThe institution being compared.
report_dateNoQuarter-end date compared (YYYY-MM-DD).
deferred_certsNoCERTs not queried; pass these as certs (peer_certs for comparisons) in a new call.
processed_certsNoDeduplicated CERT selection actually queried; missing CERTs are a subset of these.
deferred_metricsNoMetrics not queried; pass these as metrics in a new call.
selection_noticeNoExecution caps and how to retrieve deferred selections.
processed_metricsNoMetrics actually queried, including automatic panel sort/filter metrics.
peer_certs_missingNoExplicit peer CERTs that filed no Call Report for the quarter.
report_date_defaultedNoTrue when report_date was omitted and the latest published quarter was used.
peer_cohort_incompleteNoTrue when deferred peer CERTs were excluded from every statistic; rerun with deferred_certs as peer_certs or use a smaller cohort.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • changedInput schema / properties / metrics / description
      Previous value: -"Up to 20 metric names (fdic_list_reference topic metrics). Omit for the default health set."New value: +"At most 1000 raw metric names. Deduplicated before querying the first 20; deferred_metrics holds the rest. Omit or pass [] for the default health set."
    • changedInput schema / properties / metrics / maxItems
      Previous value: -20New value: +1000
    • changedInput schema / properties / peer_certs / description
      Previous value: -"An explicit peer list of up to 200 CERTs, in place of the band and state peer group — pass it without peer_asset_band and peer_state. Fewer than five peers still computes, with a notice."New value: +"Nonempty peer selection, at most 1000 raw CERTs, replacing band/state filters. Deduplicated before querying the first 200; deferred_certs holds the rest and marks the cohort incomplete. Fewer than five peers still computes, with a notice."
    • changedInput schema / properties / peer_certs / maxItems
      Previous value: -200New value: +1000
    • addedInput schema / properties / peer_certs / 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 / deferred_metrics
      Added value: +{
      +  "description": "Metrics not queried; pass these as metrics in a new call.",
      +  "items": {
      +    "description": "Deferred metric.",
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / peer_cohort_incomplete
      Added value: +{
      +  "description": "True when deferred peer CERTs were excluded from every statistic; rerun with deferred_certs as peer_certs or use a smaller cohort.",
      +  "type": "boolean"
      +}
    • 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 / processed_metrics
      Added value: +{
      +  "description": "Metrics actually queried, including automatic panel sort/filter metrics.",
      +  "items": {
      +    "description": "Processed metric.",
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / selection_notice
      Added value: +{
      +  "description": "Execution caps and how to retrieve deferred selections.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare this a read-only, idempotent, open-world operation, so the safety profile is covered. The description adds genuinely non-structured context: the default cohort is every institution in the same asset-size band that reported that quarter, and the output units (dollar amounts in thousands, ratios as percentages), which an agent cannot infer from annotations.

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, each earning its place: what is computed, how the peer group is configured, and the units of the returned numbers. Front-loaded with the core action and free of restatement of the tool name or title.

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

Completeness5/5

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

For a six-parameter tool with an output schema, full schema descriptions, and read-only annotations, the description supplies the remaining decision-relevant context: what gets returned, how the default cohort is chosen, and the units. Deferred-metric and small-cohort behaviors are handled in the schema, so nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema: it explains the default and the narrowing/widening/naming semantics of peer_asset_band, peer_state and peer_certs as a family of mutually exclusive alternatives, which the schema states only piecewise. It does not add syntax or value-level detail for metrics or report_date beyond what the schema already documents.

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 opens with a specific verb and resource ('Compare one institution with a peer group for one quarter') and enumerates exactly what the comparison yields: the institution's value alongside peer median, quartiles, min/max, percentile and rank. This is clearly distinguishable from siblings like fdic_get_institution_financials (single institution) or fdic_query_financials without opening either schema.

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 clear context on how the peer group resolves by default and the three ways to change it (narrow to a state, widen to all sizes, name by CERT), which tells the agent when each peer-selection parameter applies. It stops short of explicitly naming a sibling alternative for the single-institution case, so it is context-rich but lacks exclusions.

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.