@cyanheads/openfec-mcp-server 0.2.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.
Files changed (98) hide show
  1. package/CLAUDE.md +328 -0
  2. package/Dockerfile +99 -0
  3. package/LICENSE +191 -0
  4. package/README.md +297 -0
  5. package/dist/config/server-config.d.ts +17 -0
  6. package/dist/config/server-config.d.ts.map +1 -0
  7. package/dist/config/server-config.js +31 -0
  8. package/dist/config/server-config.js.map +1 -0
  9. package/dist/index.d.ts +8 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +20 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/mcp-server/prompts/definitions/campaign-analysis.prompt.d.ts +13 -0
  14. package/dist/mcp-server/prompts/definitions/campaign-analysis.prompt.d.ts.map +1 -0
  15. package/dist/mcp-server/prompts/definitions/campaign-analysis.prompt.js +79 -0
  16. package/dist/mcp-server/prompts/definitions/campaign-analysis.prompt.js.map +1 -0
  17. package/dist/mcp-server/prompts/definitions/index.d.ts +12 -0
  18. package/dist/mcp-server/prompts/definitions/index.d.ts.map +1 -0
  19. package/dist/mcp-server/prompts/definitions/index.js +10 -0
  20. package/dist/mcp-server/prompts/definitions/index.js.map +1 -0
  21. package/dist/mcp-server/prompts/definitions/money-trail.prompt.d.ts +13 -0
  22. package/dist/mcp-server/prompts/definitions/money-trail.prompt.d.ts.map +1 -0
  23. package/dist/mcp-server/prompts/definitions/money-trail.prompt.js +78 -0
  24. package/dist/mcp-server/prompts/definitions/money-trail.prompt.js.map +1 -0
  25. package/dist/mcp-server/resources/definitions/candidate.resource.d.ts +10 -0
  26. package/dist/mcp-server/resources/definitions/candidate.resource.d.ts.map +1 -0
  27. package/dist/mcp-server/resources/definitions/candidate.resource.js +28 -0
  28. package/dist/mcp-server/resources/definitions/candidate.resource.js.map +1 -0
  29. package/dist/mcp-server/resources/definitions/committee.resource.d.ts +10 -0
  30. package/dist/mcp-server/resources/definitions/committee.resource.d.ts.map +1 -0
  31. package/dist/mcp-server/resources/definitions/committee.resource.js +26 -0
  32. package/dist/mcp-server/resources/definitions/committee.resource.js.map +1 -0
  33. package/dist/mcp-server/resources/definitions/election.resource.d.ts +25 -0
  34. package/dist/mcp-server/resources/definitions/election.resource.d.ts.map +1 -0
  35. package/dist/mcp-server/resources/definitions/election.resource.js +73 -0
  36. package/dist/mcp-server/resources/definitions/election.resource.js.map +1 -0
  37. package/dist/mcp-server/resources/definitions/index.d.ts +16 -0
  38. package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -0
  39. package/dist/mcp-server/resources/definitions/index.js +18 -0
  40. package/dist/mcp-server/resources/definitions/index.js.map +1 -0
  41. package/dist/mcp-server/tools/definitions/index.d.ts +285 -0
  42. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
  43. package/dist/mcp-server/tools/definitions/index.js +34 -0
  44. package/dist/mcp-server/tools/definitions/index.js.map +1 -0
  45. package/dist/mcp-server/tools/definitions/lookup-calendar.tool.d.ts +37 -0
  46. package/dist/mcp-server/tools/definitions/lookup-calendar.tool.d.ts.map +1 -0
  47. package/dist/mcp-server/tools/definitions/lookup-calendar.tool.js +172 -0
  48. package/dist/mcp-server/tools/definitions/lookup-calendar.tool.js.map +1 -0
  49. package/dist/mcp-server/tools/definitions/lookup-elections.tool.d.ts +31 -0
  50. package/dist/mcp-server/tools/definitions/lookup-elections.tool.d.ts.map +1 -0
  51. package/dist/mcp-server/tools/definitions/lookup-elections.tool.js +134 -0
  52. package/dist/mcp-server/tools/definitions/lookup-elections.tool.js.map +1 -0
  53. package/dist/mcp-server/tools/definitions/search-candidates.tool.d.ts +46 -0
  54. package/dist/mcp-server/tools/definitions/search-candidates.tool.d.ts.map +1 -0
  55. package/dist/mcp-server/tools/definitions/search-candidates.tool.js +170 -0
  56. package/dist/mcp-server/tools/definitions/search-candidates.tool.js.map +1 -0
  57. package/dist/mcp-server/tools/definitions/search-committees.tool.d.ts +29 -0
  58. package/dist/mcp-server/tools/definitions/search-committees.tool.d.ts.map +1 -0
  59. package/dist/mcp-server/tools/definitions/search-committees.tool.js +120 -0
  60. package/dist/mcp-server/tools/definitions/search-committees.tool.js.map +1 -0
  61. package/dist/mcp-server/tools/definitions/search-contributions.tool.d.ts +47 -0
  62. package/dist/mcp-server/tools/definitions/search-contributions.tool.d.ts.map +1 -0
  63. package/dist/mcp-server/tools/definitions/search-contributions.tool.js +252 -0
  64. package/dist/mcp-server/tools/definitions/search-contributions.tool.js.map +1 -0
  65. package/dist/mcp-server/tools/definitions/search-disbursements.tool.d.ts +43 -0
  66. package/dist/mcp-server/tools/definitions/search-disbursements.tool.d.ts.map +1 -0
  67. package/dist/mcp-server/tools/definitions/search-disbursements.tool.js +212 -0
  68. package/dist/mcp-server/tools/definitions/search-disbursements.tool.js.map +1 -0
  69. package/dist/mcp-server/tools/definitions/search-expenditures.tool.d.ts +52 -0
  70. package/dist/mcp-server/tools/definitions/search-expenditures.tool.d.ts.map +1 -0
  71. package/dist/mcp-server/tools/definitions/search-expenditures.tool.js +247 -0
  72. package/dist/mcp-server/tools/definitions/search-expenditures.tool.js.map +1 -0
  73. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts +31 -0
  74. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts.map +1 -0
  75. package/dist/mcp-server/tools/definitions/search-filings.tool.js +123 -0
  76. package/dist/mcp-server/tools/definitions/search-filings.tool.js.map +1 -0
  77. package/dist/mcp-server/tools/definitions/search-legal.tool.d.ts +32 -0
  78. package/dist/mcp-server/tools/definitions/search-legal.tool.d.ts.map +1 -0
  79. package/dist/mcp-server/tools/definitions/search-legal.tool.js +179 -0
  80. package/dist/mcp-server/tools/definitions/search-legal.tool.js.map +1 -0
  81. package/dist/mcp-server/tools/definitions/utils/format-helpers.d.ts +19 -0
  82. package/dist/mcp-server/tools/definitions/utils/format-helpers.d.ts.map +1 -0
  83. package/dist/mcp-server/tools/definitions/utils/format-helpers.js +19 -0
  84. package/dist/mcp-server/tools/definitions/utils/format-helpers.js.map +1 -0
  85. package/dist/mcp-server/tools/definitions/utils/id-validators.d.ts +11 -0
  86. package/dist/mcp-server/tools/definitions/utils/id-validators.d.ts.map +1 -0
  87. package/dist/mcp-server/tools/definitions/utils/id-validators.js +22 -0
  88. package/dist/mcp-server/tools/definitions/utils/id-validators.js.map +1 -0
  89. package/dist/services/openfec/openfec-service.d.ts +54 -0
  90. package/dist/services/openfec/openfec-service.d.ts.map +1 -0
  91. package/dist/services/openfec/openfec-service.js +384 -0
  92. package/dist/services/openfec/openfec-service.js.map +1 -0
  93. package/dist/services/openfec/types.d.ts +86 -0
  94. package/dist/services/openfec/types.d.ts.map +1 -0
  95. package/dist/services/openfec/types.js +8 -0
  96. package/dist/services/openfec/types.js.map +1 -0
  97. package/package.json +91 -0
  98. package/server.json +97 -0
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @fileoverview Resource for fetching a candidate profile by FEC candidate ID.
3
+ * URI: openfec://candidate/{candidate_id}
4
+ * @module src/mcp-server/resources/definitions/candidate.resource
5
+ */
6
+ import { resource, z } from '@cyanheads/mcp-ts-core';
7
+ import { getOpenFecService } from '../../../services/openfec/openfec-service.js';
8
+ export const candidateResource = resource('openfec://candidate/{candidate_id}', {
9
+ name: 'FEC Candidate Profile',
10
+ description: 'Fetch a federal candidate profile with current financial totals. ' +
11
+ 'Candidate IDs start with H (House), S (Senate), or P (President) followed by digits.',
12
+ mimeType: 'application/json',
13
+ params: z.object({
14
+ candidate_id: z.string().describe('FEC candidate ID (e.g., P00003392, H2CO07170, S4AZ00345)'),
15
+ }),
16
+ async handler(params, ctx) {
17
+ const fec = getOpenFecService();
18
+ const candidateResult = await fec.getCandidate(params.candidate_id, ctx);
19
+ const candidate = candidateResult.results[0];
20
+ if (!candidate)
21
+ throw new Error(`Candidate ${params.candidate_id} not found`);
22
+ const totalsResult = await fec.getCandidateTotals({ candidate_id: params.candidate_id }, ctx);
23
+ const totals = totalsResult.results[0];
24
+ ctx.log.info('Candidate resource fetched', { candidate_id: params.candidate_id });
25
+ return { ...candidate, ...(totals ?? {}) };
26
+ },
27
+ });
28
+ //# sourceMappingURL=candidate.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candidate.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/candidate.resource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,oCAAoC,EAAE;IAC9E,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EACT,mEAAmE;QACnE,sFAAsF;IACxF,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;KAC9F,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;QACvB,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,CAAC,YAAY,YAAY,CAAC,CAAC;QAE9E,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9F,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEvC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAClF,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;IAC7C,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @fileoverview Resource for fetching a committee profile by FEC committee ID.
3
+ * URI: openfec://committee/{committee_id}
4
+ * @module src/mcp-server/resources/definitions/committee.resource
5
+ */
6
+ import { z } from '@cyanheads/mcp-ts-core';
7
+ export declare const committeeResource: import("@cyanheads/mcp-ts-core").ResourceDefinition<z.ZodObject<{
8
+ committee_id: z.ZodString;
9
+ }, z.core.$strip>, undefined>;
10
+ //# sourceMappingURL=committee.resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"committee.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/committee.resource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAY,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAGrD,eAAO,MAAM,iBAAiB;;6BAmB5B,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @fileoverview Resource for fetching a committee profile by FEC committee ID.
3
+ * URI: openfec://committee/{committee_id}
4
+ * @module src/mcp-server/resources/definitions/committee.resource
5
+ */
6
+ import { resource, z } from '@cyanheads/mcp-ts-core';
7
+ import { getOpenFecService } from '../../../services/openfec/openfec-service.js';
8
+ export const committeeResource = resource('openfec://committee/{committee_id}', {
9
+ name: 'FEC Committee Profile',
10
+ description: 'Fetch a political committee profile with type, designation, and financial summary. ' +
11
+ 'Committee IDs start with C followed by digits (e.g., C00358796).',
12
+ mimeType: 'application/json',
13
+ params: z.object({
14
+ committee_id: z.string().describe('FEC committee ID (e.g., C00358796)'),
15
+ }),
16
+ async handler(params, ctx) {
17
+ const fec = getOpenFecService();
18
+ const result = await fec.getCommittee(params.committee_id, ctx);
19
+ const committee = result.results[0];
20
+ if (!committee)
21
+ throw new Error(`Committee ${params.committee_id} not found`);
22
+ ctx.log.info('Committee resource fetched', { committee_id: params.committee_id });
23
+ return committee;
24
+ },
25
+ });
26
+ //# sourceMappingURL=committee.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"committee.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/committee.resource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,oCAAoC,EAAE;IAC9E,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EACT,qFAAqF;QACrF,kEAAkE;IACpE,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KACxE,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;QACvB,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,CAAC,YAAY,YAAY,CAAC,CAAC;QAE9E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAClF,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @fileoverview Resources for fetching election race summaries.
3
+ * Three URI templates for presidential, state (senate), and district (house) races.
4
+ * @module src/mcp-server/resources/definitions/election.resource
5
+ */
6
+ import { z } from '@cyanheads/mcp-ts-core';
7
+ /** Presidential and at-large races: openfec://election/2024/president */
8
+ export declare const electionResource: import("@cyanheads/mcp-ts-core").ResourceDefinition<z.ZodObject<{
9
+ cycle: z.ZodString;
10
+ office: z.ZodString;
11
+ }, z.core.$strip>, undefined>;
12
+ /** Senate races: openfec://election/2024/senate/AZ */
13
+ export declare const electionStateResource: import("@cyanheads/mcp-ts-core").ResourceDefinition<z.ZodObject<{
14
+ cycle: z.ZodString;
15
+ office: z.ZodString;
16
+ state: z.ZodString;
17
+ }, z.core.$strip>, undefined>;
18
+ /** House races: openfec://election/2024/house/CA/12 */
19
+ export declare const electionDistrictResource: import("@cyanheads/mcp-ts-core").ResourceDefinition<z.ZodObject<{
20
+ cycle: z.ZodString;
21
+ office: z.ZodString;
22
+ state: z.ZodString;
23
+ district: z.ZodString;
24
+ }, z.core.$strip>, undefined>;
25
+ //# sourceMappingURL=election.resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"election.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/election.resource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAY,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAmCrD,yEAAyE;AACzE,eAAO,MAAM,gBAAgB;;;6BAY3B,CAAC;AAEH,sDAAsD;AACtD,eAAO,MAAM,qBAAqB;;;;6BAUhC,CAAC;AAEH,uDAAuD;AACvD,eAAO,MAAM,wBAAwB;;;;;6BAcpC,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @fileoverview Resources for fetching election race summaries.
3
+ * Three URI templates for presidential, state (senate), and district (house) races.
4
+ * @module src/mcp-server/resources/definitions/election.resource
5
+ */
6
+ import { resource, z } from '@cyanheads/mcp-ts-core';
7
+ import { getOpenFecService } from '../../../services/openfec/openfec-service.js';
8
+ /** Shared handler logic for all election resource URI variants. */
9
+ async function fetchElection(params, ctx) {
10
+ const fec = getOpenFecService();
11
+ const apiParams = {
12
+ cycle: params.cycle,
13
+ office: params.office,
14
+ election_full: true,
15
+ };
16
+ if (params.state)
17
+ apiParams.state = params.state;
18
+ if (params.district)
19
+ apiParams.district = params.district;
20
+ const result = await fec.searchElections(apiParams, ctx);
21
+ ctx.log.info('Election resource fetched', {
22
+ cycle: params.cycle,
23
+ office: params.office,
24
+ state: params.state,
25
+ district: params.district,
26
+ });
27
+ return {
28
+ cycle: params.cycle,
29
+ office: params.office,
30
+ state: params.state,
31
+ district: params.district,
32
+ candidates: result.results,
33
+ };
34
+ }
35
+ /** Presidential and at-large races: openfec://election/2024/president */
36
+ export const electionResource = resource('openfec://election/{cycle}/{office}', {
37
+ name: 'FEC Election Race',
38
+ description: 'Fetch an election race with candidate financial totals. ' +
39
+ 'For senate races use openfec://election/{cycle}/senate/{state}. ' +
40
+ 'For house races use openfec://election/{cycle}/house/{state}/{district}.',
41
+ mimeType: 'application/json',
42
+ params: z.object({
43
+ cycle: z.string().describe('Election cycle year (e.g., 2024)'),
44
+ office: z.string().describe('Office: president, senate, or house'),
45
+ }),
46
+ handler: (params, ctx) => fetchElection(params, ctx),
47
+ });
48
+ /** Senate races: openfec://election/2024/senate/AZ */
49
+ export const electionStateResource = resource('openfec://election/{cycle}/{office}/{state}', {
50
+ name: 'FEC Election Race (State)',
51
+ description: 'Fetch a senate or at-large election race with candidate financial totals.',
52
+ mimeType: 'application/json',
53
+ params: z.object({
54
+ cycle: z.string().describe('Election cycle year (e.g., 2024)'),
55
+ office: z.string().describe('Office: senate (or president)'),
56
+ state: z.string().describe('Two-letter US state code (e.g., AZ)'),
57
+ }),
58
+ handler: (params, ctx) => fetchElection(params, ctx),
59
+ });
60
+ /** House races: openfec://election/2024/house/CA/12 */
61
+ export const electionDistrictResource = resource('openfec://election/{cycle}/{office}/{state}/{district}', {
62
+ name: 'FEC Election Race (District)',
63
+ description: 'Fetch a house election race with candidate financial totals.',
64
+ mimeType: 'application/json',
65
+ params: z.object({
66
+ cycle: z.string().describe('Election cycle year (e.g., 2024)'),
67
+ office: z.string().describe('Office: house'),
68
+ state: z.string().describe('Two-letter US state code (e.g., CA)'),
69
+ district: z.string().describe('Two-digit district number (e.g., 12)'),
70
+ }),
71
+ handler: (params, ctx) => fetchElection(params, ctx),
72
+ });
73
+ //# sourceMappingURL=election.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"election.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/election.resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @fileoverview Barrel export for all resource definitions.
3
+ * @module src/mcp-server/resources/definitions/index
4
+ */
5
+ export { candidateResource } from './candidate.resource.js';
6
+ export { committeeResource } from './committee.resource.js';
7
+ export { electionDistrictResource, electionResource, electionStateResource, } from './election.resource.js';
8
+ export declare const allResourceDefinitions: (import("@cyanheads/mcp-ts-core").ResourceDefinition<import("zod").ZodObject<{
9
+ candidate_id: import("zod").ZodString;
10
+ }, import("zod/v4/core").$strip>, undefined> | import("@cyanheads/mcp-ts-core").ResourceDefinition<import("zod").ZodObject<{
11
+ committee_id: import("zod").ZodString;
12
+ }, import("zod/v4/core").$strip>, undefined> | import("@cyanheads/mcp-ts-core").ResourceDefinition<import("zod").ZodObject<{
13
+ cycle: import("zod").ZodString;
14
+ office: import("zod").ZodString;
15
+ }, import("zod/v4/core").$strip>, undefined>)[];
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAUhC,eAAO,MAAM,sBAAsB;;;;;;;+CAMlC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @fileoverview Barrel export for all resource definitions.
3
+ * @module src/mcp-server/resources/definitions/index
4
+ */
5
+ export { candidateResource } from './candidate.resource.js';
6
+ export { committeeResource } from './committee.resource.js';
7
+ export { electionDistrictResource, electionResource, electionStateResource, } from './election.resource.js';
8
+ import { candidateResource } from './candidate.resource.js';
9
+ import { committeeResource } from './committee.resource.js';
10
+ import { electionDistrictResource, electionResource, electionStateResource, } from './election.resource.js';
11
+ export const allResourceDefinitions = [
12
+ candidateResource,
13
+ committeeResource,
14
+ electionResource,
15
+ electionStateResource,
16
+ electionDistrictResource,
17
+ ];
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,qBAAqB;IACrB,wBAAwB;CACzB,CAAC"}
@@ -0,0 +1,285 @@
1
+ /**
2
+ * @fileoverview Barrel export for all tool definitions.
3
+ * @module src/mcp-server/tools/definitions/index
4
+ */
5
+ export { lookupCalendar } from './lookup-calendar.tool.js';
6
+ export { lookupElections } from './lookup-elections.tool.js';
7
+ export { searchCandidates } from './search-candidates.tool.js';
8
+ export { searchCommittees } from './search-committees.tool.js';
9
+ export { searchContributions } from './search-contributions.tool.js';
10
+ export { searchDisbursements } from './search-disbursements.tool.js';
11
+ export { searchExpenditures } from './search-expenditures.tool.js';
12
+ export { searchFilings } from './search-filings.tool.js';
13
+ export { searchLegal } from './search-legal.tool.js';
14
+ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
15
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
16
+ events: "events";
17
+ filing_deadlines: "filing_deadlines";
18
+ election_dates: "election_dates";
19
+ }>>;
20
+ state: import("zod").ZodOptional<import("zod").ZodString>;
21
+ office: import("zod").ZodOptional<import("zod").ZodEnum<{
22
+ H: "H";
23
+ S: "S";
24
+ P: "P";
25
+ }>>;
26
+ report_type: import("zod").ZodOptional<import("zod").ZodString>;
27
+ report_year: import("zod").ZodOptional<import("zod").ZodNumber>;
28
+ category: import("zod").ZodOptional<import("zod").ZodString>;
29
+ election_year: import("zod").ZodOptional<import("zod").ZodNumber>;
30
+ description: import("zod").ZodOptional<import("zod").ZodString>;
31
+ min_date: import("zod").ZodOptional<import("zod").ZodString>;
32
+ max_date: import("zod").ZodOptional<import("zod").ZodString>;
33
+ page: import("zod").ZodDefault<import("zod").ZodNumber>;
34
+ per_page: import("zod").ZodDefault<import("zod").ZodNumber>;
35
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
36
+ results: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
37
+ pagination: import("zod").ZodObject<{
38
+ page: import("zod").ZodNumber;
39
+ pages: import("zod").ZodNumber;
40
+ count: import("zod").ZodNumber;
41
+ per_page: import("zod").ZodNumber;
42
+ }, import("zod/v4/core").$strip>;
43
+ }, import("zod/v4/core").$strip>> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
44
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
45
+ summary: "summary";
46
+ search: "search";
47
+ }>>;
48
+ office: import("zod").ZodEnum<{
49
+ president: "president";
50
+ senate: "senate";
51
+ house: "house";
52
+ }>;
53
+ cycle: import("zod").ZodNumber;
54
+ state: import("zod").ZodOptional<import("zod").ZodString>;
55
+ district: import("zod").ZodOptional<import("zod").ZodString>;
56
+ zip: import("zod").ZodOptional<import("zod").ZodString>;
57
+ election_full: import("zod").ZodDefault<import("zod").ZodBoolean>;
58
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
59
+ results: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
60
+ pagination: import("zod").ZodObject<{
61
+ page: import("zod").ZodNumber;
62
+ pages: import("zod").ZodNumber;
63
+ count: import("zod").ZodNumber;
64
+ per_page: import("zod").ZodNumber;
65
+ }, import("zod/v4/core").$strip>;
66
+ }, import("zod/v4/core").$strip>> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
67
+ query: import("zod").ZodOptional<import("zod").ZodString>;
68
+ candidate_id: import("zod").ZodOptional<import("zod").ZodString>;
69
+ state: import("zod").ZodOptional<import("zod").ZodString>;
70
+ district: import("zod").ZodOptional<import("zod").ZodString>;
71
+ office: import("zod").ZodOptional<import("zod").ZodEnum<{
72
+ H: "H";
73
+ S: "S";
74
+ P: "P";
75
+ }>>;
76
+ party: import("zod").ZodOptional<import("zod").ZodString>;
77
+ cycle: import("zod").ZodOptional<import("zod").ZodNumber>;
78
+ election_year: import("zod").ZodOptional<import("zod").ZodNumber>;
79
+ incumbent_challenge: import("zod").ZodOptional<import("zod").ZodEnum<{
80
+ I: "I";
81
+ C: "C";
82
+ O: "O";
83
+ }>>;
84
+ candidate_status: import("zod").ZodOptional<import("zod").ZodEnum<{
85
+ P: "P";
86
+ C: "C";
87
+ F: "F";
88
+ N: "N";
89
+ }>>;
90
+ has_raised_funds: import("zod").ZodOptional<import("zod").ZodBoolean>;
91
+ include_totals: import("zod").ZodOptional<import("zod").ZodBoolean>;
92
+ page: import("zod").ZodOptional<import("zod").ZodNumber>;
93
+ per_page: import("zod").ZodOptional<import("zod").ZodNumber>;
94
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
95
+ candidates: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
96
+ totals: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
97
+ pagination: import("zod").ZodObject<{
98
+ page: import("zod").ZodNumber;
99
+ pages: import("zod").ZodNumber;
100
+ count: import("zod").ZodNumber;
101
+ per_page: import("zod").ZodNumber;
102
+ }, import("zod/v4/core").$strip>;
103
+ }, import("zod/v4/core").$strip>> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
104
+ query: import("zod").ZodOptional<import("zod").ZodString>;
105
+ committee_id: import("zod").ZodOptional<import("zod").ZodString>;
106
+ candidate_id: import("zod").ZodOptional<import("zod").ZodString>;
107
+ state: import("zod").ZodOptional<import("zod").ZodString>;
108
+ party: import("zod").ZodOptional<import("zod").ZodString>;
109
+ committee_type: import("zod").ZodOptional<import("zod").ZodString>;
110
+ designation: import("zod").ZodOptional<import("zod").ZodString>;
111
+ cycle: import("zod").ZodOptional<import("zod").ZodNumber>;
112
+ treasurer_name: import("zod").ZodOptional<import("zod").ZodString>;
113
+ page: import("zod").ZodOptional<import("zod").ZodNumber>;
114
+ per_page: import("zod").ZodOptional<import("zod").ZodNumber>;
115
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
116
+ committees: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
117
+ pagination: import("zod").ZodObject<{
118
+ page: import("zod").ZodNumber;
119
+ pages: import("zod").ZodNumber;
120
+ count: import("zod").ZodNumber;
121
+ per_page: import("zod").ZodNumber;
122
+ }, import("zod/v4/core").$strip>;
123
+ }, import("zod/v4/core").$strip>> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
124
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
125
+ by_size: "by_size";
126
+ by_state: "by_state";
127
+ by_employer: "by_employer";
128
+ by_occupation: "by_occupation";
129
+ itemized: "itemized";
130
+ }>>;
131
+ committee_id: import("zod").ZodOptional<import("zod").ZodString>;
132
+ candidate_id: import("zod").ZodOptional<import("zod").ZodString>;
133
+ contributor_name: import("zod").ZodOptional<import("zod").ZodString>;
134
+ contributor_employer: import("zod").ZodOptional<import("zod").ZodString>;
135
+ contributor_occupation: import("zod").ZodOptional<import("zod").ZodString>;
136
+ contributor_city: import("zod").ZodOptional<import("zod").ZodString>;
137
+ contributor_state: import("zod").ZodOptional<import("zod").ZodString>;
138
+ contributor_zip: import("zod").ZodOptional<import("zod").ZodString>;
139
+ cycle: import("zod").ZodOptional<import("zod").ZodNumber>;
140
+ min_date: import("zod").ZodOptional<import("zod").ZodString>;
141
+ max_date: import("zod").ZodOptional<import("zod").ZodString>;
142
+ min_amount: import("zod").ZodOptional<import("zod").ZodNumber>;
143
+ max_amount: import("zod").ZodOptional<import("zod").ZodNumber>;
144
+ is_individual: import("zod").ZodOptional<import("zod").ZodBoolean>;
145
+ sort: import("zod").ZodOptional<import("zod").ZodEnum<{
146
+ contribution_receipt_date: "contribution_receipt_date";
147
+ contribution_receipt_amount: "contribution_receipt_amount";
148
+ }>>;
149
+ per_page: import("zod").ZodDefault<import("zod").ZodNumber>;
150
+ cursor: import("zod").ZodOptional<import("zod").ZodString>;
151
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
152
+ results: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
153
+ next_cursor: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
154
+ count: import("zod").ZodOptional<import("zod").ZodNumber>;
155
+ pagination: import("zod").ZodOptional<import("zod").ZodObject<{
156
+ page: import("zod").ZodNumber;
157
+ pages: import("zod").ZodNumber;
158
+ count: import("zod").ZodNumber;
159
+ per_page: import("zod").ZodNumber;
160
+ }, import("zod/v4/core").$strip>>;
161
+ }, import("zod/v4/core").$strip>> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
162
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
163
+ by_purpose: "by_purpose";
164
+ by_recipient: "by_recipient";
165
+ by_recipient_id: "by_recipient_id";
166
+ itemized: "itemized";
167
+ }>>;
168
+ committee_id: import("zod").ZodString;
169
+ recipient_name: import("zod").ZodOptional<import("zod").ZodString>;
170
+ recipient_state: import("zod").ZodOptional<import("zod").ZodString>;
171
+ recipient_city: import("zod").ZodOptional<import("zod").ZodString>;
172
+ recipient_committee_id: import("zod").ZodOptional<import("zod").ZodString>;
173
+ disbursement_description: import("zod").ZodOptional<import("zod").ZodString>;
174
+ disbursement_purpose_category: import("zod").ZodOptional<import("zod").ZodString>;
175
+ cycle: import("zod").ZodOptional<import("zod").ZodNumber>;
176
+ min_date: import("zod").ZodOptional<import("zod").ZodString>;
177
+ max_date: import("zod").ZodOptional<import("zod").ZodString>;
178
+ min_amount: import("zod").ZodOptional<import("zod").ZodNumber>;
179
+ max_amount: import("zod").ZodOptional<import("zod").ZodNumber>;
180
+ sort: import("zod").ZodOptional<import("zod").ZodEnum<{
181
+ disbursement_date: "disbursement_date";
182
+ disbursement_amount: "disbursement_amount";
183
+ }>>;
184
+ per_page: import("zod").ZodDefault<import("zod").ZodNumber>;
185
+ cursor: import("zod").ZodOptional<import("zod").ZodString>;
186
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
187
+ results: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
188
+ next_cursor: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
189
+ count: import("zod").ZodOptional<import("zod").ZodNumber>;
190
+ pagination: import("zod").ZodOptional<import("zod").ZodObject<{
191
+ page: import("zod").ZodNumber;
192
+ pages: import("zod").ZodNumber;
193
+ count: import("zod").ZodNumber;
194
+ per_page: import("zod").ZodNumber;
195
+ }, import("zod/v4/core").$strip>>;
196
+ }, import("zod/v4/core").$strip>> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
197
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
198
+ itemized: "itemized";
199
+ by_candidate: "by_candidate";
200
+ }>>;
201
+ committee_id: import("zod").ZodOptional<import("zod").ZodString>;
202
+ candidate_id: import("zod").ZodOptional<import("zod").ZodString>;
203
+ support_oppose: import("zod").ZodOptional<import("zod").ZodEnum<{
204
+ S: "S";
205
+ O: "O";
206
+ }>>;
207
+ payee_name: import("zod").ZodOptional<import("zod").ZodString>;
208
+ candidate_office: import("zod").ZodOptional<import("zod").ZodEnum<{
209
+ H: "H";
210
+ S: "S";
211
+ P: "P";
212
+ }>>;
213
+ candidate_office_state: import("zod").ZodOptional<import("zod").ZodString>;
214
+ candidate_party: import("zod").ZodOptional<import("zod").ZodString>;
215
+ cycle: import("zod").ZodOptional<import("zod").ZodNumber>;
216
+ min_date: import("zod").ZodOptional<import("zod").ZodString>;
217
+ max_date: import("zod").ZodOptional<import("zod").ZodString>;
218
+ min_amount: import("zod").ZodOptional<import("zod").ZodNumber>;
219
+ max_amount: import("zod").ZodOptional<import("zod").ZodNumber>;
220
+ is_notice: import("zod").ZodOptional<import("zod").ZodBoolean>;
221
+ most_recent: import("zod").ZodDefault<import("zod").ZodBoolean>;
222
+ sort: import("zod").ZodOptional<import("zod").ZodEnum<{
223
+ expenditure_date: "expenditure_date";
224
+ expenditure_amount: "expenditure_amount";
225
+ office_total_ytd: "office_total_ytd";
226
+ }>>;
227
+ per_page: import("zod").ZodDefault<import("zod").ZodNumber>;
228
+ cursor: import("zod").ZodOptional<import("zod").ZodString>;
229
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
230
+ results: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
231
+ next_cursor: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
232
+ count: import("zod").ZodOptional<import("zod").ZodNumber>;
233
+ pagination: import("zod").ZodOptional<import("zod").ZodObject<{
234
+ page: import("zod").ZodNumber;
235
+ pages: import("zod").ZodNumber;
236
+ count: import("zod").ZodNumber;
237
+ per_page: import("zod").ZodNumber;
238
+ }, import("zod/v4/core").$strip>>;
239
+ }, import("zod/v4/core").$strip>> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
240
+ committee_id: import("zod").ZodOptional<import("zod").ZodString>;
241
+ candidate_id: import("zod").ZodOptional<import("zod").ZodString>;
242
+ filer_name: import("zod").ZodOptional<import("zod").ZodString>;
243
+ form_type: import("zod").ZodOptional<import("zod").ZodString>;
244
+ report_type: import("zod").ZodOptional<import("zod").ZodString>;
245
+ report_year: import("zod").ZodOptional<import("zod").ZodNumber>;
246
+ cycle: import("zod").ZodOptional<import("zod").ZodNumber>;
247
+ is_amended: import("zod").ZodOptional<import("zod").ZodBoolean>;
248
+ most_recent: import("zod").ZodOptional<import("zod").ZodBoolean>;
249
+ min_receipt_date: import("zod").ZodOptional<import("zod").ZodString>;
250
+ max_receipt_date: import("zod").ZodOptional<import("zod").ZodString>;
251
+ page: import("zod").ZodOptional<import("zod").ZodNumber>;
252
+ per_page: import("zod").ZodOptional<import("zod").ZodNumber>;
253
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
254
+ filings: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
255
+ pagination: import("zod").ZodObject<{
256
+ page: import("zod").ZodNumber;
257
+ pages: import("zod").ZodNumber;
258
+ count: import("zod").ZodNumber;
259
+ per_page: import("zod").ZodNumber;
260
+ }, import("zod/v4/core").$strip>;
261
+ }, import("zod/v4/core").$strip>> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
262
+ query: import("zod").ZodOptional<import("zod").ZodString>;
263
+ type: import("zod").ZodOptional<import("zod").ZodEnum<{
264
+ advisory_opinions: "advisory_opinions";
265
+ murs: "murs";
266
+ adrs: "adrs";
267
+ admin_fines: "admin_fines";
268
+ statutes: "statutes";
269
+ }>>;
270
+ ao_number: import("zod").ZodOptional<import("zod").ZodString>;
271
+ case_number: import("zod").ZodOptional<import("zod").ZodString>;
272
+ respondent: import("zod").ZodOptional<import("zod").ZodString>;
273
+ regulatory_citation: import("zod").ZodOptional<import("zod").ZodString>;
274
+ statutory_citation: import("zod").ZodOptional<import("zod").ZodString>;
275
+ min_penalty_amount: import("zod").ZodOptional<import("zod").ZodNumber>;
276
+ max_penalty_amount: import("zod").ZodOptional<import("zod").ZodNumber>;
277
+ min_date: import("zod").ZodOptional<import("zod").ZodString>;
278
+ max_date: import("zod").ZodOptional<import("zod").ZodString>;
279
+ from_hit: import("zod").ZodDefault<import("zod").ZodNumber>;
280
+ hits_returned: import("zod").ZodDefault<import("zod").ZodNumber>;
281
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
282
+ results: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
283
+ total_count: import("zod").ZodNumber;
284
+ }, import("zod/v4/core").$strip>>)[];
285
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAYrD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAU9B,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @fileoverview Barrel export for all tool definitions.
3
+ * @module src/mcp-server/tools/definitions/index
4
+ */
5
+ export { lookupCalendar } from './lookup-calendar.tool.js';
6
+ export { lookupElections } from './lookup-elections.tool.js';
7
+ export { searchCandidates } from './search-candidates.tool.js';
8
+ export { searchCommittees } from './search-committees.tool.js';
9
+ export { searchContributions } from './search-contributions.tool.js';
10
+ export { searchDisbursements } from './search-disbursements.tool.js';
11
+ export { searchExpenditures } from './search-expenditures.tool.js';
12
+ export { searchFilings } from './search-filings.tool.js';
13
+ export { searchLegal } from './search-legal.tool.js';
14
+ import { lookupCalendar } from './lookup-calendar.tool.js';
15
+ import { lookupElections } from './lookup-elections.tool.js';
16
+ import { searchCandidates } from './search-candidates.tool.js';
17
+ import { searchCommittees } from './search-committees.tool.js';
18
+ import { searchContributions } from './search-contributions.tool.js';
19
+ import { searchDisbursements } from './search-disbursements.tool.js';
20
+ import { searchExpenditures } from './search-expenditures.tool.js';
21
+ import { searchFilings } from './search-filings.tool.js';
22
+ import { searchLegal } from './search-legal.tool.js';
23
+ export const allToolDefinitions = [
24
+ searchCandidates,
25
+ searchCommittees,
26
+ searchContributions,
27
+ searchDisbursements,
28
+ searchExpenditures,
29
+ searchFilings,
30
+ lookupElections,
31
+ searchLegal,
32
+ lookupCalendar,
33
+ ];
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,aAAa;IACb,eAAe;IACf,WAAW;IACX,cAAc;CACf,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @fileoverview Calendar lookup tool — FEC calendar events, filing deadlines,
3
+ * and election dates.
4
+ * @module mcp-server/tools/definitions/lookup-calendar.tool
5
+ */
6
+ import { z } from '@cyanheads/mcp-ts-core';
7
+ export declare const lookupCalendar: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
8
+ mode: z.ZodDefault<z.ZodEnum<{
9
+ events: "events";
10
+ filing_deadlines: "filing_deadlines";
11
+ election_dates: "election_dates";
12
+ }>>;
13
+ state: z.ZodOptional<z.ZodString>;
14
+ office: z.ZodOptional<z.ZodEnum<{
15
+ H: "H";
16
+ S: "S";
17
+ P: "P";
18
+ }>>;
19
+ report_type: z.ZodOptional<z.ZodString>;
20
+ report_year: z.ZodOptional<z.ZodNumber>;
21
+ category: z.ZodOptional<z.ZodString>;
22
+ election_year: z.ZodOptional<z.ZodNumber>;
23
+ description: z.ZodOptional<z.ZodString>;
24
+ min_date: z.ZodOptional<z.ZodString>;
25
+ max_date: z.ZodOptional<z.ZodString>;
26
+ page: z.ZodDefault<z.ZodNumber>;
27
+ per_page: z.ZodDefault<z.ZodNumber>;
28
+ }, z.core.$strip>, z.ZodObject<{
29
+ results: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
30
+ pagination: z.ZodObject<{
31
+ page: z.ZodNumber;
32
+ pages: z.ZodNumber;
33
+ count: z.ZodNumber;
34
+ per_page: z.ZodNumber;
35
+ }, z.core.$strip>;
36
+ }, z.core.$strip>>;
37
+ //# sourceMappingURL=lookup-calendar.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookup-calendar.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/lookup-calendar.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAIjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqKzB,CAAC"}