@cyanheads/congressgov-mcp-server 0.8.1 → 0.9.1

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.
Files changed (84) hide show
  1. package/AGENTS.md +44 -17
  2. package/CLAUDE.md +44 -17
  3. package/Dockerfile +4 -0
  4. package/README.md +35 -124
  5. package/changelog/0.9.x/0.9.0.md +25 -0
  6. package/changelog/0.9.x/0.9.1.md +31 -0
  7. package/dist/config/server-config.d.ts +0 -7
  8. package/dist/config/server-config.d.ts.map +1 -1
  9. package/dist/config/server-config.js +1 -9
  10. package/dist/config/server-config.js.map +1 -1
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/bill-lookup.tool.d.ts +9 -2
  14. package/dist/mcp-server/tools/definitions/bill-lookup.tool.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/bill-summaries.tool.d.ts +9 -2
  16. package/dist/mcp-server/tools/definitions/bill-summaries.tool.d.ts.map +1 -1
  17. package/dist/mcp-server/tools/definitions/committee-lookup.tool.d.ts +9 -2
  18. package/dist/mcp-server/tools/definitions/committee-lookup.tool.d.ts.map +1 -1
  19. package/dist/mcp-server/tools/definitions/committee-reports.tool.d.ts +9 -2
  20. package/dist/mcp-server/tools/definitions/committee-reports.tool.d.ts.map +1 -1
  21. package/dist/mcp-server/tools/definitions/crs-reports.tool.d.ts +9 -2
  22. package/dist/mcp-server/tools/definitions/crs-reports.tool.d.ts.map +1 -1
  23. package/dist/mcp-server/tools/definitions/daily-record.tool.d.ts +9 -2
  24. package/dist/mcp-server/tools/definitions/daily-record.tool.d.ts.map +1 -1
  25. package/dist/mcp-server/tools/definitions/enacted-laws.tool.d.ts +9 -2
  26. package/dist/mcp-server/tools/definitions/enacted-laws.tool.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/member-lookup.tool.d.ts +9 -2
  28. package/dist/mcp-server/tools/definitions/member-lookup.tool.d.ts.map +1 -1
  29. package/dist/mcp-server/tools/definitions/roll-votes.tool.d.ts +9 -2
  30. package/dist/mcp-server/tools/definitions/roll-votes.tool.d.ts.map +1 -1
  31. package/dist/mcp-server/tools/definitions/roll-votes.tool.js +3 -2
  32. package/dist/mcp-server/tools/definitions/roll-votes.tool.js.map +1 -1
  33. package/dist/mcp-server/tools/definitions/senate-nominations.tool.d.ts +49 -4
  34. package/dist/mcp-server/tools/definitions/senate-nominations.tool.d.ts.map +1 -1
  35. package/dist/mcp-server/tools/definitions/senate-nominations.tool.js +102 -5
  36. package/dist/mcp-server/tools/definitions/senate-nominations.tool.js.map +1 -1
  37. package/dist/mcp-server/tools/format-helpers.d.ts.map +1 -1
  38. package/dist/mcp-server/tools/format-helpers.js +37 -8
  39. package/dist/mcp-server/tools/format-helpers.js.map +1 -1
  40. package/dist/mcp-server/tools/tool-helpers.d.ts +11 -4
  41. package/dist/mcp-server/tools/tool-helpers.d.ts.map +1 -1
  42. package/dist/mcp-server/tools/tool-helpers.js +12 -4
  43. package/dist/mcp-server/tools/tool-helpers.js.map +1 -1
  44. package/dist/services/call-budget.d.ts +77 -0
  45. package/dist/services/call-budget.d.ts.map +1 -0
  46. package/dist/services/call-budget.js +118 -0
  47. package/dist/services/call-budget.js.map +1 -0
  48. package/dist/services/congress-api/congress-api-service.d.ts +4 -0
  49. package/dist/services/congress-api/congress-api-service.d.ts.map +1 -1
  50. package/dist/services/congress-api/congress-api-service.js +60 -32
  51. package/dist/services/congress-api/congress-api-service.js.map +1 -1
  52. package/dist/services/congress-documents/congress-documents-service.d.ts +46 -15
  53. package/dist/services/congress-documents/congress-documents-service.d.ts.map +1 -1
  54. package/dist/services/congress-documents/congress-documents-service.js +95 -24
  55. package/dist/services/congress-documents/congress-documents-service.js.map +1 -1
  56. package/dist/services/congress-documents/document-body-cache.d.ts +66 -0
  57. package/dist/services/congress-documents/document-body-cache.d.ts.map +1 -0
  58. package/dist/services/congress-documents/document-body-cache.js +122 -0
  59. package/dist/services/congress-documents/document-body-cache.js.map +1 -0
  60. package/dist/services/congress-mirror/ingest.d.ts +13 -7
  61. package/dist/services/congress-mirror/ingest.d.ts.map +1 -1
  62. package/dist/services/congress-mirror/ingest.js +33 -10
  63. package/dist/services/congress-mirror/ingest.js.map +1 -1
  64. package/dist/services/congress-mirror/schema.d.ts.map +1 -1
  65. package/dist/services/congress-mirror/schema.js +15 -1
  66. package/dist/services/congress-mirror/schema.js.map +1 -1
  67. package/dist/services/senate-lis/parse.d.ts +23 -0
  68. package/dist/services/senate-lis/parse.d.ts.map +1 -1
  69. package/dist/services/senate-lis/parse.js +49 -5
  70. package/dist/services/senate-lis/parse.js.map +1 -1
  71. package/dist/services/senate-lis/senate-vote-service.d.ts.map +1 -1
  72. package/dist/services/senate-lis/senate-vote-service.js +32 -25
  73. package/dist/services/senate-lis/senate-vote-service.js.map +1 -1
  74. package/dist/utils/congress-calendar.d.ts +15 -0
  75. package/dist/utils/congress-calendar.d.ts.map +1 -0
  76. package/dist/utils/congress-calendar.js +33 -0
  77. package/dist/utils/congress-calendar.js.map +1 -0
  78. package/package.json +7 -6
  79. package/scripts/_mirror-context.ts +15 -9
  80. package/scripts/congress-mirror-init.ts +1 -1
  81. package/scripts/congress-mirror-refresh.ts +1 -1
  82. package/scripts/congress-mirror-verify.ts +5 -4
  83. package/server.json +3 -3
  84. package/skills/congressgov-guide/SKILL.md +50 -0
