@blen/fedreg-mcp-server 2.0.8 → 2.0.9
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/CHANGELOG.md +7 -1
- package/dist/sdk/bindings.js +1 -1
- package/dist/sdk/ecfr-client.d.ts.map +1 -1
- package/dist/sdk/ecfr-client.js +5 -1
- package/dist/sdk/ecfr-client.js.map +1 -1
- package/dist/server/mcpServer.js +1 -1
- package/dist/util/httpClient.d.ts.map +1 -1
- package/dist/util/httpClient.js +12 -3
- package/dist/util/httpClient.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,11 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
|
|
18
|
+
## [2.0.9] - 2026-10-08
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- request and decode gzip full-text responses (ecfr)
|
|
17
22
|
## [2.0.8] - 2026-09-23
|
|
18
23
|
|
|
19
24
|
### Changed
|
|
@@ -185,7 +190,8 @@ Initial public release.
|
|
|
185
190
|
→ notifications/initialized → tools/list → tools/call → sandbox → SDK
|
|
186
191
|
→ mocked upstream).
|
|
187
192
|
|
|
188
|
-
[Unreleased]: https://github.com/blen-labs/fedreg-mcp-server/compare/v2.0.
|
|
193
|
+
[Unreleased]: https://github.com/blen-labs/fedreg-mcp-server/compare/v2.0.9...HEAD
|
|
194
|
+
[2.0.9]: https://github.com/blen-labs/fedreg-mcp-server/compare/v2.0.8...v2.0.9
|
|
189
195
|
[2.0.8]: https://github.com/blen-labs/fedreg-mcp-server/compare/v2.0.7...v2.0.8
|
|
190
196
|
[2.0.7]: https://github.com/blen-labs/fedreg-mcp-server/compare/v2.0.6...v2.0.7
|
|
191
197
|
[2.0.6]: https://github.com/blen-labs/fedreg-mcp-server/compare/v2.0.5...v2.0.6
|
package/dist/sdk/bindings.js
CHANGED
|
@@ -13,7 +13,7 @@ export function buildSdk(cfg) {
|
|
|
13
13
|
methods: Object.freeze(methods),
|
|
14
14
|
meta: sources.map(({ name, label, enabled, disabledReason }) => ({ name, label, enabled, disabledReason })),
|
|
15
15
|
registeredNames: sources.map(s => s.name),
|
|
16
|
-
version: () => '2.0.
|
|
16
|
+
version: () => '2.0.9', // x-release-version
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=bindings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecfr-client.d.ts","sourceRoot":"","sources":["../../src/sdk/ecfr-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACzD;AAED,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,KAAK;;8BAEmB;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;SAAE;uCAEvD,MAAM,UAAU;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE;MAEhE;IAEF,MAAM;;MAEJ;IAEF,SAAS,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,sBAC0C;IAElF,QAAQ,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,sBACQ;IAExF,QAAQ,GAAI,OAAO,MAAM,EAAE,QAAQ;QAAE,UAAU,CAAC,EAAE;YAAE,EAAE,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,sBACd;IAEtG,wFAAwF;IACxF,IAAI,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"ecfr-client.d.ts","sourceRoot":"","sources":["../../src/sdk/ecfr-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACzD;AAED,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,KAAK;;8BAEmB;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;SAAE;uCAEvD,MAAM,UAAU;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE;MAEhE;IAEF,MAAM;;MAEJ;IAEF,SAAS,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,sBAC0C;IAElF,QAAQ,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,sBACQ;IAExF,QAAQ,GAAI,OAAO,MAAM,EAAE,QAAQ;QAAE,UAAU,CAAC,EAAE;YAAE,EAAE,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,sBACd;IAEtG,wFAAwF;IACxF,IAAI,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,qBAKvE;IAEL,MAAM;0BACc,gBAAgB;+BAEX,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,cAAc,GAAG,WAAW,CAAC;gCAE7D,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,cAAc,GAAG,WAAW,CAAC;mCAE3D,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,cAAc,GAAG,WAAW,CAAC;8BAEnE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC;MAErD;CACH"}
|
package/dist/sdk/ecfr-client.js
CHANGED
|
@@ -15,7 +15,11 @@ export class EcfrClient {
|
|
|
15
15
|
ancestry = (date, title, query) => this.http.call({ path: `/versioner/v1/ancestry/${date}/title-${title}.json`, query });
|
|
16
16
|
versions = (title, query) => this.http.call({ path: `/versioner/v1/versions/title-${title}.json`, query: flatten(query ?? {}) });
|
|
17
17
|
/** Returns XML as a string. Large for whole titles; prefer structure/ancestry first. */
|
|
18
|
-
full = (date, title, query) => this.http.call({
|
|
18
|
+
full = (date, title, query) => this.http.call({
|
|
19
|
+
path: `/versioner/v1/full/${date}/title-${title}.xml`, query, accept: 'xml',
|
|
20
|
+
// eCFR requires compression for its full-text endpoint.
|
|
21
|
+
headers: { 'accept-encoding': 'gzip' },
|
|
22
|
+
});
|
|
19
23
|
search = {
|
|
20
24
|
results: (params) => this.http.call({ path: '/search/v1/results', query: flatten(params) }),
|
|
21
25
|
counts_daily: (params) => this.http.call({ path: '/search/v1/counts/daily', query: flatten(params) }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecfr-client.js","sourceRoot":"","sources":["../../src/sdk/ecfr-client.ts"],"names":[],"mappings":"AAyBA,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,KAAK,GAAG;QACN,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;QACnE,WAAW,EAAE,CAAC,KAAwE,EAAE,EAAE,CACxF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACrF,qBAAqB,EAAE,CAAC,KAAa,EAAE,KAAyB,EAAE,EAAE,CAClE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,+BAA+B,KAAK,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;KACrG,CAAC;IAEF,MAAM,GAAG;QACP,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC;KAClE,CAAC;IAEF,SAAS,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,2BAA2B,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC,CAAC;IAElF,QAAQ,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,KAAuC,EAAE,EAAE,CAClF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,IAAI,UAAU,KAAK,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAExF,QAAQ,GAAG,CAAC,KAAa,EAAE,KAAyF,EAAE,EAAE,CACtH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gCAAgC,KAAK,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAEtG,wFAAwF;IACxF,IAAI,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,KAAuC,EAAE,EAAE,CAC9E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAS,
|
|
1
|
+
{"version":3,"file":"ecfr-client.js","sourceRoot":"","sources":["../../src/sdk/ecfr-client.ts"],"names":[],"mappings":"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"}
|
package/dist/server/mcpServer.js
CHANGED
|
@@ -34,7 +34,7 @@ function cachedInputSchema(name, jsonSchema) {
|
|
|
34
34
|
return converted;
|
|
35
35
|
}
|
|
36
36
|
export function buildMcpServer(deps, requestCtx) {
|
|
37
|
-
const server = new McpServer({ name: 'fedreg-mcp-server', version: '2.0.
|
|
37
|
+
const server = new McpServer({ name: 'fedreg-mcp-server', version: '2.0.9' }, // x-release-version
|
|
38
38
|
{
|
|
39
39
|
capabilities: { tools: {} },
|
|
40
40
|
cacheHints: { 'tools/list': LIST_CACHE_HINT, 'server/discover': LIST_CACHE_HINT },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../src/util/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../src/util/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AASlD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE;QAAE,OAAO,IAAI,OAAO,CAAC;QAAC,gBAAgB,CAAC,IAAI,MAAM,CAAA;KAAE,CAAC;CACxE;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,UAAU;;IAErB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuF;IAC7G,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAsD;gBAE5E,IAAI,EAAE,iBAAiB;IAe7B,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IA8EnD,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,QAAQ;CAajB;AAED,qBAAa,SAAU,SAAQ,KAAK;aACW,MAAM,EAAE,MAAM;aAAkB,WAAW,EAAE,MAAM;gBAApF,OAAO,EAAE,MAAM,EAAkB,MAAM,EAAE,MAAM,EAAkB,WAAW,EAAE,MAAM;CAIjG"}
|
package/dist/util/httpClient.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { request } from 'undici';
|
|
2
2
|
import { LRUCache } from 'lru-cache';
|
|
3
3
|
import { createHash } from 'node:crypto';
|
|
4
|
+
import { gunzip } from 'node:zlib';
|
|
5
|
+
import { promisify } from 'node:util';
|
|
4
6
|
import { log } from './logger.js';
|
|
7
|
+
const decompressGzip = promisify(gunzip);
|
|
5
8
|
export class HttpClient {
|
|
6
9
|
#defaultHeaders;
|
|
7
10
|
cache;
|
|
@@ -62,8 +65,14 @@ export class HttpClient {
|
|
|
62
65
|
headersTimeout: this.timeoutMs,
|
|
63
66
|
...(this.dispatcher ? { dispatcher: this.dispatcher } : {}),
|
|
64
67
|
});
|
|
68
|
+
// undici.request returns raw bytes, unlike fetch. Decode before parsing,
|
|
69
|
+
// reporting upstream errors, or caching the response.
|
|
70
|
+
const encoding = res.headers['content-encoding'];
|
|
71
|
+
const decoded = typeof encoding === 'string' && encoding.trim().toLowerCase() === 'gzip'
|
|
72
|
+
? new TextDecoder().decode(await decompressGzip(Buffer.from(await res.body.arrayBuffer())))
|
|
73
|
+
: undefined;
|
|
65
74
|
if (res.statusCode >= 400) {
|
|
66
|
-
const text = await res.body.text();
|
|
75
|
+
const text = decoded ?? await res.body.text();
|
|
67
76
|
const err = new HttpError(`${method} ${url} -> ${res.statusCode}`, res.statusCode, text);
|
|
68
77
|
if (res.statusCode === 429) {
|
|
69
78
|
const retryAfter = Array.isArray(res.headers['retry-after']) ? res.headers['retry-after'][0] : res.headers['retry-after'];
|
|
@@ -74,9 +83,9 @@ export class HttpClient {
|
|
|
74
83
|
}
|
|
75
84
|
let body;
|
|
76
85
|
if (accept.startsWith('application/json'))
|
|
77
|
-
body = await res.body.json();
|
|
86
|
+
body = decoded === undefined ? await res.body.json() : JSON.parse(decoded);
|
|
78
87
|
else
|
|
79
|
-
body = await res.body.text();
|
|
88
|
+
body = decoded ?? await res.body.text();
|
|
80
89
|
const headers = {};
|
|
81
90
|
for (const [k, v] of Object.entries(res.headers))
|
|
82
91
|
headers[k] = Array.isArray(v) ? v.join(',') : String(v ?? '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpClient.js","sourceRoot":"","sources":["../../src/util/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAmB,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"httpClient.js","sourceRoot":"","sources":["../../src/util/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAmB,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAwBzC,MAAM,OAAO,UAAU;IACrB,eAAe,CAAyB;IACvB,KAAK,CAAuF;IAC5F,YAAY,CAAU;IACtB,OAAO,CAAS;IAChB,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,OAAO,CAAS;IAChB,QAAQ,CAAU;IAClB,UAAU,CAAc;IACxB,gBAAgB,CAAuD;IAExF,YAAY,IAAuB;QACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,yEAAyE,CAAC;QAC7G,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,IAAI,CAAc,CAAc;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAS,CAAC;QACxC,CAAC;QAED,MAAM,MAAM,GACV,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,0BAA0B;YAC/C,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY;gBACpC,CAAC,CAAC,kBAAkB,CAAC;QAEvB,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7D,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,MAAM,IAAI,GAAG,kCAAkC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACzJ,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC;YAC7B,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAgB,CAAC;QACrB,OAAO,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;oBAC7B,MAAM;oBACN,OAAO,EAAE;wBACP,QAAQ,EAAE,MAAM;wBAChB,YAAY,EAAE,IAAI,CAAC,SAAS;wBAC5B,GAAG,IAAI,CAAC,eAAe;wBACvB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzD,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;qBACrB;oBACD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;oBACjD,WAAW,EAAE,IAAI,CAAC,SAAS;oBAC3B,cAAc,EAAE,IAAI,CAAC,SAAS;oBAC9B,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5D,CAAC,CAAC;gBAEH,yEAAyE;gBACzE,sDAAsD;gBACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;gBACjD,MAAM,OAAO,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM;oBACtF,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC3F,CAAC,CAAC,SAAS,CAAC;gBAEd,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oBAC1B,MAAM,IAAI,GAAG,OAAO,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC9C,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBACzF,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;wBAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;wBAC1H,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC;wBACzB,GAAG,CAAC,OAAO,GAAG,GAAG,MAAM,IAAI,GAAG,4BAA4B,UAAU,CAAC,CAAC,CAAC,iBAAiB,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC/G,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;gBAED,IAAI,IAAa,CAAC;gBAClB,IAAI,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC;oBAAE,IAAI,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;;oBACjH,IAAI,GAAG,OAAO,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC7C,MAAM,OAAO,GAA2B,EAAE,CAAC;gBAC3C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;oBAAE,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChH,IAAI,GAAG;oBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBACxE,OAAO,IAAS,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,GAAG,GAAG,CAAC;gBACd,MAAM,MAAM,GAAG,GAAG,YAAY,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,IAAI,GAAG,CAAC;gBACrF,IAAI,CAAC,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO;oBAAE,MAAM;gBAClD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;gBACjD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC7C,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,MAAM,OAAO,CAAC;IAChB,CAAC;IAEO,QAAQ,CAAC,GAAW,EAAE,cAAuC;QACnE,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC,CAAC,mCAAmC;QACzE,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAAE,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;QACrG,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChG,OAAO,GAAG,GAAG,KAAK,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEO,QAAQ,CAAC,IAAY,EAAE,KAA4B;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;QACnD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;oBAAE,SAAS;gBAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAAE,KAAK,MAAM,IAAI,IAAI,CAAC;wBAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;oBAChF,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;CACF;AAED,MAAM,OAAO,SAAU,SAAQ,KAAK;IACW;IAAgC;IAA7E,YAAY,OAAe,EAAkB,MAAc,EAAkB,WAAmB;QAC9F,KAAK,CAAC,OAAO,CAAC,CAAC;QAD4B,WAAM,GAAN,MAAM,CAAQ;QAAkB,gBAAW,GAAX,WAAW,CAAQ;QAE9F,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blen/fedreg-mcp-server",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"description": "Code-mode MCP server for the U.S. Federal Register, Electronic Code of Federal Regulations, and regulations.gov APIs.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "BLEN, Inc. (https://blenlabs.com)",
|