@cyanheads/congressgov-mcp-server 0.4.0 → 0.4.2
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 +5 -4
- package/CLAUDE.md +5 -4
- package/Dockerfile +20 -7
- package/LICENSE +1 -1
- package/README.md +2 -2
- package/dist/config/server-config.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/resources/definitions/bill.resource.d.ts +4 -4
- package/dist/mcp-server/tools/definitions/bill-lookup.tool.d.ts +22 -22
- package/dist/mcp-server/tools/definitions/bill-lookup.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/bill-lookup.tool.js +13 -17
- package/dist/mcp-server/tools/definitions/bill-lookup.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/bill-summaries.tool.d.ts +15 -15
- package/dist/mcp-server/tools/definitions/bill-summaries.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/bill-summaries.tool.js +6 -3
- package/dist/mcp-server/tools/definitions/bill-summaries.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/committee-lookup.tool.d.ts +15 -15
- package/dist/mcp-server/tools/definitions/committee-lookup.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/committee-lookup.tool.js +52 -22
- package/dist/mcp-server/tools/definitions/committee-lookup.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/committee-reports.tool.d.ts +13 -13
- package/dist/mcp-server/tools/definitions/committee-reports.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/committee-reports.tool.js +2 -3
- package/dist/mcp-server/tools/definitions/committee-reports.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/crs-reports.tool.d.ts +11 -11
- package/dist/mcp-server/tools/definitions/crs-reports.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/crs-reports.tool.js +2 -3
- package/dist/mcp-server/tools/definitions/crs-reports.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/daily-record.tool.d.ts +14 -14
- package/dist/mcp-server/tools/definitions/daily-record.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/daily-record.tool.js +16 -29
- package/dist/mcp-server/tools/definitions/daily-record.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/enacted-laws.tool.d.ts +12 -12
- package/dist/mcp-server/tools/definitions/enacted-laws.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/enacted-laws.tool.js +2 -3
- package/dist/mcp-server/tools/definitions/enacted-laws.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/member-lookup.tool.d.ts +12 -12
- package/dist/mcp-server/tools/definitions/member-lookup.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/member-lookup.tool.js +3 -5
- package/dist/mcp-server/tools/definitions/member-lookup.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/roll-votes.tool.d.ts +13 -13
- package/dist/mcp-server/tools/definitions/roll-votes.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/roll-votes.tool.js +6 -13
- package/dist/mcp-server/tools/definitions/roll-votes.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-bills.tool.d.ts +7 -6
- package/dist/mcp-server/tools/definitions/search-bills.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-bills.tool.js +7 -7
- package/dist/mcp-server/tools/definitions/search-bills.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/senate-nominations.tool.d.ts +13 -13
- package/dist/mcp-server/tools/definitions/senate-nominations.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/senate-nominations.tool.js +8 -5
- package/dist/mcp-server/tools/definitions/senate-nominations.tool.js.map +1 -1
- package/dist/mcp-server/tools/tool-helpers.d.ts +72 -12
- package/dist/mcp-server/tools/tool-helpers.d.ts.map +1 -1
- package/dist/mcp-server/tools/tool-helpers.js +75 -1
- package/dist/mcp-server/tools/tool-helpers.js.map +1 -1
- package/dist/services/congress-api/congress-api-service.d.ts.map +1 -1
- package/dist/services/congress-api/congress-api-service.js +30 -12
- package/dist/services/congress-api/congress-api-service.js.map +1 -1
- package/dist/services/congress-api/types.d.ts +1 -1
- package/dist/services/congress-api/types.d.ts.map +1 -1
- package/dist/services/congress-mirror/congress-mirror-service.d.ts.map +1 -1
- package/dist/services/senate-lis/senate-vote-service.d.ts.map +1 -1
- package/dist/services/senate-lis/senate-vote-service.js.map +1 -1
- package/package.json +15 -23
- package/server.json +3 -3
package/AGENTS.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Agent Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** congressgov-mcp-server
|
|
4
|
-
**Version:** 0.4.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.
|
|
4
|
+
**Version:** 0.4.2
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.11.5`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
|
-
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.
|
|
7
|
+
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.30.0
|
|
8
8
|
**Zod:** ^4.4.3
|
|
9
9
|
|
|
10
10
|
> **Read the framework docs first:** `node_modules/@cyanheads/mcp-ts-core/CLAUDE.md` contains the full API reference — builders, Context, error codes, exports, patterns. This file covers server-specific conventions only.
|
|
@@ -266,7 +266,8 @@ Available skills:
|
|
|
266
266
|
| `api-testing` | createMockContext, test patterns |
|
|
267
267
|
| `api-utils` | Formatting, parsing, security, pagination, scheduling, telemetry helpers |
|
|
268
268
|
| `api-workers` | Cloudflare Workers runtime |
|
|
269
|
-
| `
|
|
269
|
+
| `techniques` | Catalog of response/data-shaping techniques — overflow handling, payload shaping, retrieval patterns |
|
|
270
|
+
| `orchestrations` | Chain task skills into a gated multi-phase pipeline — build-out, QA-fix, update-ship — when you can spawn sub-agents |
|
|
270
271
|
|
|
271
272
|
When you complete a skill's checklist, check the boxes and add a completion timestamp at the end (e.g., `Completed: 2026-03-11`).
|
|
272
273
|
|
package/CLAUDE.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Agent Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** congressgov-mcp-server
|
|
4
|
-
**Version:** 0.4.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.
|
|
4
|
+
**Version:** 0.4.2
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.11.5`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
|
-
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.
|
|
7
|
+
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.30.0
|
|
8
8
|
**Zod:** ^4.4.3
|
|
9
9
|
|
|
10
10
|
> **Read the framework docs first:** `node_modules/@cyanheads/mcp-ts-core/CLAUDE.md` contains the full API reference — builders, Context, error codes, exports, patterns. This file covers server-specific conventions only.
|
|
@@ -266,7 +266,8 @@ Available skills:
|
|
|
266
266
|
| `api-testing` | createMockContext, test patterns |
|
|
267
267
|
| `api-utils` | Formatting, parsing, security, pagination, scheduling, telemetry helpers |
|
|
268
268
|
| `api-workers` | Cloudflare Workers runtime |
|
|
269
|
-
| `
|
|
269
|
+
| `techniques` | Catalog of response/data-shaping techniques — overflow handling, payload shaping, retrieval patterns |
|
|
270
|
+
| `orchestrations` | Chain task skills into a gated multi-phase pipeline — build-out, QA-fix, update-ship — when you can spawn sub-agents |
|
|
270
271
|
|
|
271
272
|
When you complete a skill's checklist, check the boxes and add a completion timestamp at the end (e.g., `Completed: 2026-03-11`).
|
|
272
273
|
|
package/Dockerfile
CHANGED
|
@@ -4,15 +4,21 @@
|
|
|
4
4
|
# This stage installs all dependencies (including dev), builds the TypeScript
|
|
5
5
|
# source code into JavaScript, and prepares the production assets.
|
|
6
6
|
# ==============================================================================
|
|
7
|
-
FROM oven/bun:1.3 AS build
|
|
7
|
+
FROM oven/bun:1.3.14 AS build
|
|
8
8
|
|
|
9
9
|
WORKDIR /usr/src/app
|
|
10
10
|
|
|
11
11
|
# Copy dependency manifests for optimized layer caching
|
|
12
12
|
COPY package.json bun.lock ./
|
|
13
13
|
|
|
14
|
-
# Install all dependencies (
|
|
15
|
-
|
|
14
|
+
# Install all dependencies (dev included, for building).
|
|
15
|
+
# --ignore-scripts skips better-sqlite3's node-gyp postinstall: the build only
|
|
16
|
+
# runs tsc, and the runtime uses bun:sqlite (never the compiled better-sqlite3
|
|
17
|
+
# binding), so the native module is never needed in the image. Matches the
|
|
18
|
+
# production stage below.
|
|
19
|
+
# The BuildKit cache mount persists Bun's global package cache across builds.
|
|
20
|
+
RUN --mount=type=cache,target=/root/.bun/install/cache \
|
|
21
|
+
bun install --frozen-lockfile --ignore-scripts
|
|
16
22
|
|
|
17
23
|
# Copy the rest of the source code
|
|
18
24
|
COPY . .
|
|
@@ -28,7 +34,7 @@ RUN bun run build
|
|
|
28
34
|
# application. It uses a slim base image and only includes production
|
|
29
35
|
# dependencies and build artifacts.
|
|
30
36
|
# ==============================================================================
|
|
31
|
-
FROM oven/bun:1.3-slim AS production
|
|
37
|
+
FROM oven/bun:1.3.14-slim AS production
|
|
32
38
|
|
|
33
39
|
WORKDIR /usr/src/app
|
|
34
40
|
|
|
@@ -49,14 +55,21 @@ COPY package.json bun.lock ./
|
|
|
49
55
|
|
|
50
56
|
# Install only production dependencies, ignoring any lifecycle scripts (like 'prepare')
|
|
51
57
|
# that are not needed in the final production image.
|
|
52
|
-
|
|
58
|
+
# `--omit=peer` drops the framework's optional peer tiers (test runner, service
|
|
59
|
+
# SDKs, parsers) that Bun would otherwise auto-install. Anything this server
|
|
60
|
+
# actually imports belongs in its own `dependencies`, so nothing needed at
|
|
61
|
+
# runtime is lost. The OTEL step below carries the same flag — without it, that
|
|
62
|
+
# install re-resolves the graph and pulls every optional peer back in.
|
|
63
|
+
RUN --mount=type=cache,target=/root/.bun/install/cache \
|
|
64
|
+
bun install --production --omit=peer --frozen-lockfile --ignore-scripts
|
|
53
65
|
|
|
54
66
|
# Conditionally install OpenTelemetry optional peer dependencies (Tier 3).
|
|
55
67
|
# These are not bundled by default to keep the base image lean. Enable at build time
|
|
56
68
|
# with: docker build --build-arg OTEL_ENABLED=true
|
|
57
69
|
ARG OTEL_ENABLED=true
|
|
58
|
-
RUN
|
|
59
|
-
|
|
70
|
+
RUN --mount=type=cache,target=/root/.bun/install/cache \
|
|
71
|
+
if [ "$OTEL_ENABLED" = "true" ]; then \
|
|
72
|
+
bun add --omit=dev --omit=peer --ignore-scripts @hono/otel \
|
|
60
73
|
@opentelemetry/instrumentation-http \
|
|
61
74
|
@opentelemetry/exporter-metrics-otlp-http \
|
|
62
75
|
@opentelemetry/exporter-trace-otlp-http \
|
package/LICENSE
CHANGED
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
|
|
177
177
|
END OF TERMS AND CONDITIONS
|
|
178
178
|
|
|
179
|
-
Copyright 2026 Casey Hand
|
|
179
|
+
Copyright 2026 Casey Hand @cyanheads
|
|
180
180
|
|
|
181
181
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
182
182
|
you may not use this file except in compliance with the License.
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/congressgov-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/congressgov-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -119,7 +119,7 @@ Browse the daily Congressional Record — floor speeches, debates, and legislati
|
|
|
119
119
|
|
|
120
120
|
Keyword-search bill titles and CRS summaries against a local full-text mirror — the discovery path the Congress.gov API itself lacks.
|
|
121
121
|
|
|
122
|
-
- **Opt-in:** off by default
|
|
122
|
+
- **Opt-in:** off by default, and not offered to clients until `CONGRESS_MIRROR_ENABLED=true`. With the flag set but the index not yet built (`bun run mirror:init`), the tool is callable and answers with an empty result and a build-the-index notice
|
|
123
123
|
- Narrow with `congress`, `billType`, and `originChamber` filters
|
|
124
124
|
- Returns BM25-ranked matches with each bill's derived id, ready for a follow-up `congressgov_bill_lookup` call
|
|
125
125
|
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"server-config.js","sourceRoot":"","sources":["../../src/config/server-config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -63,7 +63,7 @@ await createApp({
|
|
|
63
63
|
withSource(billAnalysisPrompt, 'prompts', 'bill-analysis.prompt.ts'),
|
|
64
64
|
withSource(legislativeResearchPrompt, 'prompts', 'legislative-research.prompt.ts'),
|
|
65
65
|
],
|
|
66
|
-
instructions: `Use the congressgov_* tools to access U.S. legislative data via the Congress.gov API v3: bills, enacted laws, members, committees, roll call votes, presidential nominations, CRS reports, and the daily Congressional Record. The Congress.gov API itself has no keyword search — browse by congress number, bill/report type, date range, chamber, state, and district. An optional local FTS mirror adds congressgov_search_bills (keyword search over bill titles and summaries) when CONGRESS_MIRROR_ENABLED is set; off by default, the tool is
|
|
66
|
+
instructions: `Use the congressgov_* tools to access U.S. legislative data via the Congress.gov API v3: bills, enacted laws, members, committees, roll call votes, presidential nominations, CRS reports, and the daily Congressional Record. The Congress.gov API itself has no keyword search — browse by congress number, bill/report type, date range, chamber, state, and district. An optional local FTS mirror adds congressgov_search_bills (keyword search over bill titles and summaries) when CONGRESS_MIRROR_ENABLED is set; it is off by default, and the tool is not offered at all unless that flag is set. Bills are addressed by congress + billType + billNumber (e.g. 118/hr/1234), members by bioguideId, committees by chamber-prefix codes. congressgov_roll_votes serves both chambers via its 'chamber' parameter — House votes come from the Congress.gov API, Senate votes from the Senate's official LIS feed.`,
|
|
67
67
|
landing: {
|
|
68
68
|
repoRoot: REPO_ROOT,
|
|
69
69
|
tagline: 'U.S. legislative data — bills, votes, members, committees — via MCP.',
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,13 +6,13 @@ import { z } from '@cyanheads/mcp-ts-core';
|
|
|
6
6
|
export declare const billResource: import("@cyanheads/mcp-ts-core").ResourceDefinition<z.ZodObject<{
|
|
7
7
|
congress: z.ZodString;
|
|
8
8
|
billType: z.ZodEnum<{
|
|
9
|
+
hconres: "hconres";
|
|
10
|
+
hjres: "hjres";
|
|
9
11
|
hr: "hr";
|
|
12
|
+
hres: "hres";
|
|
10
13
|
s: "s";
|
|
11
|
-
hjres: "hjres";
|
|
12
|
-
sjres: "sjres";
|
|
13
|
-
hconres: "hconres";
|
|
14
14
|
sconres: "sconres";
|
|
15
|
-
|
|
15
|
+
sjres: "sjres";
|
|
16
16
|
sres: "sres";
|
|
17
17
|
}>;
|
|
18
18
|
billNumber: z.ZodString;
|
|
@@ -5,35 +5,35 @@
|
|
|
5
5
|
import { z } from '@cyanheads/mcp-ts-core';
|
|
6
6
|
export declare const billLookupTool: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
|
|
7
7
|
operation: z.ZodEnum<{
|
|
8
|
-
text: "text";
|
|
9
8
|
actions: "actions";
|
|
10
9
|
amendments: "amendments";
|
|
11
|
-
cosponsors: "cosponsors";
|
|
12
10
|
committees: "committees";
|
|
13
|
-
|
|
14
|
-
summaries: "summaries";
|
|
15
|
-
titles: "titles";
|
|
11
|
+
cosponsors: "cosponsors";
|
|
16
12
|
get: "get";
|
|
17
13
|
list: "list";
|
|
18
14
|
related: "related";
|
|
15
|
+
subjects: "subjects";
|
|
16
|
+
summaries: "summaries";
|
|
17
|
+
text: "text";
|
|
18
|
+
titles: "titles";
|
|
19
19
|
}>;
|
|
20
20
|
congress: z.ZodNumber;
|
|
21
21
|
billType: z.ZodOptional<z.ZodEnum<{
|
|
22
|
+
hconres: "hconres";
|
|
23
|
+
hjres: "hjres";
|
|
22
24
|
hr: "hr";
|
|
25
|
+
hres: "hres";
|
|
23
26
|
s: "s";
|
|
24
|
-
hjres: "hjres";
|
|
25
|
-
sjres: "sjres";
|
|
26
|
-
hconres: "hconres";
|
|
27
27
|
sconres: "sconres";
|
|
28
|
-
|
|
28
|
+
sjres: "sjres";
|
|
29
29
|
sres: "sres";
|
|
30
30
|
}>>;
|
|
31
|
-
billNumber: z.ZodOptional<z.ZodNumber
|
|
31
|
+
billNumber: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
32
32
|
fromDateTime: z.ZodOptional<z.ZodString>;
|
|
33
33
|
toDateTime: z.ZodOptional<z.ZodString>;
|
|
34
34
|
order: z.ZodDefault<z.ZodEnum<{
|
|
35
|
-
recent: "recent";
|
|
36
35
|
oldest: "oldest";
|
|
36
|
+
recent: "recent";
|
|
37
37
|
}>>;
|
|
38
38
|
limit: z.ZodDefault<z.ZodNumber>;
|
|
39
39
|
offset: z.ZodDefault<z.ZodNumber>;
|
|
@@ -45,28 +45,28 @@ export declare const billLookupTool: import("@cyanheads/mcp-ts-core").ToolDefini
|
|
|
45
45
|
}, z.core.$strip>>;
|
|
46
46
|
}, z.core.$loose>, readonly [{
|
|
47
47
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
48
|
-
readonly reason:
|
|
48
|
+
readonly reason: 'not_found';
|
|
49
49
|
readonly retryable: false;
|
|
50
|
-
readonly when:
|
|
50
|
+
readonly when: 'A requested bill, member, committee, report, vote, or nomination does not exist in Congress.gov.';
|
|
51
51
|
readonly recovery: "Use the tool's list or browse operation to discover valid identifiers, then retry with one that exists.";
|
|
52
52
|
}, {
|
|
53
53
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
|
|
54
|
-
readonly reason:
|
|
54
|
+
readonly reason: 'rate_limited';
|
|
55
55
|
readonly retryable: true;
|
|
56
|
-
readonly when:
|
|
57
|
-
readonly recovery:
|
|
56
|
+
readonly when: 'The Congress.gov API rate limit (5,000 requests/hour per key) was exceeded.';
|
|
57
|
+
readonly recovery: 'Wait for the hourly rate-limit window to reset before retrying, or reduce the request frequency.';
|
|
58
58
|
}, {
|
|
59
59
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.InvalidParams;
|
|
60
|
-
readonly reason:
|
|
60
|
+
readonly reason: 'invalid_request';
|
|
61
61
|
readonly retryable: false;
|
|
62
|
-
readonly when:
|
|
63
|
-
readonly recovery:
|
|
62
|
+
readonly when: 'Congress.gov rejected the request as malformed — a bad date range or an identifier with an unexpected shape.';
|
|
63
|
+
readonly recovery: 'Check parameter formats: dates must be ISO 8601 like 2026-05-01T00:00:00Z and identifiers must match their documented shape.';
|
|
64
64
|
}, {
|
|
65
65
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
|
|
66
|
-
readonly reason:
|
|
66
|
+
readonly reason: 'upstream_error';
|
|
67
67
|
readonly retryable: true;
|
|
68
|
-
readonly when:
|
|
69
|
-
readonly recovery:
|
|
68
|
+
readonly when: 'Congress.gov returned an unexpected error (5xx or another non-2xx status).';
|
|
69
|
+
readonly recovery: 'Retry after a short delay; if the failure persists the Congress.gov service may be temporarily degraded.';
|
|
70
70
|
}], {
|
|
71
71
|
effectiveQuery: z.ZodString;
|
|
72
72
|
totalCount: z.ZodNumber;
|
|
@@ -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;
|
|
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;AAuCjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2IzB,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
6
6
|
import { validationError } from '@cyanheads/mcp-ts-core/errors';
|
|
7
7
|
import { formatBills } from '../../../mcp-server/tools/format-helpers.js';
|
|
8
|
-
import { buildEffectiveQuery, congressErrorContracts, listEnrichment, listOrDetail, normalizeOptionalString, validateIsoDateTime, } from '../../../mcp-server/tools/tool-helpers.js';
|
|
8
|
+
import { buildEffectiveQuery, congressErrorContracts, listEnrichment, listOrDetail, normalizeOptionalString, notifyIfNoMatches, numericIdentifier, toIdentifierNumber, validateDateTimeRange, validateIsoDateTime, } from '../../../mcp-server/tools/tool-helpers.js';
|
|
9
9
|
import { getCongressApi } from '../../../services/congress-api/congress-api-service.js';
|
|
10
10
|
import { BILL_TYPE_CODES } from '../../../services/congress-api/types.js';
|
|
11
11
|
const BillTypeEnum = z.enum(BILL_TYPE_CODES);
|
|
@@ -33,12 +33,7 @@ export const billLookupTool = tool('congressgov_bill_lookup', {
|
|
|
33
33
|
operation: OperationEnum.describe('Which data to retrieve.'),
|
|
34
34
|
congress: z.number().int().positive().describe('Congress number (e.g., 118, 119).'),
|
|
35
35
|
billType: BillTypeEnum.optional().describe('Bill type code. Required for get and sub-resource operations.'),
|
|
36
|
-
billNumber:
|
|
37
|
-
.number()
|
|
38
|
-
.int()
|
|
39
|
-
.positive()
|
|
40
|
-
.optional()
|
|
41
|
-
.describe('Bill number. Required for get and sub-resource operations.'),
|
|
36
|
+
billNumber: numericIdentifier('Bill number. Required for get and sub-resource operations. Accepts the digit-string form list rows carry (e.g. "9479") as well as a number.').optional(),
|
|
42
37
|
fromDateTime: z
|
|
43
38
|
.string()
|
|
44
39
|
.optional()
|
|
@@ -61,6 +56,7 @@ export const billLookupTool = tool('congressgov_bill_lookup', {
|
|
|
61
56
|
const api = getCongressApi();
|
|
62
57
|
const fromDateTime = validateIsoDateTime(normalizeOptionalString(input.fromDateTime), 'fromDateTime');
|
|
63
58
|
const toDateTime = validateIsoDateTime(normalizeOptionalString(input.toDateTime), 'toDateTime');
|
|
59
|
+
validateDateTimeRange(fromDateTime, toDateTime);
|
|
64
60
|
if (input.operation === 'list') {
|
|
65
61
|
const result = await api.listBills({
|
|
66
62
|
congress: input.congress,
|
|
@@ -79,25 +75,26 @@ export const billLookupTool = tool('congressgov_bill_lookup', {
|
|
|
79
75
|
toDateTime,
|
|
80
76
|
}));
|
|
81
77
|
ctx.enrich.total(result.pagination.count);
|
|
82
|
-
|
|
83
|
-
ctx.enrich.notice('No bills matched the filters. Try broadening the date range or removing billType.');
|
|
78
|
+
notifyIfNoMatches(ctx, result, 'No bills matched the filters. Try broadening the date range or removing billType.');
|
|
84
79
|
return result;
|
|
85
80
|
}
|
|
86
81
|
if (!input.billType || !input.billNumber) {
|
|
87
82
|
throw validationError(`The '${input.operation}' operation requires congress, billType, and billNumber. Use 'list' first to find the bill, then request its ${input.operation}.`, { operation: input.operation, billType: input.billType, billNumber: input.billNumber });
|
|
88
83
|
}
|
|
84
|
+
/** List rows carry `number` as a string; the service takes a number. */
|
|
85
|
+
const billNumber = toIdentifierNumber(input.billNumber);
|
|
89
86
|
if (input.operation === 'get') {
|
|
90
87
|
const result = await api.getBill({
|
|
91
88
|
congress: input.congress,
|
|
92
89
|
billType: input.billType,
|
|
93
|
-
billNumber
|
|
90
|
+
billNumber,
|
|
94
91
|
}, ctx);
|
|
95
92
|
ctx.log.info('Bill retrieved', {
|
|
96
93
|
congress: input.congress,
|
|
97
94
|
billType: input.billType,
|
|
98
|
-
billNumber
|
|
95
|
+
billNumber,
|
|
99
96
|
});
|
|
100
|
-
ctx.enrich.echo(`${input.billType.toUpperCase()} ${
|
|
97
|
+
ctx.enrich.echo(`${input.billType.toUpperCase()} ${billNumber} in the ${input.congress}th Congress`);
|
|
101
98
|
ctx.enrich.total(1);
|
|
102
99
|
return result;
|
|
103
100
|
}
|
|
@@ -105,7 +102,7 @@ export const billLookupTool = tool('congressgov_bill_lookup', {
|
|
|
105
102
|
const result = await api.getBillSubResource({
|
|
106
103
|
congress: input.congress,
|
|
107
104
|
billType: input.billType,
|
|
108
|
-
billNumber
|
|
105
|
+
billNumber,
|
|
109
106
|
subResource: subResource,
|
|
110
107
|
limit: input.limit,
|
|
111
108
|
offset: input.offset,
|
|
@@ -113,13 +110,12 @@ export const billLookupTool = tool('congressgov_bill_lookup', {
|
|
|
113
110
|
ctx.log.info('Bill sub-resource retrieved', {
|
|
114
111
|
congress: input.congress,
|
|
115
112
|
billType: input.billType,
|
|
116
|
-
billNumber
|
|
113
|
+
billNumber,
|
|
117
114
|
subResource,
|
|
118
115
|
});
|
|
119
|
-
ctx.enrich.echo(`${input.operation} for ${input.billType.toUpperCase()} ${
|
|
116
|
+
ctx.enrich.echo(`${input.operation} for ${input.billType.toUpperCase()} ${billNumber} in the ${input.congress}th Congress`);
|
|
120
117
|
ctx.enrich.total(result.pagination.count);
|
|
121
|
-
|
|
122
|
-
ctx.enrich.notice(`No ${input.operation} found for ${input.billType.toUpperCase()} ${input.billNumber}.`);
|
|
118
|
+
notifyIfNoMatches(ctx, result, `No ${input.operation} found for ${input.billType.toUpperCase()} ${billNumber}.`);
|
|
123
119
|
return result;
|
|
124
120
|
},
|
|
125
121
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bill-lookup.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/bill-lookup.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,EAAE,eAAe,EAAwB,MAAM,kCAAkC,CAAC;AAEzF,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAE7C,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3B,MAAM;IACN,KAAK;IACL,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,WAAW;IACX,MAAM;IACN,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAA2B;IAC/C,OAAO,EAAE,cAAc;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,yBAAyB,EAAE;IAC5D,WAAW,EAAE,qgBAAqgB;IAClhB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC9E,MAAM,EAAE,sBAAsB;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC5D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACnF,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACxC,+DAA+D,CAChE;QACD,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"bill-lookup.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/bill-lookup.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,13 +6,13 @@ import { z } from '@cyanheads/mcp-ts-core';
|
|
|
6
6
|
export declare const billSummariesTool: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
|
|
7
7
|
congress: z.ZodOptional<z.ZodNumber>;
|
|
8
8
|
billType: z.ZodOptional<z.ZodEnum<{
|
|
9
|
+
hconres: "hconres";
|
|
10
|
+
hjres: "hjres";
|
|
9
11
|
hr: "hr";
|
|
12
|
+
hres: "hres";
|
|
10
13
|
s: "s";
|
|
11
|
-
hjres: "hjres";
|
|
12
|
-
sjres: "sjres";
|
|
13
|
-
hconres: "hconres";
|
|
14
14
|
sconres: "sconres";
|
|
15
|
-
|
|
15
|
+
sjres: "sjres";
|
|
16
16
|
sres: "sres";
|
|
17
17
|
}>>;
|
|
18
18
|
fromDateTime: z.ZodOptional<z.ZodString>;
|
|
@@ -27,28 +27,28 @@ export declare const billSummariesTool: import("@cyanheads/mcp-ts-core").ToolDef
|
|
|
27
27
|
}, z.core.$strip>;
|
|
28
28
|
}, z.core.$loose>, readonly [{
|
|
29
29
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
30
|
-
readonly reason:
|
|
30
|
+
readonly reason: 'not_found';
|
|
31
31
|
readonly retryable: false;
|
|
32
|
-
readonly when:
|
|
32
|
+
readonly when: 'A requested bill, member, committee, report, vote, or nomination does not exist in Congress.gov.';
|
|
33
33
|
readonly recovery: "Use the tool's list or browse operation to discover valid identifiers, then retry with one that exists.";
|
|
34
34
|
}, {
|
|
35
35
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
|
|
36
|
-
readonly reason:
|
|
36
|
+
readonly reason: 'rate_limited';
|
|
37
37
|
readonly retryable: true;
|
|
38
|
-
readonly when:
|
|
39
|
-
readonly recovery:
|
|
38
|
+
readonly when: 'The Congress.gov API rate limit (5,000 requests/hour per key) was exceeded.';
|
|
39
|
+
readonly recovery: 'Wait for the hourly rate-limit window to reset before retrying, or reduce the request frequency.';
|
|
40
40
|
}, {
|
|
41
41
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.InvalidParams;
|
|
42
|
-
readonly reason:
|
|
42
|
+
readonly reason: 'invalid_request';
|
|
43
43
|
readonly retryable: false;
|
|
44
|
-
readonly when:
|
|
45
|
-
readonly recovery:
|
|
44
|
+
readonly when: 'Congress.gov rejected the request as malformed — a bad date range or an identifier with an unexpected shape.';
|
|
45
|
+
readonly recovery: 'Check parameter formats: dates must be ISO 8601 like 2026-05-01T00:00:00Z and identifiers must match their documented shape.';
|
|
46
46
|
}, {
|
|
47
47
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
|
|
48
|
-
readonly reason:
|
|
48
|
+
readonly reason: 'upstream_error';
|
|
49
49
|
readonly retryable: true;
|
|
50
|
-
readonly when:
|
|
51
|
-
readonly recovery:
|
|
50
|
+
readonly when: 'Congress.gov returned an unexpected error (5xx or another non-2xx status).';
|
|
51
|
+
readonly recovery: 'Retry after a short delay; if the failure persists the Congress.gov service may be temporarily degraded.';
|
|
52
52
|
}], {
|
|
53
53
|
effectiveQuery: z.ZodString;
|
|
54
54
|
totalCount: z.ZodNumber;
|
|
@@ -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;
|
|
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;AAmBjD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwF5B,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
6
6
|
import { validationError } from '@cyanheads/mcp-ts-core/errors';
|
|
7
7
|
import { formatSummaries } from '../../../mcp-server/tools/format-helpers.js';
|
|
8
|
-
import { buildEffectiveQuery, congressErrorContracts, listEnrichment, listOutput, normalizeOptionalString, validateIsoDateTime, } from '../../../mcp-server/tools/tool-helpers.js';
|
|
8
|
+
import { buildEffectiveQuery, congressErrorContracts, listEnrichment, listOutput, normalizeOptionalString, notifyIfNoMatches, validateDateTimeRange, validateIsoDateTime, } from '../../../mcp-server/tools/tool-helpers.js';
|
|
9
9
|
import { getCongressApi } from '../../../services/congress-api/congress-api-service.js';
|
|
10
10
|
import { BILL_TYPE_CODES } from '../../../services/congress-api/types.js';
|
|
11
11
|
const DEFAULT_LOOKBACK_MS = 7 * 24 * 60 * 60 * 1000;
|
|
@@ -38,6 +38,10 @@ export const billSummariesTool = tool('congressgov_bill_summaries', {
|
|
|
38
38
|
async handler(input, ctx) {
|
|
39
39
|
const fromDateTimeInput = validateIsoDateTime(normalizeOptionalString(input.fromDateTime), 'fromDateTime');
|
|
40
40
|
const toDateTimeInput = validateIsoDateTime(normalizeOptionalString(input.toDateTime), 'toDateTime');
|
|
41
|
+
// Checked on the caller's own bounds, before the default below is applied —
|
|
42
|
+
// the default only fires when neither bound was supplied, so it can never
|
|
43
|
+
// introduce a reversal of its own.
|
|
44
|
+
validateDateTimeRange(fromDateTimeInput, toDateTimeInput);
|
|
41
45
|
if (input.billType && !input.congress) {
|
|
42
46
|
throw validationError("The 'billType' filter requires 'congress'. Provide both or omit billType to browse across all types.", { field: 'congress', billType: input.billType });
|
|
43
47
|
}
|
|
@@ -62,8 +66,7 @@ export const billSummariesTool = tool('congressgov_bill_summaries', {
|
|
|
62
66
|
toDateTime: toDateTimeInput,
|
|
63
67
|
}));
|
|
64
68
|
ctx.enrich.total(result.pagination.count);
|
|
65
|
-
|
|
66
|
-
ctx.enrich.notice('No summaries found. Try broadening the date range or removing billType/congress filters.');
|
|
69
|
+
notifyIfNoMatches(ctx, result, 'No summaries found. Try broadening the date range or removing billType/congress filters.');
|
|
67
70
|
return result;
|
|
68
71
|
},
|
|
69
72
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bill-summaries.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/bill-summaries.tool.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bill-summaries.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/bill-summaries.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,24 +6,24 @@ import { z } from '@cyanheads/mcp-ts-core';
|
|
|
6
6
|
export declare const committeeLookupTool: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
|
|
7
7
|
operation: z.ZodEnum<{
|
|
8
8
|
bills: "bills";
|
|
9
|
-
reports: "reports";
|
|
10
|
-
nominations: "nominations";
|
|
11
9
|
get: "get";
|
|
12
10
|
list: "list";
|
|
11
|
+
nominations: "nominations";
|
|
12
|
+
reports: "reports";
|
|
13
13
|
}>;
|
|
14
14
|
congress: z.ZodOptional<z.ZodNumber>;
|
|
15
15
|
chamber: z.ZodOptional<z.ZodEnum<{
|
|
16
16
|
house: "house";
|
|
17
|
-
senate: "senate";
|
|
18
17
|
joint: "joint";
|
|
18
|
+
senate: "senate";
|
|
19
19
|
}>>;
|
|
20
20
|
committeeCode: z.ZodOptional<z.ZodString>;
|
|
21
21
|
filter: z.ZodOptional<z.ZodString>;
|
|
22
22
|
limit: z.ZodDefault<z.ZodNumber>;
|
|
23
23
|
offset: z.ZodDefault<z.ZodNumber>;
|
|
24
24
|
order: z.ZodDefault<z.ZodEnum<{
|
|
25
|
-
recent: "recent";
|
|
26
25
|
oldest: "oldest";
|
|
26
|
+
recent: "recent";
|
|
27
27
|
}>>;
|
|
28
28
|
}, z.core.$strip>, z.ZodObject<{
|
|
29
29
|
data: z.ZodOptional<z.ZodArray<z.ZodObject<{}, z.core.$loose>>>;
|
|
@@ -33,28 +33,28 @@ export declare const committeeLookupTool: import("@cyanheads/mcp-ts-core").ToolD
|
|
|
33
33
|
}, z.core.$strip>>;
|
|
34
34
|
}, z.core.$loose>, readonly [{
|
|
35
35
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.NotFound;
|
|
36
|
-
readonly reason:
|
|
36
|
+
readonly reason: 'not_found';
|
|
37
37
|
readonly retryable: false;
|
|
38
|
-
readonly when:
|
|
38
|
+
readonly when: 'A requested bill, member, committee, report, vote, or nomination does not exist in Congress.gov.';
|
|
39
39
|
readonly recovery: "Use the tool's list or browse operation to discover valid identifiers, then retry with one that exists.";
|
|
40
40
|
}, {
|
|
41
41
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.RateLimited;
|
|
42
|
-
readonly reason:
|
|
42
|
+
readonly reason: 'rate_limited';
|
|
43
43
|
readonly retryable: true;
|
|
44
|
-
readonly when:
|
|
45
|
-
readonly recovery:
|
|
44
|
+
readonly when: 'The Congress.gov API rate limit (5,000 requests/hour per key) was exceeded.';
|
|
45
|
+
readonly recovery: 'Wait for the hourly rate-limit window to reset before retrying, or reduce the request frequency.';
|
|
46
46
|
}, {
|
|
47
47
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.InvalidParams;
|
|
48
|
-
readonly reason:
|
|
48
|
+
readonly reason: 'invalid_request';
|
|
49
49
|
readonly retryable: false;
|
|
50
|
-
readonly when:
|
|
51
|
-
readonly recovery:
|
|
50
|
+
readonly when: 'Congress.gov rejected the request as malformed — a bad date range or an identifier with an unexpected shape.';
|
|
51
|
+
readonly recovery: 'Check parameter formats: dates must be ISO 8601 like 2026-05-01T00:00:00Z and identifiers must match their documented shape.';
|
|
52
52
|
}, {
|
|
53
53
|
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ServiceUnavailable;
|
|
54
|
-
readonly reason:
|
|
54
|
+
readonly reason: 'upstream_error';
|
|
55
55
|
readonly retryable: true;
|
|
56
|
-
readonly when:
|
|
57
|
-
readonly recovery:
|
|
56
|
+
readonly when: 'Congress.gov returned an unexpected error (5xx or another non-2xx status).';
|
|
57
|
+
readonly recovery: 'Retry after a short delay; if the failure persists the Congress.gov service may be temporarily degraded.';
|
|
58
58
|
}], {
|
|
59
59
|
effectiveQuery: z.ZodString;
|
|
60
60
|
totalCount: z.ZodNumber;
|
|
@@ -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;
|
|
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;AAkHjD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6N9B,CAAC"}
|