fdic-mcp-server 1.2.9 → 1.2.11
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 +1 -1
- package/dist/index.js +32 -7
- package/dist/server.js +32 -7
- package/package.json +2 -2
package/README.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -32,7 +32,7 @@ var import_types = require("@modelcontextprotocol/sdk/types.js");
|
|
|
32
32
|
var import_express = __toESM(require("express"));
|
|
33
33
|
|
|
34
34
|
// src/constants.ts
|
|
35
|
-
var VERSION = true ? "1.2.
|
|
35
|
+
var VERSION = true ? "1.2.11" : 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;
|
|
@@ -31182,6 +31182,18 @@ function parseCommaSeparatedFields(value) {
|
|
|
31182
31182
|
function quoteFieldList(fields) {
|
|
31183
31183
|
return fields.map((field) => `'${field}'`).join(", ");
|
|
31184
31184
|
}
|
|
31185
|
+
function findInvalidEndpointFields(endpoint, fields) {
|
|
31186
|
+
const metadata = getEndpointMetadata(endpoint);
|
|
31187
|
+
if (!metadata) {
|
|
31188
|
+
return [];
|
|
31189
|
+
}
|
|
31190
|
+
return fields.filter((field) => metadata.fields[field] === void 0);
|
|
31191
|
+
}
|
|
31192
|
+
function buildInvalidFieldError(endpoint, invalidFields) {
|
|
31193
|
+
return new Error(
|
|
31194
|
+
`Invalid field ${quoteFieldList(invalidFields)} for endpoint ${endpoint}. Use the endpoint-specific field catalog for ${endpoint}.`
|
|
31195
|
+
);
|
|
31196
|
+
}
|
|
31185
31197
|
function getEndpointMetadata(endpoint) {
|
|
31186
31198
|
const baseMetadata = FDIC_ENDPOINT_METADATA[endpoint];
|
|
31187
31199
|
if (!baseMetadata) {
|
|
@@ -31212,13 +31224,9 @@ function validateEndpointQueryParams(endpoint, params) {
|
|
|
31212
31224
|
}
|
|
31213
31225
|
if (params.fields) {
|
|
31214
31226
|
const requestedFields = parseCommaSeparatedFields(params.fields);
|
|
31215
|
-
const invalidFields = requestedFields
|
|
31216
|
-
(field) => metadata.fields[field] === void 0
|
|
31217
|
-
);
|
|
31227
|
+
const invalidFields = findInvalidEndpointFields(endpoint, requestedFields);
|
|
31218
31228
|
if (invalidFields.length > 0) {
|
|
31219
|
-
throw
|
|
31220
|
-
`Invalid field ${quoteFieldList(invalidFields)} for endpoint ${endpoint}. Use the endpoint-specific field catalog for ${endpoint}.`
|
|
31221
|
-
);
|
|
31229
|
+
throw buildInvalidFieldError(endpoint, invalidFields);
|
|
31222
31230
|
}
|
|
31223
31231
|
}
|
|
31224
31232
|
if (params.sort_by && metadata.fields[params.sort_by] === void 0) {
|
|
@@ -33438,6 +33446,19 @@ function validatePeerGroupParams(value) {
|
|
|
33438
33446
|
}
|
|
33439
33447
|
return null;
|
|
33440
33448
|
}
|
|
33449
|
+
function validateExtraFields(extraFields) {
|
|
33450
|
+
if (!extraFields || extraFields.length === 0) {
|
|
33451
|
+
return null;
|
|
33452
|
+
}
|
|
33453
|
+
const invalidFields = findInvalidEndpointFields(
|
|
33454
|
+
ENDPOINTS.FINANCIALS,
|
|
33455
|
+
extraFields
|
|
33456
|
+
);
|
|
33457
|
+
if (invalidFields.length === 0) {
|
|
33458
|
+
return null;
|
|
33459
|
+
}
|
|
33460
|
+
return buildInvalidFieldError(ENDPOINTS.FINANCIALS, invalidFields);
|
|
33461
|
+
}
|
|
33441
33462
|
var FINANCIAL_FIELDS = "CERT,ASSET,DEP,NETINC,ROA,ROE,NETNIM,EQTOT,LNLSNET,INTINC,EINTEXP,NONII,NONIX";
|
|
33442
33463
|
function comparePeerEntriesByAsset(left, right) {
|
|
33443
33464
|
const primary = (right.metrics.asset ?? 0) - (left.metrics.asset ?? 0);
|
|
@@ -33557,6 +33578,10 @@ Override precedence: cert derives defaults, then explicit params override them.`
|
|
|
33557
33578
|
if (validationError) {
|
|
33558
33579
|
return formatToolError(new Error(validationError));
|
|
33559
33580
|
}
|
|
33581
|
+
const extraFieldsError = validateExtraFields(params.extra_fields);
|
|
33582
|
+
if (extraFieldsError) {
|
|
33583
|
+
return formatToolError(extraFieldsError);
|
|
33584
|
+
}
|
|
33560
33585
|
await sendProgressNotification(
|
|
33561
33586
|
server.server,
|
|
33562
33587
|
progressToken,
|
package/dist/server.js
CHANGED
|
@@ -46,7 +46,7 @@ var import_types = require("@modelcontextprotocol/sdk/types.js");
|
|
|
46
46
|
var import_express = __toESM(require("express"));
|
|
47
47
|
|
|
48
48
|
// src/constants.ts
|
|
49
|
-
var VERSION = true ? "1.2.
|
|
49
|
+
var VERSION = true ? "1.2.11" : process.env.npm_package_version ?? "0.0.0-dev";
|
|
50
50
|
var FDIC_API_BASE_URL = "https://banks.data.fdic.gov/api";
|
|
51
51
|
var CHARACTER_LIMIT = 5e4;
|
|
52
52
|
var DEFAULT_FDIC_MAX_RESPONSE_BYTES = 5 * 1024 * 1024;
|
|
@@ -31196,6 +31196,18 @@ function parseCommaSeparatedFields(value) {
|
|
|
31196
31196
|
function quoteFieldList(fields) {
|
|
31197
31197
|
return fields.map((field) => `'${field}'`).join(", ");
|
|
31198
31198
|
}
|
|
31199
|
+
function findInvalidEndpointFields(endpoint, fields) {
|
|
31200
|
+
const metadata = getEndpointMetadata(endpoint);
|
|
31201
|
+
if (!metadata) {
|
|
31202
|
+
return [];
|
|
31203
|
+
}
|
|
31204
|
+
return fields.filter((field) => metadata.fields[field] === void 0);
|
|
31205
|
+
}
|
|
31206
|
+
function buildInvalidFieldError(endpoint, invalidFields) {
|
|
31207
|
+
return new Error(
|
|
31208
|
+
`Invalid field ${quoteFieldList(invalidFields)} for endpoint ${endpoint}. Use the endpoint-specific field catalog for ${endpoint}.`
|
|
31209
|
+
);
|
|
31210
|
+
}
|
|
31199
31211
|
function getEndpointMetadata(endpoint) {
|
|
31200
31212
|
const baseMetadata = FDIC_ENDPOINT_METADATA[endpoint];
|
|
31201
31213
|
if (!baseMetadata) {
|
|
@@ -31226,13 +31238,9 @@ function validateEndpointQueryParams(endpoint, params) {
|
|
|
31226
31238
|
}
|
|
31227
31239
|
if (params.fields) {
|
|
31228
31240
|
const requestedFields = parseCommaSeparatedFields(params.fields);
|
|
31229
|
-
const invalidFields = requestedFields
|
|
31230
|
-
(field) => metadata.fields[field] === void 0
|
|
31231
|
-
);
|
|
31241
|
+
const invalidFields = findInvalidEndpointFields(endpoint, requestedFields);
|
|
31232
31242
|
if (invalidFields.length > 0) {
|
|
31233
|
-
throw
|
|
31234
|
-
`Invalid field ${quoteFieldList(invalidFields)} for endpoint ${endpoint}. Use the endpoint-specific field catalog for ${endpoint}.`
|
|
31235
|
-
);
|
|
31243
|
+
throw buildInvalidFieldError(endpoint, invalidFields);
|
|
31236
31244
|
}
|
|
31237
31245
|
}
|
|
31238
31246
|
if (params.sort_by && metadata.fields[params.sort_by] === void 0) {
|
|
@@ -33452,6 +33460,19 @@ function validatePeerGroupParams(value) {
|
|
|
33452
33460
|
}
|
|
33453
33461
|
return null;
|
|
33454
33462
|
}
|
|
33463
|
+
function validateExtraFields(extraFields) {
|
|
33464
|
+
if (!extraFields || extraFields.length === 0) {
|
|
33465
|
+
return null;
|
|
33466
|
+
}
|
|
33467
|
+
const invalidFields = findInvalidEndpointFields(
|
|
33468
|
+
ENDPOINTS.FINANCIALS,
|
|
33469
|
+
extraFields
|
|
33470
|
+
);
|
|
33471
|
+
if (invalidFields.length === 0) {
|
|
33472
|
+
return null;
|
|
33473
|
+
}
|
|
33474
|
+
return buildInvalidFieldError(ENDPOINTS.FINANCIALS, invalidFields);
|
|
33475
|
+
}
|
|
33455
33476
|
var FINANCIAL_FIELDS = "CERT,ASSET,DEP,NETINC,ROA,ROE,NETNIM,EQTOT,LNLSNET,INTINC,EINTEXP,NONII,NONIX";
|
|
33456
33477
|
function comparePeerEntriesByAsset(left, right) {
|
|
33457
33478
|
const primary = (right.metrics.asset ?? 0) - (left.metrics.asset ?? 0);
|
|
@@ -33571,6 +33592,10 @@ Override precedence: cert derives defaults, then explicit params override them.`
|
|
|
33571
33592
|
if (validationError) {
|
|
33572
33593
|
return formatToolError(new Error(validationError));
|
|
33573
33594
|
}
|
|
33595
|
+
const extraFieldsError = validateExtraFields(params.extra_fields);
|
|
33596
|
+
if (extraFieldsError) {
|
|
33597
|
+
return formatToolError(extraFieldsError);
|
|
33598
|
+
}
|
|
33574
33599
|
await sendProgressNotification(
|
|
33575
33600
|
server.server,
|
|
33576
33601
|
progressToken,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fdic-mcp-server",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.11",
|
|
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",
|
|
@@ -73,6 +73,6 @@
|
|
|
73
73
|
"yaml": "^2.8.1"
|
|
74
74
|
},
|
|
75
75
|
"engines": {
|
|
76
|
-
"node": ">=
|
|
76
|
+
"node": ">=20.0.0"
|
|
77
77
|
}
|
|
78
78
|
}
|