MCP server for the FDIC BankFind Suite API, providing access to banking institution data, financial metrics, risk signals, and analysis tools
The server defines 25 tools with consistent naming patterns (verb_noun: search_, fetch_, get_, analyze_), all starting with action verbs. However, descriptions are brief (averaging ~60-90 chars), and parameter descriptions are sparse or missing entirely. Input schemas are present for all tools but lack depth, most parameters have minimal type information and no validation constraints (enums, min/max, patterns). Output schemas are not documented. Error handling guidance is absent from tool descriptions. The server demonstrates solid fundamentals but falls short of production quality: descriptions are too terse to guide LLM selection, parameter constraints are not enforced through schema, and there is no recovery guidance for common failure modes.
Analyze and generate health assessment for a bank based on FDIC data
Generate comprehensive deep dive analysis and dashboard for a bank
Fetch detailed institution data with ChatGPT-compatible parameters
Search for institutions with ChatGPT-compatible parameters
Fetch detailed information about a specific FDIC-insured institution by CERT number
Get comprehensive health metrics for a bank
Retrieve historical timeline and events for a bank
Get branch locations and office information for a specific bank
Parameter descriptions are sparse or absent. The server provides minimal guidance on what values are expected, valid ranges, formats, or constraints. For example, 'state' parameter in search_institutions accepts a 'State abbreviation' but provides no enum or pattern constraint. LLMs cannot infer whether 'CA', 'California', or 'ca' is valid.
Output schemas are not documented. LLMs have no visibility into what fields each tool returns, forcing them to guess at downstream field names and types. This increases hallucination risk and breaks tool chains (e.g., if analyze_bank_health returns a 'health_score' but the LLM expects 'risk_rating', mismatches occur).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2025-06-18+ | v2 |
Get credit concentration analysis for a bank
Get demographic and market information for a bank's service area
Retrieve financial statements and metrics for a bank
Get franchise footprint and branch network analysis
Analyze funding sources and profile for a bank
Get holding company structure and relationship information
Get market share analysis for a bank in its service area
Get peer group comparison data for a bank
Get peer health metrics for comparison analysis
Get Quick Bank Profile (QBP) lite summary data
Get regional economic and competitive context for a bank
Identify and retrieve risk signals for a bank
Get securities portfolio analysis for a bank
Get Statement of Deposits (SOD) data for a bank
Get Uniform Bank Performance Report (UBPR) analysis
Search historical FDIC bank failure and closure data
Search for FDIC-insured institutions by name, location, or other criteria
Tool descriptions are too brief (averaging 50 - 90 characters). Critical context is missing: WHEN to use each tool versus similar alternatives, WHAT prerequisites exist (e.g., must call search_institutions before fetch_institution), and WHAT the output is used for. Example: 'get_bank_health_metrics' vs 'analyze_bank_health', the descriptions do not distinguish them.
No error handling guidance. Tool descriptions do not explain what errors can occur, what they mean, or how to recover. LLMs receive raw errors with no actionable next steps. Example: if fetch_institution returns a 404, should the LLM call search_institutions, or is the cert invalid?
Overlapping tool functionality without clear disambiguation. Multiple tools return similar data: get_bank_health_metrics, analyze_bank_health, get_ubpr_analysis, get_risk_signals, get_peer_health_metrics all appear to analyze bank health but descriptions do not clarify differences. LLMs waste reasoning cycles choosing between them.
Parameter constraints are not enforced. cert, state, year_from, year_to parameters accept free-form strings/integers with no min/max, enum, or regex validation in schemas. LLMs can pass 'CA' or 'California' or 'california' for state; only one is valid. No constraints force the LLM to guess.
Generic ChatGPT adapter tools (fdic_search, fdic_fetch, fdic_bank_deep_dive) lack clear purpose. Descriptions do not explain when to use these vs native tools (search_institutions, fetch_institution, analyze_bank_health). Dual tool sets create confusion and force LLMs to pick between near-identical alternatives.