@cyanheads/congressgov-mcp-server 0.7.2 → 0.7.4
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/AGENTS.md +21 -18
- package/CLAUDE.md +21 -18
- package/Dockerfile +81 -36
- package/README.md +93 -99
- package/changelog/0.7.x/0.7.3.md +36 -0
- package/changelog/0.7.x/0.7.4.md +31 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/tools/definitions/committee-reports.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/committee-reports.tool.js +0 -1
- package/dist/mcp-server/tools/definitions/committee-reports.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/daily-record.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/daily-record.tool.js +0 -1
- package/dist/mcp-server/tools/definitions/daily-record.tool.js.map +1 -1
- package/dist/mcp-server/tools/tool-helpers.d.ts +4 -4
- package/dist/mcp-server/tools/tool-helpers.js +4 -4
- package/dist/services/congress-documents/congress-documents-service.d.ts.map +1 -1
- package/dist/services/congress-documents/congress-documents-service.js +23 -31
- package/dist/services/congress-documents/congress-documents-service.js.map +1 -1
- package/package.json +13 -12
- package/server.json +11 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daily-record.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/daily-record.tool.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"daily-record.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/daily-record.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -187,8 +187,8 @@ export declare const documentWindowInput: {
|
|
|
187
187
|
* reach it.
|
|
188
188
|
*
|
|
189
189
|
* `CongressDocumentsService` raises each with a matching `data.reason` and
|
|
190
|
-
*
|
|
191
|
-
*
|
|
190
|
+
* the framework fills the `recovery` hint declared here, so the hint lives in
|
|
191
|
+
* exactly one place. Direct-handler tests retain explicit forwards where needed.
|
|
192
192
|
* Resolves cyanheads/congressgov-mcp-server#53.
|
|
193
193
|
*/
|
|
194
194
|
export declare const documentErrorContracts: readonly [{
|
|
@@ -226,8 +226,8 @@ export declare const documentErrorContracts: readonly [{
|
|
|
226
226
|
readonly recovery: "Restart the walk at characterOffset 0 and follow the response's nextOffset (or a summary row's textNextOffset), which goes null once the text has been read to the end.";
|
|
227
227
|
}];
|
|
228
228
|
/**
|
|
229
|
-
* Shared `errors[]` contract for every Congress.gov tool.
|
|
230
|
-
* the same `CongressApiService` fetch path, so they surface the same four
|
|
229
|
+
* Shared `errors[]` contract for every Congress.gov API tool. Every tool except
|
|
230
|
+
* the mirror-backed `congressgov_search_bills` reaches the same `CongressApiService` fetch path, so they surface the same four
|
|
231
231
|
* upstream failure modes. The service raises each with a matching `data.reason`
|
|
232
232
|
* and `data.recovery.hint` (see `classifyUpstreamError`), making the failures
|
|
233
233
|
* machine-readable; declaring them here advertises the contract in `tools/list`.
|
|
@@ -329,8 +329,8 @@ export const documentWindowInput = {
|
|
|
329
329
|
* reach it.
|
|
330
330
|
*
|
|
331
331
|
* `CongressDocumentsService` raises each with a matching `data.reason` and
|
|
332
|
-
*
|
|
333
|
-
*
|
|
332
|
+
* the framework fills the `recovery` hint declared here, so the hint lives in
|
|
333
|
+
* exactly one place. Direct-handler tests retain explicit forwards where needed.
|
|
334
334
|
* Resolves cyanheads/congressgov-mcp-server#53.
|
|
335
335
|
*/
|
|
336
336
|
export const documentErrorContracts = [
|
|
@@ -374,8 +374,8 @@ export const documentErrorContracts = [
|
|
|
374
374
|
},
|
|
375
375
|
];
|
|
376
376
|
/**
|
|
377
|
-
* Shared `errors[]` contract for every Congress.gov tool.
|
|
378
|
-
* the same `CongressApiService` fetch path, so they surface the same four
|
|
377
|
+
* Shared `errors[]` contract for every Congress.gov API tool. Every tool except
|
|
378
|
+
* the mirror-backed `congressgov_search_bills` reaches the same `CongressApiService` fetch path, so they surface the same four
|
|
379
379
|
* upstream failure modes. The service raises each with a matching `data.reason`
|
|
380
380
|
* and `data.recovery.hint` (see `classifyUpstreamError`), making the failures
|
|
381
381
|
* machine-readable; declaring them here advertises the contract in `tools/list`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"congress-documents-service.d.ts","sourceRoot":"","sources":["../../../src/services/congress-documents/congress-documents-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAgBtD,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEvE;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,WAAa,CAAC;AAE7C,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,QAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"congress-documents-service.d.ts","sourceRoot":"","sources":["../../../src/services/congress-documents/congress-documents-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAgBtD,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEvE;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,WAAa,CAAC;AAE7C,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAqCzC,qBAAa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAA7C,YAA6B,gBAAgB,GAAE,MAA2B,EAAI;IAE9E;;;;;;;OAOG;IACG,aAAa,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAiBvF;IAED,iFAAiF;IACjF,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,iBAAiB;YAmBX,OAAO;IAqBrB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,iBAAiB;IAezB,0FAA0F;IAC1F,OAAO,CAAC,oBAAoB;IAQ5B;;;;;;;;;;OAUG;YACW,UAAU;IAqCxB;;;OAGG;YACW,SAAS;IAcvB,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,gBAAgB;IAOxB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,cAAc;CAIvB;AAID,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAgB,oBAAoB,IAAI,wBAAwB,CAO/D"}
|
|
@@ -42,9 +42,8 @@ const ALLOWED_HOSTS = new Set(['www.congress.gov']);
|
|
|
42
42
|
const ALLOWED_CONTENT_TYPES = new Set(['application/xml', 'text/html', 'text/plain', 'text/xml']);
|
|
43
43
|
/**
|
|
44
44
|
* Contract reasons this service raises. The matching `recovery` hints live once
|
|
45
|
-
* in `documentErrorContracts` (tool-helpers)
|
|
46
|
-
*
|
|
47
|
-
* `data` plus the resolved hint gives clients the same shape.
|
|
45
|
+
* in `documentErrorContracts` (tool-helpers). Carrying `reason` in `data` lets
|
|
46
|
+
* the framework fill that hint on both client surfaces.
|
|
48
47
|
*/
|
|
49
48
|
const DOCUMENT_UNAVAILABLE = 'document_unavailable';
|
|
50
49
|
const DOCUMENT_FETCH_FAILED = 'document_fetch_failed';
|
|
@@ -78,11 +77,11 @@ export class CongressDocumentsService {
|
|
|
78
77
|
* general-purpose fetcher.
|
|
79
78
|
*/
|
|
80
79
|
async fetchDocument(params, ctx) {
|
|
81
|
-
this.assertAllowedHost(params.url
|
|
80
|
+
this.assertAllowedHost(params.url);
|
|
82
81
|
const operation = 'CongressDocumentsService GET document';
|
|
83
82
|
const requestContext = this.getRequestContext(ctx, operation);
|
|
84
83
|
const signal = this.getAbortSignal(ctx);
|
|
85
|
-
const window = await withRetry(() => this.doFetch(params, requestContext,
|
|
84
|
+
const window = await withRetry(() => this.doFetch(params, requestContext, signal), {
|
|
86
85
|
operation,
|
|
87
86
|
context: requestContext,
|
|
88
87
|
baseDelayMs: BASE_BACKOFF_MS,
|
|
@@ -90,17 +89,16 @@ export class CongressDocumentsService {
|
|
|
90
89
|
isTransient: (error) => this.isRetryableError(error),
|
|
91
90
|
...(signal ? { signal } : {}),
|
|
92
91
|
});
|
|
93
|
-
return this.describeWindow(window, params
|
|
92
|
+
return this.describeWindow(window, params);
|
|
94
93
|
}
|
|
95
94
|
/** Describe the extracted `[offset, offset + limit)` window and what remains. */
|
|
96
|
-
describeWindow(window, params
|
|
95
|
+
describeWindow(window, params) {
|
|
97
96
|
const { text, totalCharacters } = window;
|
|
98
97
|
const offset = params.characterOffset;
|
|
99
98
|
/** An empty document is a real (if unusual) answer at offset 0 — not a bad offset. */
|
|
100
99
|
if (totalCharacters > 0 && offset >= totalCharacters) {
|
|
101
100
|
throw invalidParams(`characterOffset ${offset} is past the end of this document, which has ${totalCharacters} characters.`, {
|
|
102
101
|
reason: OFFSET_PAST_END,
|
|
103
|
-
...ctx.recoveryFor(OFFSET_PAST_END),
|
|
104
102
|
totalCharacters,
|
|
105
103
|
offset,
|
|
106
104
|
retryable: false,
|
|
@@ -116,7 +114,7 @@ export class CongressDocumentsService {
|
|
|
116
114
|
nextOffset: truncated ? end : null,
|
|
117
115
|
};
|
|
118
116
|
}
|
|
119
|
-
assertAllowedHost(url
|
|
117
|
+
assertAllowedHost(url) {
|
|
120
118
|
let host;
|
|
121
119
|
try {
|
|
122
120
|
const parsed = new URL(url);
|
|
@@ -129,12 +127,11 @@ export class CongressDocumentsService {
|
|
|
129
127
|
if (host === undefined || !ALLOWED_HOSTS.has(host.toLowerCase())) {
|
|
130
128
|
throw notFound('The upstream metadata points at a document this server does not retrieve — only documents hosted on www.congress.gov are read.', {
|
|
131
129
|
reason: DOCUMENT_UNAVAILABLE,
|
|
132
|
-
...ctx.recoveryFor(DOCUMENT_UNAVAILABLE),
|
|
133
130
|
retryable: false,
|
|
134
131
|
});
|
|
135
132
|
}
|
|
136
133
|
}
|
|
137
|
-
async doFetch(params, requestContext,
|
|
134
|
+
async doFetch(params, requestContext, signal) {
|
|
138
135
|
let response;
|
|
139
136
|
try {
|
|
140
137
|
response = await fetchWithTimeout(params.url, REQUEST_TIMEOUT_MS, requestContext, {
|
|
@@ -144,18 +141,18 @@ export class CongressDocumentsService {
|
|
|
144
141
|
});
|
|
145
142
|
}
|
|
146
143
|
catch (error) {
|
|
147
|
-
throw this.classifyFetchError(error
|
|
144
|
+
throw this.classifyFetchError(error);
|
|
148
145
|
}
|
|
149
|
-
this.assertContentType(response
|
|
150
|
-
this.assertAdvertisedSize(response
|
|
151
|
-
return this.readWindow(response, params
|
|
146
|
+
this.assertContentType(response);
|
|
147
|
+
this.assertAdvertisedSize(response);
|
|
148
|
+
return this.readWindow(response, params);
|
|
152
149
|
}
|
|
153
150
|
/**
|
|
154
151
|
* A 404 means Congress.gov's metadata named a document its own file host does
|
|
155
152
|
* not hold — a missing document, not a transport failure. Everything else
|
|
156
153
|
* (5xx, timeout, socket error) is the transport, and stays retryable.
|
|
157
154
|
*/
|
|
158
|
-
classifyFetchError(error
|
|
155
|
+
classifyFetchError(error) {
|
|
159
156
|
if (!(error instanceof McpError))
|
|
160
157
|
return error;
|
|
161
158
|
if (error.code === JsonRpcErrorCode.RequestCancelled)
|
|
@@ -163,39 +160,36 @@ export class CongressDocumentsService {
|
|
|
163
160
|
if (error.code === JsonRpcErrorCode.NotFound) {
|
|
164
161
|
return notFound('Congress.gov does not hold the document its metadata pointed to.', {
|
|
165
162
|
reason: DOCUMENT_UNAVAILABLE,
|
|
166
|
-
...ctx.recoveryFor(DOCUMENT_UNAVAILABLE),
|
|
167
163
|
retryable: false,
|
|
168
164
|
}, { cause: error });
|
|
169
165
|
}
|
|
170
|
-
/**
|
|
166
|
+
/** Keep the document-specific message; the framework redacts the cause's URL. */
|
|
171
167
|
return serviceUnavailable('Unable to retrieve the document from Congress.gov.', {
|
|
172
168
|
reason: DOCUMENT_FETCH_FAILED,
|
|
173
|
-
...ctx.recoveryFor(DOCUMENT_FETCH_FAILED),
|
|
174
169
|
...(error.data?.retryable === false ? { retryable: false } : {}),
|
|
175
170
|
}, { cause: error });
|
|
176
171
|
}
|
|
177
|
-
assertContentType(response
|
|
172
|
+
assertContentType(response) {
|
|
178
173
|
const raw = response.headers.get('content-type') ?? '';
|
|
179
174
|
const mediaType = raw.split(';')[0]?.trim().toLowerCase() ?? '';
|
|
180
175
|
if (ALLOWED_CONTENT_TYPES.has(mediaType))
|
|
181
176
|
return;
|
|
182
177
|
throw serviceUnavailable(`Congress.gov returned content type '${mediaType || 'unknown'}', which this server cannot read as text.`, {
|
|
183
178
|
reason: DOCUMENT_FETCH_FAILED,
|
|
184
|
-
...ctx.recoveryFor(DOCUMENT_FETCH_FAILED),
|
|
185
179
|
contentType: mediaType,
|
|
186
180
|
/** A wrong media type is deterministic — retrying re-downloads the same bytes. */
|
|
187
181
|
retryable: false,
|
|
188
182
|
});
|
|
189
183
|
}
|
|
190
184
|
/** Refuse an oversized document on its advertised length, before reading a byte of it. */
|
|
191
|
-
assertAdvertisedSize(response
|
|
185
|
+
assertAdvertisedSize(response) {
|
|
192
186
|
const header = response.headers.get('content-length');
|
|
193
187
|
if (header === null)
|
|
194
188
|
return;
|
|
195
189
|
const contentLength = Number(header);
|
|
196
190
|
if (!Number.isFinite(contentLength) || contentLength <= this.maxDocumentBytes)
|
|
197
191
|
return;
|
|
198
|
-
throw this.tooLarge(
|
|
192
|
+
throw this.tooLarge({ contentLength });
|
|
199
193
|
}
|
|
200
194
|
/**
|
|
201
195
|
* Extract the requested character window as the body streams, under a hard
|
|
@@ -208,7 +202,7 @@ export class CongressDocumentsService {
|
|
|
208
202
|
* buffered read of the same document — but it is garbage, not live, so it is
|
|
209
203
|
* concurrent reads rather than one large read that the ceiling has to survive.
|
|
210
204
|
*/
|
|
211
|
-
async readWindow(response, params
|
|
205
|
+
async readWindow(response, params) {
|
|
212
206
|
const reader = response.body?.getReader();
|
|
213
207
|
const decoder = new TextDecoder('utf-8');
|
|
214
208
|
const extractor = createStreamingExtractor({
|
|
@@ -218,7 +212,7 @@ export class CongressDocumentsService {
|
|
|
218
212
|
let bytes = 0;
|
|
219
213
|
if (reader) {
|
|
220
214
|
for (;;) {
|
|
221
|
-
const { done, value } = await this.readChunk(reader
|
|
215
|
+
const { done, value } = await this.readChunk(reader);
|
|
222
216
|
if (done)
|
|
223
217
|
break;
|
|
224
218
|
if (!value)
|
|
@@ -226,7 +220,7 @@ export class CongressDocumentsService {
|
|
|
226
220
|
bytes += value.byteLength;
|
|
227
221
|
if (bytes > this.maxDocumentBytes) {
|
|
228
222
|
await reader.cancel().catch(() => undefined);
|
|
229
|
-
throw this.tooLarge(
|
|
223
|
+
throw this.tooLarge({ bytesRead: bytes });
|
|
230
224
|
}
|
|
231
225
|
extractor.push(decoder.decode(value, { stream: true }));
|
|
232
226
|
}
|
|
@@ -234,7 +228,6 @@ export class CongressDocumentsService {
|
|
|
234
228
|
if (bytes === 0) {
|
|
235
229
|
throw serviceUnavailable('Congress.gov returned an empty document body.', {
|
|
236
230
|
reason: DOCUMENT_FETCH_FAILED,
|
|
237
|
-
...ctx.recoveryFor(DOCUMENT_FETCH_FAILED),
|
|
238
231
|
retryable: false,
|
|
239
232
|
});
|
|
240
233
|
}
|
|
@@ -245,18 +238,17 @@ export class CongressDocumentsService {
|
|
|
245
238
|
* A body that dies partway through is the transport failing, not a malformed
|
|
246
239
|
* document — the same classification a connection that never opened gets.
|
|
247
240
|
*/
|
|
248
|
-
async readChunk(reader
|
|
241
|
+
async readChunk(reader) {
|
|
249
242
|
try {
|
|
250
243
|
return await reader.read();
|
|
251
244
|
}
|
|
252
245
|
catch (error) {
|
|
253
|
-
throw serviceUnavailable('The document body from Congress.gov ended before it was complete.', { reason: DOCUMENT_FETCH_FAILED
|
|
246
|
+
throw serviceUnavailable('The document body from Congress.gov ended before it was complete.', { reason: DOCUMENT_FETCH_FAILED }, { cause: error });
|
|
254
247
|
}
|
|
255
248
|
}
|
|
256
|
-
tooLarge(
|
|
249
|
+
tooLarge(data) {
|
|
257
250
|
return invalidParams(`This document exceeds the ${this.maxDocumentBytes.toLocaleString('en-US')}-byte ceiling this server retrieves.`, {
|
|
258
251
|
reason: DOCUMENT_TOO_LARGE,
|
|
259
|
-
...ctx.recoveryFor(DOCUMENT_TOO_LARGE),
|
|
260
252
|
...data,
|
|
261
253
|
maxBytes: this.maxDocumentBytes,
|
|
262
254
|
retryable: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"congress-documents-service.js","sourceRoot":"","sources":["../../../src/services/congress-documents/congress-documents-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,SAAS,GACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAwB,MAAM,0BAA0B,CAAC;AAG1F;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAE7C,0FAA0F;AAC1F,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,iFAAiF;AACjF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAEpD,sFAAsF;AACtF,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;AAElG
|
|
1
|
+
{"version":3,"file":"congress-documents-service.js","sourceRoot":"","sources":["../../../src/services/congress-documents/congress-documents-service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/congressgov-mcp-server",
|
|
3
|
-
"version": "0.7.
|
|
4
|
-
"description": "Access U.S. congressional data
|
|
3
|
+
"version": "0.7.4",
|
|
4
|
+
"description": "Access U.S. congressional data (bills, votes, members, committees) via MCP. STDIO or Streamable HTTP.",
|
|
5
5
|
"mcpName": "io.github.cyanheads/congressgov-mcp-server",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"files": [
|
|
13
13
|
"changelog/",
|
|
14
14
|
"dist/",
|
|
15
|
+
"!dist/*.mcpb",
|
|
15
16
|
"scripts/_mirror-context.ts",
|
|
16
17
|
"scripts/congress-mirror-init.ts",
|
|
17
18
|
"scripts/congress-mirror-refresh.ts",
|
|
@@ -85,7 +86,7 @@
|
|
|
85
86
|
"url": "git+https://github.com/cyanheads/congressgov-mcp-server.git"
|
|
86
87
|
},
|
|
87
88
|
"license": "Apache-2.0",
|
|
88
|
-
"packageManager": "bun@1.4.
|
|
89
|
+
"packageManager": "bun@1.4.2",
|
|
89
90
|
"engines": {
|
|
90
91
|
"node": ">=24.0.0",
|
|
91
92
|
"bun": ">=1.4.0"
|
|
@@ -94,21 +95,21 @@
|
|
|
94
95
|
"access": "public"
|
|
95
96
|
},
|
|
96
97
|
"dependencies": {
|
|
97
|
-
"@cyanheads/mcp-ts-core": "^0.13.
|
|
98
|
+
"@cyanheads/mcp-ts-core": "^0.13.14",
|
|
98
99
|
"better-sqlite3": "^13.0.3",
|
|
99
|
-
"fast-xml-parser": "^5.11.
|
|
100
|
+
"fast-xml-parser": "^5.11.2",
|
|
100
101
|
"node-cron": "^4.6.0",
|
|
101
|
-
"pino-pretty": "^13.
|
|
102
|
+
"pino-pretty": "^13.2.0",
|
|
102
103
|
"zod": "^4.6.5"
|
|
103
104
|
},
|
|
104
105
|
"devDependencies": {
|
|
105
|
-
"@biomejs/biome": "^2.5.
|
|
106
|
-
"@socketsecurity/bun-security-scanner": "^1.1.
|
|
107
|
-
"@types/node": "^26.6.
|
|
106
|
+
"@biomejs/biome": "^2.5.15",
|
|
107
|
+
"@socketsecurity/bun-security-scanner": "^1.1.3",
|
|
108
|
+
"@types/node": "^26.6.4",
|
|
108
109
|
"depcheck": "^1.4.7",
|
|
109
|
-
"ignore": "^7.0.
|
|
110
|
-
"tsc-alias": "^1.9.
|
|
110
|
+
"ignore": "^7.0.12",
|
|
111
|
+
"tsc-alias": "^1.9.7",
|
|
111
112
|
"typescript": "^7.0.2",
|
|
112
|
-
"vitest": "^5.0.
|
|
113
|
+
"vitest": "^5.0.3"
|
|
113
114
|
}
|
|
114
115
|
}
|
package/server.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
3
|
"name": "io.github.cyanheads/congressgov-mcp-server",
|
|
4
|
-
"description": "Access U.S. congressional data
|
|
4
|
+
"description": "Access U.S. congressional data (bills, votes, members, committees) via MCP.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/cyanheads/congressgov-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.7.
|
|
9
|
+
"version": "0.7.4",
|
|
10
10
|
"remotes": [
|
|
11
11
|
{
|
|
12
12
|
"type": "streamable-http",
|
|
@@ -18,18 +18,8 @@
|
|
|
18
18
|
"registryType": "npm",
|
|
19
19
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
20
20
|
"identifier": "@cyanheads/congressgov-mcp-server",
|
|
21
|
-
"runtimeHint": "
|
|
22
|
-
"version": "0.7.
|
|
23
|
-
"packageArguments": [
|
|
24
|
-
{
|
|
25
|
-
"type": "positional",
|
|
26
|
-
"value": "run"
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"type": "positional",
|
|
30
|
-
"value": "start:stdio"
|
|
31
|
-
}
|
|
32
|
-
],
|
|
21
|
+
"runtimeHint": "npx",
|
|
22
|
+
"version": "0.7.4",
|
|
33
23
|
"environmentVariables": [
|
|
34
24
|
{
|
|
35
25
|
"name": "CONGRESS_API_KEY",
|
|
@@ -53,19 +43,15 @@
|
|
|
53
43
|
"registryType": "npm",
|
|
54
44
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
55
45
|
"identifier": "@cyanheads/congressgov-mcp-server",
|
|
56
|
-
"runtimeHint": "
|
|
57
|
-
"version": "0.7.
|
|
58
|
-
"
|
|
46
|
+
"runtimeHint": "npx",
|
|
47
|
+
"version": "0.7.4",
|
|
48
|
+
"environmentVariables": [
|
|
59
49
|
{
|
|
60
|
-
"
|
|
61
|
-
"
|
|
50
|
+
"name": "MCP_TRANSPORT_TYPE",
|
|
51
|
+
"description": "Selects the HTTP transport.",
|
|
52
|
+
"format": "string",
|
|
53
|
+
"value": "http"
|
|
62
54
|
},
|
|
63
|
-
{
|
|
64
|
-
"type": "positional",
|
|
65
|
-
"value": "start:http"
|
|
66
|
-
}
|
|
67
|
-
],
|
|
68
|
-
"environmentVariables": [
|
|
69
55
|
{
|
|
70
56
|
"name": "CONGRESS_API_KEY",
|
|
71
57
|
"description": "API key from api.data.gov \u2014 optional (falls back to DEMO_KEY: 30 req/hr). Own key: 5000 req/hr. Free signup at api.data.gov.",
|