package/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  <div align="center">
2
2
  <h1>@cyanheads/congressgov-mcp-server</h1>
3
3
  <p><b>Access U.S. congressional data (bills, votes, members, committees) via MCP. STDIO or Streamable HTTP.</b>
4
- <div>11 Tools • 5 Resources • 2 Prompts</div>
4
+ <div>11 Tools • 6 Resources • 2 Prompts • 1 Skill</div>
5
5
  </p>
6
6
  </div>
7
7
 
8
8
  <div align="center">
9
9
 
10
- [![Version](https://img.shields.io/badge/Version-0.8.1-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/congressgov-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^2.3.1-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/congressgov-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/congressgov-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.4.4-blueviolet.svg?style=flat-square)](https://bun.sh/)
10
+ [![Version](https://img.shields.io/badge/Version-0.9.1-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/congressgov-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^2.4.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/congressgov-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/congressgov-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.4.4-blueviolet.svg?style=flat-square)](https://bun.sh/)
11
11
 
12
12
  </div>
13
13
 
@@ -56,6 +56,7 @@ US congressional data from Congress.gov and the Senate's official vote feed: bil
56
56
  | `congress://member/{bioguideId}` | Member profile by bioguide ID |
57
57
  | `congress://bill/{congress}/{billType}/{billNumber}` | Bill detail by congress, type, and number |
58
58
  | `congress://committee/{committeeCode}` | Committee detail by committee code |
59
+ | `skill://congressgov-guide/SKILL.md` | Legislative research guide: identifier sources, discovery boundaries, votes, and document evidence |
59
60
 
60
61
  Bill, member, and committee data is also reachable through `congressgov_bill_lookup`, `congressgov_member_lookup`, and `congressgov_committee_lookup` (operation `get`), since many MCP clients are tool-only and never surface resources.
61
62
 
@@ -66,6 +67,10 @@ Bill, member, and committee data is also reachable through `congressgov_bill_loo
66
67
  | `congressgov_bill_analysis` | Structured framework for analyzing a bill |
67
68
  | `congressgov_legislative_research` | Research framework for a policy area across Congress |
68
69
 
70
+ ### Agent skill
71
+
72
+ [`congressgov-guide`](./skills/congressgov-guide/SKILL.md) guides research across bills, laws, members, committees, votes, and floor debate. It covers identifier provenance, discovery limits, and version-specific document evidence. The guide ships with plugin installs, npm, MCPB, and Docker, and is served over MCP through the Skills extension and its `skill://` resource.
73
+
69
74
  ## Capability reference
70
75
 
71
76
  ### `congressgov_bill_lookup` <sub>tool</sub>
@@ -102,8 +107,10 @@ Bill, member, and committee data is also reachable through `congressgov_bill_loo
102
107
  ### `congressgov_roll_votes` <sub>tool</sub>
103
108
 
104
109
  - `chamber` is `house` (default, Congress.gov API) or `senate` (the Senate's LIS feed); every call needs `congress` + `session` (1 or 2), and `get`/`members` add `voteNumber`, which resets each session and is specific to one chamber
110
+ - A congress's first year is session 1 and its second year session 2, but a second session can run into January 1–3 of the following year (the 116th Congress's second session voted on 2021-01-01)
105
111
  - `list` is newest first unless `order: 'oldest'`; `get` returns the question, result, tallies, and party breakdown, and `members` returns each member's position
106
112
  - Senate votes start at the 101st Congress (1989), and Senate rows pair the feed's year-less `voteDate` with a derived `voteDateIso`
113
+ - When senate.gov refuses the request (HTTP 403, which its firewall returns to automated clients), a Senate call fails on the first attempt with a non-retryable `upstream_error`; a 5xx or timeout from the feed is retried. House votes are unaffected
107
114
 
108
115
  ---
109
116
 
@@ -111,6 +118,7 @@ Bill, member, and committee data is also reachable through `congressgov_bill_loo
111
118
 
112
119
  - `list` browses one `congress`; `get`, `actions`, `committees`, `hearings`, and `nominees` need a `nominationNumber` (`1000` for PN1000), and `nominees` also needs an `ordinal` from the `nominees` array `get` returns
113
120
  - Multi-part nominations (e.g. PN851) keep their activity on partitioned children (`851-1`, `851-2`, …); an empty sub-resource call on the bare number returns a notice pointing there
121
+ - An action whose text cites its own Senate record vote (`Record Vote Number: 225.`) carries `rollVote` — `{ chamber: 'senate', congress, session, voteNumber }`, the `congressgov_roll_votes` arguments for that vote. Every citing `actions` row gets one, cloture votes included, and so does `latestAction` on `list` rows and `get`; votes before the 101st Congress get none
114
122
 
115
123
  ---
116
124
 
@@ -207,7 +215,8 @@ Congress.gov-specific:
207
215
 
208
216
  - Type-safe client for the Congress.gov REST API v3, plus a client for the Senate's LIS XML feed that backs Senate roll votes
209
217
  - The Congress.gov API has no keyword search, so tools browse by congress, type, date range, chamber, state, and district; list operations page with `limit` 1–250 (default 20) and `offset`
210
- - `content` on bill text, committee reports, and Record articles reads `format` `text` (default) or `xml` in a `characterOffset`/`characterLimit` window (1–100,000 characters, default 25,000), fetched only from `www.congress.gov` under a 25 MB ceiling and a 30s deadline
218
+ - `content` on bill text, committee reports, and Record articles reads `format` `text` (default) or `xml` in a `characterOffset`/`characterLimit` window (1–100,000 characters, default 25,000), fetched only from `www.congress.gov` under a 25 MB ceiling; a document longer than one window (up to 16 MB) is downloaded once and its later windows are served from a 10-minute in-memory cache
219
+ - Each tool call or resource read gets 50 seconds for all of its upstream requests, retries and backoff included, whether it makes one request or chains several (a `content` call's metadata lookup and document fetch, a committee name resolved against the full roster). A stalled upstream ends the call before the 60-second default timeout of MCP clients: `upstream_timeout` from Congress.gov, the retryable `upstream_error` from the Senate LIS feed
211
220
  - Optional API key from [api.data.gov](https://api.data.gov/signup/): `DEMO_KEY` allows 30 requests/hour and 50/day per IP, registered keys 5,000/hour
212
221
  - Opt-in local SQLite FTS5 mirror (`CONGRESS_MIRROR_ENABLED`) adds keyword search over bill titles and CRS summaries
213
222
 
@@ -216,144 +225,36 @@ Agent-friendly output:
216
225
  - Every list response carries `effectiveQuery` and `totalCount`, with a `notice` when nothing matched
217
226
  - `list` rejects detail-only identifiers (`billNumber`, `voteNumber`, `nominationNumber`, `reportNumber`, `volumeNumber`) with an `incompatible_identity` error that names the operation to use instead
218
227
  - `content` returns `offset`, `truncated`, and `nextOffset`, so walking a multi-megabyte bill never skips or repeats a character
219
- - Typed failures (`document_unavailable`, `format_unavailable`, `document_fetch_failed`, `document_too_large`, `offset_past_end`, `not_found`, `rate_limited`, `invalid_request`, `upstream_error`, `upstream_timeout`), each with a recovery hint
228
+ - Typed failures (`document_unavailable`, `format_unavailable`, `document_fetch_failed`, `document_too_large`, `offset_past_end`, `not_found`, `rate_limited`, `invalid_request`, `api_key_rejected`, `upstream_error`, `upstream_timeout`), each with a recovery hint
220
229
 
221
230
  ## Getting started
222
231
 
223
- ### Public Hosted Instance
224
-
225
- A public instance is available at `https://congressgov.caseyjhand.com/mcp` — no installation required. It serves Streamable HTTP; each client takes its own config shape.
226
-
227
- For Claude Code:
232
+ Connect to the hosted instance:
228
233
 
229
234
  ```sh
230
235
  claude mcp add --transport http congressgov-mcp-server https://congressgov.caseyjhand.com/mcp
231
236
  ```
232
237
 
233
- For Cline (`cline_mcp_settings.json`):
238
+ Or run it locally:
234
239
 
235
- ```json
236
- {
237
- "mcpServers": {
238
- "congressgov-mcp-server": {
239
- "type": "streamableHttp",
240
- "url": "https://congressgov.caseyjhand.com/mcp"
241
- }
242
- }
243
- }
244
- ```
245
-
246
- For Cursor (`mcp.json`):
247
-
248
- ```json
249
- {
250
- "mcpServers": {
251
- "congressgov-mcp-server": {
252
- "url": "https://congressgov.caseyjhand.com/mcp"
253
- }
254
- }
255
- }
256
- ```
257
-
258
- Claude Desktop adds remote servers under Settings → Connectors.
259
-
260
- ### Self-Hosted / Local
261
-
262
- Add the following to your MCP client configuration file.
263
-
264
- ```json
265
- {
266
- "mcpServers": {
267
- "congressgov-mcp-server": {
268
- "type": "stdio",
269
- "command": "bunx",
270
- "args": ["@cyanheads/congressgov-mcp-server@latest"],
271
- "env": {
272
- "MCP_TRANSPORT_TYPE": "stdio",
273
- "MCP_LOG_LEVEL": "info",
274
- "CONGRESS_API_KEY": "your-api-key"
275
- }
276
- }
277
- }
278
- }
240
+ ```sh
241
+ claude mcp add congressgov-mcp-server -- npx -y @cyanheads/congressgov-mcp-server
279
242
  ```
280
243
 
281
- Or with npx (no Bun required):
244
+ For other clients, add this to the MCP config file:
282
245
 
283
246
  ```json
284
247
  {
285
248
  "mcpServers": {
286
249
  "congressgov-mcp-server": {
287
- "type": "stdio",
288
250
  "command": "npx",
289
- "args": ["-y", "@cyanheads/congressgov-mcp-server@latest"],
290
- "env": {
291
- "MCP_TRANSPORT_TYPE": "stdio",
292
- "MCP_LOG_LEVEL": "info",
293
- "CONGRESS_API_KEY": "your-api-key"
294
- }
295
- }
296
- }
297
- }
298
- ```
299
-
300
- Or with Docker:
301
-
302
- ```json
303
- {
304
- "mcpServers": {
305
- "congressgov-mcp-server": {
306
- "type": "stdio",
307
- "command": "docker",
308
- "args": [
309
- "run", "-i", "--rm",
310
- "-e", "MCP_TRANSPORT_TYPE=stdio",
311
- "-e", "CONGRESS_API_KEY=your-api-key",
312
- "ghcr.io/cyanheads/congressgov-mcp-server:latest"
313
- ]
251
+ "args": ["-y", "@cyanheads/congressgov-mcp-server"]
314
252
  }
315
253
  }
316
254
  }
317
255
  ```
318
256
 
319
- For Streamable HTTP, set the transport and start the server:
320
-
321
- ```sh
322
- MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 CONGRESS_API_KEY=your-api-key bun run start:http
323
- # Server listens at http://localhost:3010/mcp
324
- ```
325
-
326
- ### Prerequisites
327
-
328
- - [Bun v1.4.0](https://bun.sh/) or higher (or Node.js v24+).
329
- - Optional: a free [api.data.gov key](https://api.data.gov/signup/) raises the limit to 5,000 requests/hour from the demo key's 30/hour and 50/day per IP.
330
-
331
- ### Installation
332
-
333
- 1. **Clone the repository:**
334
-
335
- ```sh
336
- git clone https://github.com/cyanheads/congressgov-mcp-server.git
337
- ```
338
-
339
- 2. **Navigate into the directory:**
340
-
341
- ```sh
342
- cd congressgov-mcp-server
343
- ```
344
-
345
- 3. **Install dependencies:**
346
-
347
- ```sh
348
- bun install
349
- ```
350
-
351
- 4. **Configure environment:**
352
-
353
- ```sh
354
- cp .env.example .env
355
- # edit .env and set CONGRESS_API_KEY (and the mirror vars, if you want keyword search)
356
- ```
257
+ Optional: set `CONGRESS_API_KEY` to a free [api.data.gov key](https://api.data.gov/signup/) for 5,000 requests/hour instead of the demo key's 30/hour and 50/day per IP. For Docker or a source build, see [Running the server](#running-the-server).
357
258
 
358
259
  ## Configuration
359
260
 
@@ -381,6 +282,15 @@ See [`.env.example`](./.env.example) for the full list of optional overrides.
381
282
 
382
283
  ## Running the server
383
284
 
285
+ Requires [Bun v1.4.0](https://bun.sh/) or higher (or Node.js v24+).
286
+
287
+ ```sh
288
+ git clone https://github.com/cyanheads/congressgov-mcp-server.git
289
+ cd congressgov-mcp-server && bun install
290
+ cp .env.example .env
291
+ # Optionally set CONGRESS_API_KEY and the mirror variables in .env.
292
+ ```
293
+
384
294
  ### Local development
385
295
 
386
296
  - **Build and run the production version:**
@@ -411,26 +321,27 @@ See [`.env.example`](./.env.example) for the full list of optional overrides.
411
321
  ### Docker
412
322
 
413
323
  ```sh
414
- docker build -t congressgov-mcp-server .
415
- docker run --rm -e CONGRESS_API_KEY=your-api-key -p 3010:3010 congressgov-mcp-server
324
+ docker run --rm -e CONGRESS_API_KEY=your-api-key -p 3010:3010 ghcr.io/cyanheads/congressgov-mcp-server:latest
416
325
  ```
417
326
 
418
- The Dockerfile defaults to HTTP transport, stateless session mode, and logs to `/var/log/congressgov-mcp-server`. OpenTelemetry peer dependencies are installed by default; build with `--build-arg OTEL_ENABLED=false` to omit them. The image carries the mirror scripts, so `docker exec <container> bun run mirror:init` builds the index in place.
327
+ The image defaults to HTTP transport, stateless session mode, and logs to `/var/log/congressgov-mcp-server`. For stdio, use `docker run -i --rm -e MCP_TRANSPORT_TYPE=stdio ghcr.io/cyanheads/congressgov-mcp-server:latest`. To build locally, run `docker build -t congressgov-mcp-server .`; OpenTelemetry peer dependencies are installed by default, with `--build-arg OTEL_ENABLED=false` to omit them. The image carries the mirror scripts, so `docker exec <container> bun run mirror:init` builds the index in place.
419
328
 
420
329
  ## Project structure
421
330
 
422
331
  | Directory | Purpose |
423
332
  |:---|:---|
424
333
  | `src/index.ts` | `createApp()` entry point: registers tools, resources, and prompts, inits services, and schedules the mirror refresh. |
334
+ | `skills/` | Published legislative research guide for agents calling the server. |
425
335
  | `src/config/` | Server-specific environment variable parsing and validation with Zod. |
426
336
  | `src/mcp-server/tools/` | Tool definitions (`definitions/*.tool.ts`) plus shared input, formatting, and summary-window helpers. |
427
337
  | `src/mcp-server/resources/definitions/` | Resource definitions (`*.resource.ts`). |
428
338
  | `src/mcp-server/prompts/definitions/` | Prompt definitions (`*.prompt.ts`). |
339
+ | `src/services/call-budget.ts` | The 50-second budget every tool call's upstream requests share. |
429
340
  | `src/services/congress-api/` | Congress.gov API client: auth, pagination, rate limiting. |
430
- | `src/services/congress-documents/` | Bounded document-text fetch: host allowlist, byte ceiling, character window. |
341
+ | `src/services/congress-documents/` | Bounded document-text fetch: host allowlist, byte ceiling, character window, and a 10-minute cache of document bodies. |
431
342
  | `src/services/congress-mirror/` | Local SQLite FTS5 bill-search mirror: ingest, normalize, schema. |
432
343
  | `src/services/senate-lis/` | Senate LIS XML client for Senate roll call votes. |
433
- | `src/utils/` | HTML/XML character-reference decoding. |
344
+ | `src/utils/` | HTML/XML character-reference decoding and congress-number arithmetic. |
434
345
  | `scripts/` | Build, devcheck, and release tooling, plus the `mirror:init` / `mirror:refresh` / `mirror:verify` CLIs. |
435
346
  | `tests/` | Unit and integration tests, mirroring the `src/` structure. |
436
347
 
@@ -0,0 +1,25 @@
1
+ ---
2
+ summary: "Publish a legislative research guide over MCP and refresh framework and bundle delivery."
3
+ breaking: false
4
+ security: false
5
+ ---
6
+
7
+ # 0.9.0 — 2026-10-28
8
+
9
+ ## Added
10
+
11
+ - Publish congressgov-guide as the skill://congressgov-guide/SKILL.md MCP resource for legislative research workflows.
12
+ - **Agent Plugins manifests** add the root `plugin.json` and `mcp.json` pair alongside the existing client overlays.
13
+
14
+ ## Changed
15
+
16
+ - **MCPB delivery** excludes root development paths, dependency agent documentation, node-gyp build output, and build-only package files while retaining executable SDK skill modules ([mcp-ts-core #794](https://github.com/cyanheads/mcp-ts-core/issues/794)).
17
+ - **HTTP lifecycle** adopts the framework fix that releases request signals after responses finish.
18
+ - **Maintenance references** sync framework guidance, simplify installation examples, and correct legislative data and service documentation.
19
+
20
+ ## Dependencies
21
+
22
+ - `@cyanheads/mcp-ts-core` ^0.13.16 → ^0.13.18.
23
+ - `@biomejs/biome` ^2.6.2 → ^2.6.3.
24
+ - `ignore` ^7.0.13 → ^7.0.14.
25
+ - `tsc-alias` ^1.9.8 → ^1.9.9.
@@ -0,0 +1,31 @@
1
+ ---
2
+ summary: "Rejected API keys get a distinct error, each tool call shares a 50-second upstream budget, nomination actions point at their Senate roll votes, and the bill mirror stores summaries."
3
+ breaking: false
4
+ security: false
5
+ ---
6
+
7
+ # 0.9.1 — 2026-11-01
8
+
9
+ ## Added
10
+
11
+ - **`rollVote` on nomination actions** — `congressgov_senate_nominations` `actions` rows, and `latestAction` on `list` and `get`, carry `{ chamber: 'senate', congress, session, voteNumber }`, the `congressgov_roll_votes` arguments for the Senate record vote the action cites (101st Congress onward) (#62).
12
+
13
+ ## Changed
14
+
15
+ - **Upstream call budget** — every tool call or resource read gets one 50-second budget across its upstream requests, retries, and backoff; running out is `Timeout` `upstream_timeout` with `budgetMs` and `retryAttempts`. The shared `upstream_error` and `upstream_timeout` contract descriptions match (#88).
16
+ - **`content` document cache** — a multi-window document is fetched once per 10-minute TTL instead of once per window; bodies up to 16 MB are cached, 64 MB total, process-local (#57).
17
+ - **`congressgov_roll_votes` `session`** — the description no longer states an odd/even-year rule; a second session can run into January 1–3 (#62).
18
+ - **Mirror store spec** — moves to `version: 2`; its migration clears the checkpoint so the next sync backfills summaries (#86).
19
+
20
+ ## Fixed
21
+
22
+ - **Rejected API key** — an api.data.gov `API_KEY_*` code on a 401 or 403 is now `-32008` `api_key_rejected` (not retryable, gateway code in `data.upstreamCode`) with a hint to replace or unset `CONGRESS_API_KEY`, instead of `invalid_request`; other 400/401/403/422 responses keep `invalid_request` (#84).
23
+ - **Senate 403** — a senate.gov HTTP 403 fails on the first attempt as a non-retryable `upstream_error` that says House votes are unaffected; 5xx and timeouts are still retried (#89).
24
+ - **Mirror summaries** — `mirror:init` and `mirror:refresh` request each congress's summaries from January 1 of its first year; without a date window Congress.gov returned only the last day's (#86).
25
+ - **Mirror refresh checkpoint** — persisted only with the final page of a completed walk, so a refresh that fails partway no longer advances it past a later congress (#91).
26
+ - **Mirror CLI output** — `mirror:init`, `mirror:refresh`, and `mirror:verify` log to stderr instead of printing nothing (#87).
27
+
28
+ ## Dependencies
29
+
30
+ - `@biomejs/biome` ^2.6.3 → ^2.6.4.
31
+ - `@types/node` ^26.6.5 → ^26.6.6.
@@ -5,13 +5,6 @@
5
5
  import { z } from '@cyanheads/mcp-ts-core';
6
6
  /** Default on-disk location of the SQLite bill FTS mirror. */
7
7
  export declare const DEFAULT_MIRROR_PATH = ".mirror/bills.sqlite3";
8
- /**
9
- * Congress number covering a given date. The 1st U.S. Congress convened in 1789
10
- * and each Congress spans two years, so `floor((year - 1789) / 2) + 1` yields the
11
- * ordinal (2025–2026 → 119). Used to seed the default mirror window when
12
- * `CONGRESS_MIRROR_CONGRESSES` is unset.
13
- */
14
- export declare function currentCongressNumber(date?: Date): number;
15
8
  declare const ServerConfigSchema: z.ZodObject<{
16
9
  apiKey: z.ZodDefault<z.ZodString>;
17
10
  baseUrl: z.ZodDefault<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"server-config.d.ts","sourceRoot":"","sources":["../../src/config/server-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAG3C,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,IAAiB,GAAG,MAAM,CAErE;AAoBD,QAAA,MAAM,kBAAkB;;;;;;;iBA6CtB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D,wBAAgB,eAAe,IAAI,YAAY,CAU9C;AAED,2CAA2C;AAC3C,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
1
+ {"version":3,"file":"server-config.d.ts","sourceRoot":"","sources":["../../src/config/server-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAI3C,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAoB3D,QAAA,MAAM,kBAAkB;;;;;;;iBA6CtB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D,wBAAgB,eAAe,IAAI,YAAY,CAU9C;AAED,2CAA2C;AAC3C,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
@@ -4,17 +4,9 @@
4
4
  */
5
5
  import { z } from '@cyanheads/mcp-ts-core';
6
6
  import { parseEnvConfig } from '@cyanheads/mcp-ts-core/config';
7
+ import { currentCongressNumber } from '../utils/congress-calendar.js';
7
8
  /** Default on-disk location of the SQLite bill FTS mirror. */
8
9
  export const DEFAULT_MIRROR_PATH = '.mirror/bills.sqlite3';
9
- /**
10
- * Congress number covering a given date. The 1st U.S. Congress convened in 1789
11
- * and each Congress spans two years, so `floor((year - 1789) / 2) + 1` yields the
12
- * ordinal (2025–2026 → 119). Used to seed the default mirror window when
13
- * `CONGRESS_MIRROR_CONGRESSES` is unset.
14
- */
15
- export function currentCongressNumber(date = new Date()) {
16
- return Math.floor((date.getUTCFullYear() - 1789) / 2) + 1;
17
- }
18
10
  /**
19
11
  * Parse `CONGRESS_MIRROR_CONGRESSES` — a comma-separated list of congress numbers
20
12
  * ("118,119") — into a positive-integer array. Unset/empty falls back to the
@@ -1 +1 @@
1
- {"version":3,"file":"server-config.js","sourceRoot":"","sources":["../../src/config/server-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,8DAA8D;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAI,GAAS,IAAI,IAAI,EAAE;IAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,OAAO,KAAK;aACT,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;aACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,OAAO,CAAC,UAAU,CAAC;SACnB,QAAQ,CACP,4KAA4K,CAC7K;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,EAAE;SACL,OAAO,CAAC,6BAA6B,CAAC;SACtC,QAAQ,CAAC,2BAA2B,CAAC;IAExC;;;;OAIG;IACH,aAAa,EAAE,CAAC;SACb,UAAU,EAAE;SACZ,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,4EAA4E,CAAC;IACzF,8FAA8F;IAC9F,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,mBAAmB,CAAC;SAC5B,QAAQ,CAAC,kDAAkD,CAAC;IAC/D;;;OAGG;IACH,iBAAiB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,oFAAoF,CAAC;IACjG;;;;OAIG;IACH,UAAU,EAAE,CAAC;SACV,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxE,QAAQ,CAAC,uEAAuE,CAAC;CACrF,CAAC,CAAC;AAIH,IAAI,OAAiC,CAAC;AAEtC,MAAM,UAAU,eAAe;IAC7B,OAAO,KAAK,cAAc,CAAC,kBAAkB,EAAE;QAC7C,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,uBAAuB;QAChC,aAAa,EAAE,yBAAyB;QACxC,UAAU,EAAE,sBAAsB;QAClC,iBAAiB,EAAE,8BAA8B;QACjD,UAAU,EAAE,4BAA4B;KACzC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,iBAAiB;IAC/B,OAAO,GAAG,SAAS,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"server-config.js","sourceRoot":"","sources":["../../src/config/server-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE3D;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,OAAO,KAAK;aACT,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;aACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,OAAO,CAAC,UAAU,CAAC;SACnB,QAAQ,CACP,4KAA4K,CAC7K;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,EAAE;SACL,OAAO,CAAC,6BAA6B,CAAC;SACtC,QAAQ,CAAC,2BAA2B,CAAC;IAExC;;;;OAIG;IACH,aAAa,EAAE,CAAC;SACb,UAAU,EAAE;SACZ,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,4EAA4E,CAAC;IACzF,8FAA8F;IAC9F,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,mBAAmB,CAAC;SAC5B,QAAQ,CAAC,kDAAkD,CAAC;IAC/D;;;OAGG;IACH,iBAAiB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,oFAAoF,CAAC;IACjG;;;;OAIG;IACH,UAAU,EAAE,CAAC;SACV,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxE,QAAQ,CAAC,uEAAuE,CAAC;CACrF,CAAC,CAAC;AAIH,IAAI,OAAiC,CAAC;AAEtC,MAAM,UAAU,eAAe;IAC7B,OAAO,KAAK,cAAc,CAAC,kBAAkB,EAAE;QAC7C,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,uBAAuB;QAChC,aAAa,EAAE,yBAAyB;QACxC,UAAU,EAAE,sBAAsB;QAClC,iBAAiB,EAAE,8BAA8B;QACjD,UAAU,EAAE,4BAA4B;KACzC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,iBAAiB;IAC/B,OAAO,GAAG,SAAS,CAAC;AACtB,CAAC"}
package/dist/index.js CHANGED
@@ -64,6 +64,7 @@ await createApp({
64
64
  name: 'congressgov-mcp-server',
65
65
  title: 'congressgov-mcp-server',
66
66
  sessionMode: 'stateless',
67
+ skills: 'skills',
67
68
  cacheHints,
68
69
  tools: [
69
70
  withSource(billLookupTool, 'tools', 'bill-lookup.tool.ts'),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAQH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,iEAAiE,CAAC;AAC5G,OAAO,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2DAA2D,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AACpG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAErF,MAAM,SAAS,GAAG,qDAAqD,CAAC;AACxE,MAAM,iBAAiB,GAAG,IAAI,eAAe,EAAE,CAAC;AAChD,IAAI,aAA2C,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,MAAM,GAAG,CAAC,IAAuC,EAAE,IAAY,EAAE,EAAE,CACvE,GAAG,SAAS,6BAA6B,IAAI,gBAAgB,IAAI,EAAE,CAAC;AAEtE,MAAM,UAAU,GAAG,CACjB,GAAM,EACN,IAAuC,EACvC,IAAY,EACT,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,UAAU,GAAG;IACjB,YAAY,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE;IAC7D,cAAc,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE;IAC/D,gBAAgB,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE;IACjE,0BAA0B,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE;IAC3E,iBAAiB,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE;IAClE,gBAAgB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE;CAC7B,CAAC;AAEhC,MAAM,SAAS,CAAC;IACd,IAAI,EAAE,wBAAwB;IAC9B,KAAK,EAAE,wBAAwB;IAC/B,WAAW,EAAE,WAAW;IACxB,UAAU;IACV,KAAK,EAAE;QACL,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,qBAAqB,CAAC;QAC1D,UAAU,CAAC,eAAe,EAAE,OAAO,EAAE,sBAAsB,CAAC;QAC5D,UAAU,CAAC,gBAAgB,EAAE,OAAO,EAAE,uBAAuB,CAAC;QAC9D,UAAU,CAAC,mBAAmB,EAAE,OAAO,EAAE,0BAA0B,CAAC;QACpE,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,oBAAoB,CAAC;QACxD,UAAU,CAAC,qBAAqB,EAAE,OAAO,EAAE,4BAA4B,CAAC;QACxE,UAAU,CAAC,iBAAiB,EAAE,OAAO,EAAE,wBAAwB,CAAC;QAChE,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,qBAAqB,CAAC;QAC1D,UAAU,CAAC,oBAAoB,EAAE,OAAO,EAAE,2BAA2B,CAAC;QACtE,UAAU,CAAC,eAAe,EAAE,OAAO,EAAE,sBAAsB,CAAC;QAC5D,UAAU,CAAC,eAAe,EAAE,OAAO,EAAE,sBAAsB,CAAC;KAC7D;IACD,SAAS,EAAE;QACT,UAAU,CAAC,uBAAuB,EAAE,WAAW,EAAE,8BAA8B,CAAC;QAChF,UAAU,CAAC,iBAAiB,EAAE,WAAW,EAAE,wBAAwB,CAAC;QACpE,UAAU,CAAC,cAAc,EAAE,WAAW,EAAE,oBAAoB,CAAC;QAC7D,UAAU,CAAC,YAAY,EAAE,WAAW,EAAE,kBAAkB,CAAC;QACzD,UAAU,CAAC,iBAAiB,EAAE,WAAW,EAAE,uBAAuB,CAAC;KACpE;IACD,OAAO,EAAE;QACP,UAAU,CAAC,kBAAkB,EAAE,SAAS,EAAE,yBAAyB,CAAC;QACpE,UAAU,CAAC,yBAAyB,EAAE,SAAS,EAAE,gCAAgC,CAAC;KACnF;IACD,YAAY,EAAE,43BAA43B;IAC14B,OAAO,EAAE;QACP,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,oEAAoE;QAC7E,WAAW,EAAE,KAAK;KACnB;IACD,KAAK,CAAC,KAAK,CAAC,IAAI;QACd,eAAe,EAAE,CAAC;QAClB,qBAAqB,EAAE,CAAC;QACxB,qBAAqB,EAAE,CAAC;QAExB;;;;;;WAMG;QACH,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,kBAAkB,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACrF,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,KAAK,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBACxE,MAAM,qBAAqB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,IAAI;QACjB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,KAAK,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACxE,gBAAgB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAClD,CAAC;QACD,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC1B,oFAAoF;QACpF,MAAM,aAAa,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,iBAAiB,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IACnD,CAAC;CACF,CAAC,CAAC;AAEH,wEAAwE;AACxE,KAAK,UAAU,qBAAqB,CAAC,IAAY;IAC/C,MAAM,gBAAgB,CAAC,QAAQ,CAC7B,wBAAwB,EACxB,IAAI,EACJ,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE,MAAM,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC;YACzD,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,iBAAiB,CAAC,MAAM;SACjC,CAAC,CAAC;QACH,aAAa,GAAG,OAAO,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;QAC7B,MAAM,CAAC,IAAI,CACT,oDAAoD,MAAM,CAAC,cAAc,2BAA2B,MAAM,CAAC,KAAK,GAAG,EACnH,MAAM,CACP,CAAC;IACJ,CAAC,EACD,8EAA8E,CAC/E,CAAC;IACF,gBAAgB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -75,19 +75,26 @@ export declare const billLookupTool: import("@cyanheads/mcp-ts-core").ToolDefini
75
75
  readonly retryable: false;
76
76
  readonly when: 'Congress.gov rejected the request as malformed — a bad date range or an identifier with an unexpected shape.';
77
77
  readonly recovery: 'Check parameter formats: dates must be ISO 8601 like 2026-05-01T00:00:00Z and identifiers must match their documented shape.';
78
+ }, {
79
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ConfigurationError;
80
+ readonly reason: 'api_key_rejected';
81
+ readonly thrownBy: 'service';
82
+ readonly retryable: false;
83
+ readonly when: "The api.data.gov gateway rejected the server's configured CONGRESS_API_KEY (missing, invalid, disabled, unauthorized, or unverified); the gateway code is in data.upstreamCode. No change to the call's arguments can fix it.";
84
+ readonly recovery: 'This is a server configuration problem, not a request problem: the operator must replace CONGRESS_API_KEY with a valid api.data.gov key (https://api.data.gov/signup/) or unset it to fall back to the rate-limited DEMO_KEY, then restart the server.';
78
85
  }, {
79
86
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
80
87
  readonly reason: 'upstream_error';
81
88
  readonly thrownBy: 'service';
82
89
  readonly retryable: true;
83
- readonly when: 'Congress.gov returned an unexpected error (5xx or another non-2xx status).';
90
+ readonly when: 'Congress.gov returned an unexpected error (5xx or another non-2xx status) or could not be reached, or the Senate LIS feed failed (5xx, a timeout, or a senate.gov HTTP 403 refusal, which carries retryable: false).';
84
91
  readonly recovery: 'Retry after a short delay; if the failure persists the Congress.gov service may be temporarily degraded.';
85
92
  }, {
86
93
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Timeout;
87
94
  readonly reason: 'upstream_timeout';
88
95
  readonly thrownBy: 'service';
89
96
  readonly retryable: true;
90
- readonly when: 'The Congress.gov request deadline expired or the upstream returned an HTTP timeout response.';
97
+ readonly when: "A Congress.gov request or a congress.gov document fetch timed out or returned an HTTP timeout response, or the call's upstream requests could not finish inside its 50-second budget.";
91
98
  readonly recovery: 'Retry after a short delay; if the failure persists the Congress.gov service may be temporarily degraded.';
92
99
  }, {
93
100
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
@@ -1 +1 @@
1
- {"version":3,"file":"bill-lookup.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/bill-lookup.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AA6DjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4WzB,CAAC"}
1
+ {"version":3,"file":"bill-lookup.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/bill-lookup.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AA6DjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4WzB,CAAC"}
@@ -46,19 +46,26 @@ export declare const billSummariesTool: import("@cyanheads/mcp-ts-core").ToolDef
46
46
  readonly retryable: false;
47
47
  readonly when: 'Congress.gov rejected the request as malformed — a bad date range or an identifier with an unexpected shape.';
48
48
  readonly recovery: 'Check parameter formats: dates must be ISO 8601 like 2026-05-01T00:00:00Z and identifiers must match their documented shape.';
49
+ }, {
50
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ConfigurationError;
51
+ readonly reason: 'api_key_rejected';
52
+ readonly thrownBy: 'service';
53
+ readonly retryable: false;
54
+ readonly when: "The api.data.gov gateway rejected the server's configured CONGRESS_API_KEY (missing, invalid, disabled, unauthorized, or unverified); the gateway code is in data.upstreamCode. No change to the call's arguments can fix it.";
55
+ readonly recovery: 'This is a server configuration problem, not a request problem: the operator must replace CONGRESS_API_KEY with a valid api.data.gov key (https://api.data.gov/signup/) or unset it to fall back to the rate-limited DEMO_KEY, then restart the server.';
49
56
  }, {
50
57
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
51
58
  readonly reason: 'upstream_error';
52
59
  readonly thrownBy: 'service';
53
60
  readonly retryable: true;
54
- readonly when: 'Congress.gov returned an unexpected error (5xx or another non-2xx status).';
61
+ readonly when: 'Congress.gov returned an unexpected error (5xx or another non-2xx status) or could not be reached, or the Senate LIS feed failed (5xx, a timeout, or a senate.gov HTTP 403 refusal, which carries retryable: false).';
55
62
  readonly recovery: 'Retry after a short delay; if the failure persists the Congress.gov service may be temporarily degraded.';
56
63
  }, {
57
64
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Timeout;
58
65
  readonly reason: 'upstream_timeout';
59
66
  readonly thrownBy: 'service';
60
67
  readonly retryable: true;
61
- readonly when: 'The Congress.gov request deadline expired or the upstream returned an HTTP timeout response.';
68
+ readonly when: "A Congress.gov request or a congress.gov document fetch timed out or returned an HTTP timeout response, or the call's upstream requests could not finish inside its 50-second budget.";
62
69
  readonly recovery: 'Retry after a short delay; if the failure persists the Congress.gov service may be temporarily degraded.';
63
70
  }], {
64
71
  effectiveQuery: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"bill-summaries.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/bill-summaries.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAwBjD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmH5B,CAAC"}
1
+ {"version":3,"file":"bill-summaries.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/bill-summaries.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAwBjD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmH5B,CAAC"}
@@ -53,19 +53,26 @@ export declare const committeeLookupTool: import("@cyanheads/mcp-ts-core").ToolD
53
53
  readonly retryable: false;
54
54
  readonly when: 'Congress.gov rejected the request as malformed — a bad date range or an identifier with an unexpected shape.';
55
55
  readonly recovery: 'Check parameter formats: dates must be ISO 8601 like 2026-05-01T00:00:00Z and identifiers must match their documented shape.';
56
+ }, {
57
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ConfigurationError;
58
+ readonly reason: 'api_key_rejected';
59
+ readonly thrownBy: 'service';
60
+ readonly retryable: false;
61
+ readonly when: "The api.data.gov gateway rejected the server's configured CONGRESS_API_KEY (missing, invalid, disabled, unauthorized, or unverified); the gateway code is in data.upstreamCode. No change to the call's arguments can fix it.";
62
+ readonly recovery: 'This is a server configuration problem, not a request problem: the operator must replace CONGRESS_API_KEY with a valid api.data.gov key (https://api.data.gov/signup/) or unset it to fall back to the rate-limited DEMO_KEY, then restart the server.';
56
63
  }, {
57
64
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
58
65
  readonly reason: 'upstream_error';
59
66
  readonly thrownBy: 'service';
60
67
  readonly retryable: true;
61
- readonly when: 'Congress.gov returned an unexpected error (5xx or another non-2xx status).';
68
+ readonly when: 'Congress.gov returned an unexpected error (5xx or another non-2xx status) or could not be reached, or the Senate LIS feed failed (5xx, a timeout, or a senate.gov HTTP 403 refusal, which carries retryable: false).';
62
69
  readonly recovery: 'Retry after a short delay; if the failure persists the Congress.gov service may be temporarily degraded.';
63
70
  }, {
64
71
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Timeout;
65
72
  readonly reason: 'upstream_timeout';
66
73
  readonly thrownBy: 'service';
67
74
  readonly retryable: true;
68
- readonly when: 'The Congress.gov request deadline expired or the upstream returned an HTTP timeout response.';
75
+ readonly when: "A Congress.gov request or a congress.gov document fetch timed out or returned an HTTP timeout response, or the call's upstream requests could not finish inside its 50-second budget.";
69
76
  readonly recovery: 'Retry after a short delay; if the failure persists the Congress.gov service may be temporarily degraded.';
70
77
  }], {
71
78
  effectiveQuery: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"committee-lookup.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/committee-lookup.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAgHjD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8N9B,CAAC"}
1
+ {"version":3,"file":"committee-lookup.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/committee-lookup.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAgHjD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8N9B,CAAC"}
@@ -55,19 +55,26 @@ export declare const committeeReportsTool: import("@cyanheads/mcp-ts-core").Tool
55
55
  readonly retryable: false;
56
56
  readonly when: 'Congress.gov rejected the request as malformed — a bad date range or an identifier with an unexpected shape.';
57
57
  readonly recovery: 'Check parameter formats: dates must be ISO 8601 like 2026-05-01T00:00:00Z and identifiers must match their documented shape.';
58
+ }, {
59
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ConfigurationError;
60
+ readonly reason: 'api_key_rejected';
61
+ readonly thrownBy: 'service';
62
+ readonly retryable: false;
63
+ readonly when: "The api.data.gov gateway rejected the server's configured CONGRESS_API_KEY (missing, invalid, disabled, unauthorized, or unverified); the gateway code is in data.upstreamCode. No change to the call's arguments can fix it.";
64
+ readonly recovery: 'This is a server configuration problem, not a request problem: the operator must replace CONGRESS_API_KEY with a valid api.data.gov key (https://api.data.gov/signup/) or unset it to fall back to the rate-limited DEMO_KEY, then restart the server.';
58
65
  }, {
59
66
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
60
67
  readonly reason: 'upstream_error';
61
68
  readonly thrownBy: 'service';
62
69
  readonly retryable: true;
63
- readonly when: 'Congress.gov returned an unexpected error (5xx or another non-2xx status).';
70
+ readonly when: 'Congress.gov returned an unexpected error (5xx or another non-2xx status) or could not be reached, or the Senate LIS feed failed (5xx, a timeout, or a senate.gov HTTP 403 refusal, which carries retryable: false).';
64
71
  readonly recovery: 'Retry after a short delay; if the failure persists the Congress.gov service may be temporarily degraded.';
65
72
  }, {
66
73
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Timeout;
67
74
  readonly reason: 'upstream_timeout';
68
75
  readonly thrownBy: 'service';
69
76
  readonly retryable: true;
70
- readonly when: 'The Congress.gov request deadline expired or the upstream returned an HTTP timeout response.';
77
+ readonly when: "A Congress.gov request or a congress.gov document fetch timed out or returned an HTTP timeout response, or the call's upstream requests could not finish inside its 50-second budget.";
71
78
  readonly recovery: 'Retry after a short delay; if the failure persists the Congress.gov service may be temporarily degraded.';
72
79
  }, {
73
80
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
@@ -1 +1 @@
1
- {"version":3,"file":"committee-reports.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/committee-reports.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAkCjD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqL/B,CAAC"}
1
+ {"version":3,"file":"committee-reports.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/committee-reports.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAkCjD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqL/B,CAAC"}
@@ -39,19 +39,26 @@ export declare const crsReportsTool: import("@cyanheads/mcp-ts-core").ToolDefini
39
39
  readonly retryable: false;
40
40
  readonly when: 'Congress.gov rejected the request as malformed — a bad date range or an identifier with an unexpected shape.';
41
41
  readonly recovery: 'Check parameter formats: dates must be ISO 8601 like 2026-05-01T00:00:00Z and identifiers must match their documented shape.';
42
+ }, {
43
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ConfigurationError;
44
+ readonly reason: 'api_key_rejected';
45
+ readonly thrownBy: 'service';
46
+ readonly retryable: false;
47
+ readonly when: "The api.data.gov gateway rejected the server's configured CONGRESS_API_KEY (missing, invalid, disabled, unauthorized, or unverified); the gateway code is in data.upstreamCode. No change to the call's arguments can fix it.";
48
+ readonly recovery: 'This is a server configuration problem, not a request problem: the operator must replace CONGRESS_API_KEY with a valid api.data.gov key (https://api.data.gov/signup/) or unset it to fall back to the rate-limited DEMO_KEY, then restart the server.';
42
49
  }, {
43
50
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
44
51
  readonly reason: 'upstream_error';
45
52
  readonly thrownBy: 'service';
46
53
  readonly retryable: true;
47
- readonly when: 'Congress.gov returned an unexpected error (5xx or another non-2xx status).';
54
+ readonly when: 'Congress.gov returned an unexpected error (5xx or another non-2xx status) or could not be reached, or the Senate LIS feed failed (5xx, a timeout, or a senate.gov HTTP 403 refusal, which carries retryable: false).';
48
55
  readonly recovery: 'Retry after a short delay; if the failure persists the Congress.gov service may be temporarily degraded.';
49
56
  }, {
50
57
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.Timeout;
51
58
  readonly reason: 'upstream_timeout';
52
59
  readonly thrownBy: 'service';
53
60
  readonly retryable: true;
54
- readonly when: 'The Congress.gov request deadline expired or the upstream returned an HTTP timeout response.';
61
+ readonly when: "A Congress.gov request or a congress.gov document fetch timed out or returned an HTTP timeout response, or the call's upstream requests could not finish inside its 50-second budget.";
55
62
  readonly recovery: 'Retry after a short delay; if the failure persists the Congress.gov service may be temporarily degraded.';
56
63
  }, {
57
64
  readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
@@ -1 +1 @@
1
- {"version":3,"file":"crs-reports.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/crs-reports.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAcjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DzB,CAAC"}
1
+ {"version":3,"file":"crs-reports.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/crs-reports.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAcjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DzB,CAAC"}