fdic-mcp-server 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,11 +5,13 @@ An MCP (Model Context Protocol) server that provides access to the [FDIC BankFin
5
5
  ## Features
6
6
 
7
7
  - **No API key required** — The FDIC BankFind API is publicly available
8
- - **10 tools** covering all BankFind dataset endpoints
8
+ - **11 tools** covering BankFind datasets plus a built-in comparative analysis tool
9
9
  - **Flexible ElasticSearch-style filtering** on all endpoints
10
10
  - **Pagination support** for large result sets
11
11
  - **Dual transport**: stdio (local) or HTTP (remote)
12
12
  - **Structured tool output** via `structuredContent` for MCP clients
13
+ - **Built-in analytical batching** for multi-bank comparisons
14
+ - **Short-lived response caching** for repeated analytical prompts
13
15
 
14
16
  ## Available Tools
15
17
 
@@ -25,11 +27,17 @@ An MCP (Model Context Protocol) server that provides access to the [FDIC BankFin
25
27
  | `fdic_search_summary` | Search annual financial summary data |
26
28
  | `fdic_search_sod` | Search Summary of Deposits (branch-level deposit data) |
27
29
  | `fdic_search_demographics` | Search quarterly demographics and market-structure data |
30
+ | `fdic_compare_bank_snapshots` | Compare two reporting snapshots across banks and rank growth/profitability changes |
28
31
 
29
32
  Two tools are convenience lookups rather than separate BankFind datasets:
30
33
  - `fdic_get_institution` wraps the `institutions` dataset
31
34
  - `fdic_get_institution_failure` wraps the `failures` dataset
32
35
 
36
+ One tool is a server-side analysis helper:
37
+ - `fdic_compare_bank_snapshots` batches roster lookup, financial snapshots, and optional demographics snapshots inside the MCP server so complex trend prompts do not require many separate tool calls
38
+ - It supports both `snapshot` comparisons and `timeseries` analysis across a quarterly range
39
+ - It computes derived efficiency and balance-sheet metrics and assigns insight tags for notable growth patterns
40
+
33
41
  ## Filter Syntax
34
42
 
35
43
  All tools support ElasticSearch query string syntax for filtering:
@@ -93,24 +101,6 @@ git push origin main --follow-tags
93
101
 
94
102
  Publishing from GitHub Actions is intended to use npm trusted publishing via GitHub Actions OIDC rather than a long-lived `NPM_TOKEN`.
95
103
 
96
- ### Local Secrets With direnv
97
-
98
- To keep tokens local to this repo without committing them:
99
-
100
- ```bash
101
- cp .envrc.example .envrc
102
- $EDITOR .envrc
103
- direnv allow
104
- ```
105
-
106
- Example `.envrc` entry:
107
-
108
- ```bash
109
- export GITHUB_TOKEN="your_pat_here"
110
- ```
111
-
112
- The repo ignores `.envrc`, `.envrc.local`, and `.env` so local secrets stay untracked.
113
-
114
104
  ## Usage
115
105
 
116
106
  ### CLI bundle
@@ -188,10 +178,53 @@ sort_order: DESC
188
178
  (fdic_search_demographics)
189
179
  ```
190
180
 
181
+ **Rank banks by growth across two dates without orchestrating many separate queries:**
182
+ ```
183
+ state: North Carolina
184
+ start_repdte: 20211231
185
+ end_repdte: 20250630
186
+ sort_by: asset_growth
187
+ sort_order: DESC
188
+ (fdic_compare_bank_snapshots)
189
+ ```
190
+
191
+ **Analyze quarterly trends with streaks and derived metrics:**
192
+ ```
193
+ state: North Carolina
194
+ start_repdte: 20211231
195
+ end_repdte: 20250630
196
+ analysis_mode: timeseries
197
+ sort_by: asset_growth_pct
198
+ sort_order: DESC
199
+ (fdic_compare_bank_snapshots)
200
+ ```
201
+
202
+ ## Complex Prompts
203
+
204
+ The built-in `fdic_compare_bank_snapshots` tool is meant to make analysis-heavy prompts performant by batching FDIC calls inside the MCP server. The server also caches repeated state/date lookups for a short period, which helps iterative analysis. Good examples:
205
+
206
+ - Identify North Carolina banks with the strongest asset growth from 2021 to 2025, then compare whether that growth came with higher deposits, more branches, or better profitability
207
+ - Rank a set of banks by deposit growth percentage between two report dates and check which ones also improved ROA or ROE
208
+ - Compare current active banks in a state between two snapshots to see which institutions grew while reducing office counts
209
+ - Analyze whether rapid asset growth was accompanied by stronger profitability or just balance-sheet expansion
210
+ - Analyze quarterly trends from 2021 through 2025 and call out inflection points, sustained asset-growth streaks, or multi-quarter ROA declines
211
+ - Identify banks whose deposits-per-office and assets-per-office improved even while total branch counts fell
212
+ - Separate banks with branch-supported growth from banks that mainly expanded their balance sheets
213
+
214
+ The tool can take either:
215
+ - `state` plus optional `institution_filters` to build a roster
216
+ - `certs` to compare a specific list of institutions directly
217
+
218
+ Notable outputs from `fdic_compare_bank_snapshots`:
219
+ - point-to-point changes for assets, deposits, net income, ROA, ROE, and office counts
220
+ - derived metrics such as `assets_per_office_change`, `deposits_per_office_change`, and `deposits_to_assets_change`
221
+ - insight tags such as `growth_with_better_profitability`, `growth_with_branch_expansion`, `balance_sheet_growth_without_profitability`, and `growth_with_branch_consolidation`
222
+ - in `timeseries` mode, quarterly series plus streak metrics like sustained asset growth and multi-quarter ROA decline
223
+
191
224
  ## Response Shape
192
225
 
193
226
  All tools return:
194
- - human-readable JSON in `content[0].text`
227
+ - a human-readable text representation in `content[0].text`
195
228
  - machine-readable data in `structuredContent`
196
229
 
197
230
  Typical search response shape: