fdic-mcp-server 1.27.0 → 1.29.0

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/dist/index.js CHANGED
@@ -32,7 +32,7 @@ var import_types = require("@modelcontextprotocol/sdk/types.js");
32
32
  var import_express2 = __toESM(require("express"));
33
33
 
34
34
  // src/constants.ts
35
- var VERSION = true ? "1.27.0" : process.env.npm_package_version ?? "0.0.0-dev";
35
+ var VERSION = true ? "1.29.0" : process.env.npm_package_version ?? "0.0.0-dev";
36
36
  var FDIC_API_BASE_URL = "https://banks.data.fdic.gov/api";
37
37
  var CHARACTER_LIMIT = 5e4;
38
38
  var DEFAULT_FDIC_MAX_RESPONSE_BYTES = 5 * 1024 * 1024;
@@ -31963,6 +31963,21 @@ var CertSchema = import_zod.z.object({
31963
31963
  // src/schemas/output.ts
31964
31964
  var import_zod2 = require("zod");
31965
31965
  var FdicRecord = import_zod2.z.record(import_zod2.z.unknown());
31966
+ var FdicFinancialRecord = import_zod2.z.object({
31967
+ CERT: import_zod2.z.number().int().optional(),
31968
+ NAME: import_zod2.z.string().optional(),
31969
+ REPDTE: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.number()]).optional(),
31970
+ ASSET: import_zod2.z.number().optional(),
31971
+ DEP: import_zod2.z.number().optional(),
31972
+ NETINC: import_zod2.z.number().optional(),
31973
+ ROA: import_zod2.z.number().optional(),
31974
+ ROE: import_zod2.z.number().optional(),
31975
+ IDT1CER: import_zod2.z.number().optional(),
31976
+ NCLNLSR: import_zod2.z.number().optional(),
31977
+ LNLSDEPR: import_zod2.z.number().optional(),
31978
+ NIMY: import_zod2.z.number().optional(),
31979
+ EEFFR: import_zod2.z.number().optional()
31980
+ }).passthrough();
31966
31981
  var Pagination = {
31967
31982
  total: import_zod2.z.number().int(),
31968
31983
  offset: import_zod2.z.number().int(),
@@ -31970,10 +31985,10 @@ var Pagination = {
31970
31985
  has_more: import_zod2.z.boolean(),
31971
31986
  next_offset: import_zod2.z.number().int().optional()
31972
31987
  };
31973
- function paginatedSearchSchema(recordKey) {
31988
+ function paginatedSearchSchema(recordKey, recordSchema = FdicRecord) {
31974
31989
  return import_zod2.z.object({
31975
31990
  ...Pagination,
31976
- [recordKey]: import_zod2.z.array(FdicRecord),
31991
+ [recordKey]: import_zod2.z.array(recordSchema),
31977
31992
  truncated: import_zod2.z.boolean().optional()
31978
31993
  });
31979
31994
  }
@@ -31984,7 +31999,8 @@ var FdicFailuresSearchOutputSchema = paginatedSearchSchema("failures");
31984
31999
  var FdicLocationsSearchOutputSchema = paginatedSearchSchema("locations");
31985
32000
  var FdicHistorySearchOutputSchema = paginatedSearchSchema("events");
31986
32001
  var FdicFinancialsSearchOutputSchema = paginatedSearchSchema(
31987
- "financials"
32002
+ "financials",
32003
+ FdicFinancialRecord
31988
32004
  );
31989
32005
  var FdicSummarySearchOutputSchema = paginatedSearchSchema("summary");
31990
32006
  var FdicSodSearchOutputSchema = paginatedSearchSchema("deposits");
@@ -32114,6 +32130,13 @@ var PeerHealthProxySummarySchema = import_zod2.z.object({
32114
32130
  gaps: import_zod2.z.array(import_zod2.z.string())
32115
32131
  })
32116
32132
  });
32133
+ var DeprecationNoticeSchema = import_zod2.z.object({
32134
+ path: import_zod2.z.string(),
32135
+ status: import_zod2.z.literal("deprecated"),
32136
+ replacement: import_zod2.z.string(),
32137
+ removal_target: import_zod2.z.literal("future_major_release"),
32138
+ note: import_zod2.z.string()
32139
+ });
32117
32140
  var FdicPeerHealthOutputSchema = import_zod2.z.object({
32118
32141
  model: import_zod2.z.literal("public_camels_proxy_v1"),
32119
32142
  official_status: import_zod2.z.literal("public off-site proxy, not official CAMELS"),
@@ -32127,6 +32150,7 @@ var FdicPeerHealthOutputSchema = import_zod2.z.object({
32127
32150
  subject_rank: import_zod2.z.number().int().nullable(),
32128
32151
  metrics: import_zod2.z.array(PeerHealthMetricRowSchema),
32129
32152
  institutions: import_zod2.z.array(PeerHealthInstitutionSchema),
32153
+ deprecations: import_zod2.z.array(DeprecationNoticeSchema),
32130
32154
  peer_context: import_zod2.z.object({
32131
32155
  peer_count: import_zod2.z.number().int(),
32132
32156
  peer_definition: import_zod2.z.string(),
@@ -35912,6 +35936,15 @@ function computePeerStats(subjectValue, peerValues, options) {
35912
35936
  }
35913
35937
 
35914
35938
  // src/tools/peerHealth.ts
35939
+ var PEER_HEALTH_DEPRECATIONS = [
35940
+ {
35941
+ path: "peer_context.subject_percentiles",
35942
+ status: "deprecated",
35943
+ replacement: "metrics",
35944
+ removal_target: "future_major_release",
35945
+ note: "Use metrics[] for new subject-vs-peer UI bindings. The legacy camelCase percentile map remains for backward compatibility until a coordinated major release."
35946
+ }
35947
+ ];
35915
35948
  var PEER_METRICS = [
35916
35949
  // legacyKey preserves the original camelCase peer_context map keys for backward compatibility.
35917
35950
  // New UI consumers should bind to the flat metrics[].name snake_case values instead.
@@ -35998,7 +36031,7 @@ Three usage modes:
35998
36031
 
35999
36032
  Optionally provide cert to highlight a subject institution's position in the ranking.
36000
36033
 
36001
- Output: structuredContent includes {model, official_status, report_date, institutions, metrics, peer_context, proxy_summary, proxy}. Institutions include proxy scores and name_source. When a subject cert is provided, metrics is a flat subject-vs-peer array and proxy_summary is a flattened subject proxy for UI binding while peer_context and proxy preserve the legacy detailed payloads. Auto-peer selection derives asset bands from report-date financials and broadens the cohort if fewer than 10 peers match.
36034
+ Output: structuredContent includes {model, official_status, report_date, institutions, metrics, peer_context, proxy_summary, proxy, deprecations}. Institutions include proxy scores and name_source. When a subject cert is provided, metrics[] is the preferred subject-vs-peer array for new UI bindings and proxy_summary is a flattened subject proxy. peer_context.subject_percentiles is deprecated, remains for backward compatibility, and is targeted for removal only in a future coordinated major release. Auto-peer selection derives asset bands from report-date financials and broadens the cohort if fewer than 10 peers match.
36002
36035
 
36003
36036
  NOTE: Public off-site analytical proxy \u2014 not official supervisory ratings.`,
36004
36037
  inputSchema: PeerHealthInputSchema,
@@ -36396,7 +36429,8 @@ NOTE: Public off-site analytical proxy \u2014 not official supervisory ratings.`
36396
36429
  subject_rank: subjectRank,
36397
36430
  metrics: metricRows,
36398
36431
  institutions: returned,
36399
- peer_context: peerContext
36432
+ peer_context: peerContext,
36433
+ deprecations: PEER_HEALTH_DEPRECATIONS
36400
36434
  }
36401
36435
  };
36402
36436
  } catch (err) {
package/dist/server.js CHANGED
@@ -47,7 +47,7 @@ var import_types = require("@modelcontextprotocol/sdk/types.js");
47
47
  var import_express2 = __toESM(require("express"));
48
48
 
49
49
  // src/constants.ts
50
- var VERSION = true ? "1.27.0" : process.env.npm_package_version ?? "0.0.0-dev";
50
+ var VERSION = true ? "1.29.0" : process.env.npm_package_version ?? "0.0.0-dev";
51
51
  var FDIC_API_BASE_URL = "https://banks.data.fdic.gov/api";
52
52
  var CHARACTER_LIMIT = 5e4;
53
53
  var DEFAULT_FDIC_MAX_RESPONSE_BYTES = 5 * 1024 * 1024;
@@ -31978,6 +31978,21 @@ var CertSchema = import_zod.z.object({
31978
31978
  // src/schemas/output.ts
31979
31979
  var import_zod2 = require("zod");
31980
31980
  var FdicRecord = import_zod2.z.record(import_zod2.z.unknown());
31981
+ var FdicFinancialRecord = import_zod2.z.object({
31982
+ CERT: import_zod2.z.number().int().optional(),
31983
+ NAME: import_zod2.z.string().optional(),
31984
+ REPDTE: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.number()]).optional(),
31985
+ ASSET: import_zod2.z.number().optional(),
31986
+ DEP: import_zod2.z.number().optional(),
31987
+ NETINC: import_zod2.z.number().optional(),
31988
+ ROA: import_zod2.z.number().optional(),
31989
+ ROE: import_zod2.z.number().optional(),
31990
+ IDT1CER: import_zod2.z.number().optional(),
31991
+ NCLNLSR: import_zod2.z.number().optional(),
31992
+ LNLSDEPR: import_zod2.z.number().optional(),
31993
+ NIMY: import_zod2.z.number().optional(),
31994
+ EEFFR: import_zod2.z.number().optional()
31995
+ }).passthrough();
31981
31996
  var Pagination = {
31982
31997
  total: import_zod2.z.number().int(),
31983
31998
  offset: import_zod2.z.number().int(),
@@ -31985,10 +32000,10 @@ var Pagination = {
31985
32000
  has_more: import_zod2.z.boolean(),
31986
32001
  next_offset: import_zod2.z.number().int().optional()
31987
32002
  };
31988
- function paginatedSearchSchema(recordKey) {
32003
+ function paginatedSearchSchema(recordKey, recordSchema = FdicRecord) {
31989
32004
  return import_zod2.z.object({
31990
32005
  ...Pagination,
31991
- [recordKey]: import_zod2.z.array(FdicRecord),
32006
+ [recordKey]: import_zod2.z.array(recordSchema),
31992
32007
  truncated: import_zod2.z.boolean().optional()
31993
32008
  });
31994
32009
  }
@@ -31999,7 +32014,8 @@ var FdicFailuresSearchOutputSchema = paginatedSearchSchema("failures");
31999
32014
  var FdicLocationsSearchOutputSchema = paginatedSearchSchema("locations");
32000
32015
  var FdicHistorySearchOutputSchema = paginatedSearchSchema("events");
32001
32016
  var FdicFinancialsSearchOutputSchema = paginatedSearchSchema(
32002
- "financials"
32017
+ "financials",
32018
+ FdicFinancialRecord
32003
32019
  );
32004
32020
  var FdicSummarySearchOutputSchema = paginatedSearchSchema("summary");
32005
32021
  var FdicSodSearchOutputSchema = paginatedSearchSchema("deposits");
@@ -32129,6 +32145,13 @@ var PeerHealthProxySummarySchema = import_zod2.z.object({
32129
32145
  gaps: import_zod2.z.array(import_zod2.z.string())
32130
32146
  })
32131
32147
  });
32148
+ var DeprecationNoticeSchema = import_zod2.z.object({
32149
+ path: import_zod2.z.string(),
32150
+ status: import_zod2.z.literal("deprecated"),
32151
+ replacement: import_zod2.z.string(),
32152
+ removal_target: import_zod2.z.literal("future_major_release"),
32153
+ note: import_zod2.z.string()
32154
+ });
32132
32155
  var FdicPeerHealthOutputSchema = import_zod2.z.object({
32133
32156
  model: import_zod2.z.literal("public_camels_proxy_v1"),
32134
32157
  official_status: import_zod2.z.literal("public off-site proxy, not official CAMELS"),
@@ -32142,6 +32165,7 @@ var FdicPeerHealthOutputSchema = import_zod2.z.object({
32142
32165
  subject_rank: import_zod2.z.number().int().nullable(),
32143
32166
  metrics: import_zod2.z.array(PeerHealthMetricRowSchema),
32144
32167
  institutions: import_zod2.z.array(PeerHealthInstitutionSchema),
32168
+ deprecations: import_zod2.z.array(DeprecationNoticeSchema),
32145
32169
  peer_context: import_zod2.z.object({
32146
32170
  peer_count: import_zod2.z.number().int(),
32147
32171
  peer_definition: import_zod2.z.string(),
@@ -35927,6 +35951,15 @@ function computePeerStats(subjectValue, peerValues, options) {
35927
35951
  }
35928
35952
 
35929
35953
  // src/tools/peerHealth.ts
35954
+ var PEER_HEALTH_DEPRECATIONS = [
35955
+ {
35956
+ path: "peer_context.subject_percentiles",
35957
+ status: "deprecated",
35958
+ replacement: "metrics",
35959
+ removal_target: "future_major_release",
35960
+ note: "Use metrics[] for new subject-vs-peer UI bindings. The legacy camelCase percentile map remains for backward compatibility until a coordinated major release."
35961
+ }
35962
+ ];
35930
35963
  var PEER_METRICS = [
35931
35964
  // legacyKey preserves the original camelCase peer_context map keys for backward compatibility.
35932
35965
  // New UI consumers should bind to the flat metrics[].name snake_case values instead.
@@ -36013,7 +36046,7 @@ Three usage modes:
36013
36046
 
36014
36047
  Optionally provide cert to highlight a subject institution's position in the ranking.
36015
36048
 
36016
- Output: structuredContent includes {model, official_status, report_date, institutions, metrics, peer_context, proxy_summary, proxy}. Institutions include proxy scores and name_source. When a subject cert is provided, metrics is a flat subject-vs-peer array and proxy_summary is a flattened subject proxy for UI binding while peer_context and proxy preserve the legacy detailed payloads. Auto-peer selection derives asset bands from report-date financials and broadens the cohort if fewer than 10 peers match.
36049
+ Output: structuredContent includes {model, official_status, report_date, institutions, metrics, peer_context, proxy_summary, proxy, deprecations}. Institutions include proxy scores and name_source. When a subject cert is provided, metrics[] is the preferred subject-vs-peer array for new UI bindings and proxy_summary is a flattened subject proxy. peer_context.subject_percentiles is deprecated, remains for backward compatibility, and is targeted for removal only in a future coordinated major release. Auto-peer selection derives asset bands from report-date financials and broadens the cohort if fewer than 10 peers match.
36017
36050
 
36018
36051
  NOTE: Public off-site analytical proxy \u2014 not official supervisory ratings.`,
36019
36052
  inputSchema: PeerHealthInputSchema,
@@ -36411,7 +36444,8 @@ NOTE: Public off-site analytical proxy \u2014 not official supervisory ratings.`
36411
36444
  subject_rank: subjectRank,
36412
36445
  metrics: metricRows,
36413
36446
  institutions: returned,
36414
- peer_context: peerContext
36447
+ peer_context: peerContext,
36448
+ deprecations: PEER_HEALTH_DEPRECATIONS
36415
36449
  }
36416
36450
  };
36417
36451
  } catch (err) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fdic-mcp-server",
3
- "version": "1.27.0",
3
+ "version": "1.29.0",
4
4
  "description": "MCP server for the FDIC BankFind Suite API",
5
5
  "mcpName": "io.github.jflamb/fdic-mcp-server",
6
6
  "main": "dist/server.js",