us-gov-open-data-mcp 1.0.0

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 (310) hide show
  1. package/README.md +211 -0
  2. package/dist/client.d.ts +54 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +388 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/instructions.d.ts +8 -0
  7. package/dist/instructions.d.ts.map +1 -0
  8. package/dist/instructions.js +549 -0
  9. package/dist/instructions.js.map +1 -0
  10. package/dist/modules/bea.d.ts +28 -0
  11. package/dist/modules/bea.d.ts.map +1 -0
  12. package/dist/modules/bea.js +158 -0
  13. package/dist/modules/bea.js.map +1 -0
  14. package/dist/modules/bls.d.ts +29 -0
  15. package/dist/modules/bls.d.ts.map +1 -0
  16. package/dist/modules/bls.js +244 -0
  17. package/dist/modules/bls.js.map +1 -0
  18. package/dist/modules/bts.d.ts +26 -0
  19. package/dist/modules/bts.d.ts.map +1 -0
  20. package/dist/modules/bts.js +112 -0
  21. package/dist/modules/bts.js.map +1 -0
  22. package/dist/modules/cdc.d.ts +26 -0
  23. package/dist/modules/cdc.d.ts.map +1 -0
  24. package/dist/modules/cdc.js +310 -0
  25. package/dist/modules/cdc.js.map +1 -0
  26. package/dist/modules/census.d.ts +23 -0
  27. package/dist/modules/census.d.ts.map +1 -0
  28. package/dist/modules/census.js +141 -0
  29. package/dist/modules/census.js.map +1 -0
  30. package/dist/modules/cfpb.d.ts +20 -0
  31. package/dist/modules/cfpb.d.ts.map +1 -0
  32. package/dist/modules/cfpb.js +135 -0
  33. package/dist/modules/cfpb.js.map +1 -0
  34. package/dist/modules/clinical-trials.d.ts +22 -0
  35. package/dist/modules/clinical-trials.d.ts.map +1 -0
  36. package/dist/modules/clinical-trials.js +171 -0
  37. package/dist/modules/clinical-trials.js.map +1 -0
  38. package/dist/modules/cms.d.ts +21 -0
  39. package/dist/modules/cms.d.ts.map +1 -0
  40. package/dist/modules/cms.js +135 -0
  41. package/dist/modules/cms.js.map +1 -0
  42. package/dist/modules/college-scorecard.d.ts +39 -0
  43. package/dist/modules/college-scorecard.d.ts.map +1 -0
  44. package/dist/modules/college-scorecard.js +192 -0
  45. package/dist/modules/college-scorecard.js.map +1 -0
  46. package/dist/modules/congress.d.ts +28 -0
  47. package/dist/modules/congress.d.ts.map +1 -0
  48. package/dist/modules/congress.js +883 -0
  49. package/dist/modules/congress.js.map +1 -0
  50. package/dist/modules/dol.d.ts +27 -0
  51. package/dist/modules/dol.d.ts.map +1 -0
  52. package/dist/modules/dol.js +209 -0
  53. package/dist/modules/dol.js.map +1 -0
  54. package/dist/modules/eia.d.ts +33 -0
  55. package/dist/modules/eia.d.ts.map +1 -0
  56. package/dist/modules/eia.js +227 -0
  57. package/dist/modules/eia.js.map +1 -0
  58. package/dist/modules/epa.d.ts +21 -0
  59. package/dist/modules/epa.d.ts.map +1 -0
  60. package/dist/modules/epa.js +91 -0
  61. package/dist/modules/epa.js.map +1 -0
  62. package/dist/modules/fbi.d.ts +28 -0
  63. package/dist/modules/fbi.d.ts.map +1 -0
  64. package/dist/modules/fbi.js +143 -0
  65. package/dist/modules/fbi.js.map +1 -0
  66. package/dist/modules/fda.d.ts +35 -0
  67. package/dist/modules/fda.d.ts.map +1 -0
  68. package/dist/modules/fda.js +262 -0
  69. package/dist/modules/fda.js.map +1 -0
  70. package/dist/modules/fdic.d.ts +21 -0
  71. package/dist/modules/fdic.d.ts.map +1 -0
  72. package/dist/modules/fdic.js +186 -0
  73. package/dist/modules/fdic.js.map +1 -0
  74. package/dist/modules/fec.d.ts +29 -0
  75. package/dist/modules/fec.d.ts.map +1 -0
  76. package/dist/modules/fec.js +282 -0
  77. package/dist/modules/fec.js.map +1 -0
  78. package/dist/modules/federal-register.d.ts +24 -0
  79. package/dist/modules/federal-register.d.ts.map +1 -0
  80. package/dist/modules/federal-register.js +184 -0
  81. package/dist/modules/federal-register.js.map +1 -0
  82. package/dist/modules/fema.d.ts +20 -0
  83. package/dist/modules/fema.d.ts.map +1 -0
  84. package/dist/modules/fema.js +156 -0
  85. package/dist/modules/fema.js.map +1 -0
  86. package/dist/modules/fred.d.ts +40 -0
  87. package/dist/modules/fred.d.ts.map +1 -0
  88. package/dist/modules/fred.js +143 -0
  89. package/dist/modules/fred.js.map +1 -0
  90. package/dist/modules/govinfo.d.ts +24 -0
  91. package/dist/modules/govinfo.d.ts.map +1 -0
  92. package/dist/modules/govinfo.js +147 -0
  93. package/dist/modules/govinfo.js.map +1 -0
  94. package/dist/modules/hud.d.ts +17 -0
  95. package/dist/modules/hud.d.ts.map +1 -0
  96. package/dist/modules/hud.js +170 -0
  97. package/dist/modules/hud.js.map +1 -0
  98. package/dist/modules/naep.d.ts +27 -0
  99. package/dist/modules/naep.d.ts.map +1 -0
  100. package/dist/modules/naep.js +210 -0
  101. package/dist/modules/naep.js.map +1 -0
  102. package/dist/modules/nhtsa.d.ts +13 -0
  103. package/dist/modules/nhtsa.d.ts.map +1 -0
  104. package/dist/modules/nhtsa.js +196 -0
  105. package/dist/modules/nhtsa.js.map +1 -0
  106. package/dist/modules/noaa.d.ts +41 -0
  107. package/dist/modules/noaa.d.ts.map +1 -0
  108. package/dist/modules/noaa.js +135 -0
  109. package/dist/modules/noaa.js.map +1 -0
  110. package/dist/modules/nrel.d.ts +25 -0
  111. package/dist/modules/nrel.d.ts.map +1 -0
  112. package/dist/modules/nrel.js +87 -0
  113. package/dist/modules/nrel.js.map +1 -0
  114. package/dist/modules/regulations.d.ts +24 -0
  115. package/dist/modules/regulations.d.ts.map +1 -0
  116. package/dist/modules/regulations.js +173 -0
  117. package/dist/modules/regulations.js.map +1 -0
  118. package/dist/modules/sec.d.ts +25 -0
  119. package/dist/modules/sec.d.ts.map +1 -0
  120. package/dist/modules/sec.js +192 -0
  121. package/dist/modules/sec.js.map +1 -0
  122. package/dist/modules/senate-lobbying.d.ts +21 -0
  123. package/dist/modules/senate-lobbying.d.ts.map +1 -0
  124. package/dist/modules/senate-lobbying.js +189 -0
  125. package/dist/modules/senate-lobbying.js.map +1 -0
  126. package/dist/modules/treasury.d.ts +23 -0
  127. package/dist/modules/treasury.d.ts.map +1 -0
  128. package/dist/modules/treasury.js +234 -0
  129. package/dist/modules/treasury.js.map +1 -0
  130. package/dist/modules/usaspending.d.ts +19 -0
  131. package/dist/modules/usaspending.d.ts.map +1 -0
  132. package/dist/modules/usaspending.js +204 -0
  133. package/dist/modules/usaspending.js.map +1 -0
  134. package/dist/modules/usda-fooddata.d.ts +24 -0
  135. package/dist/modules/usda-fooddata.d.ts.map +1 -0
  136. package/dist/modules/usda-fooddata.js +118 -0
  137. package/dist/modules/usda-fooddata.js.map +1 -0
  138. package/dist/modules/usda-nass.d.ts +46 -0
  139. package/dist/modules/usda-nass.d.ts.map +1 -0
  140. package/dist/modules/usda-nass.js +151 -0
  141. package/dist/modules/usda-nass.js.map +1 -0
  142. package/dist/modules/usgs.d.ts +21 -0
  143. package/dist/modules/usgs.d.ts.map +1 -0
  144. package/dist/modules/usgs.js +203 -0
  145. package/dist/modules/usgs.js.map +1 -0
  146. package/dist/modules/uspto.d.ts +13 -0
  147. package/dist/modules/uspto.d.ts.map +1 -0
  148. package/dist/modules/uspto.js +157 -0
  149. package/dist/modules/uspto.js.map +1 -0
  150. package/dist/modules/world-bank.d.ts +21 -0
  151. package/dist/modules/world-bank.d.ts.map +1 -0
  152. package/dist/modules/world-bank.js +130 -0
  153. package/dist/modules/world-bank.js.map +1 -0
  154. package/dist/prompts.d.ts +12 -0
  155. package/dist/prompts.d.ts.map +1 -0
  156. package/dist/prompts.js +858 -0
  157. package/dist/prompts.js.map +1 -0
  158. package/dist/sdk/bea.d.ts +111 -0
  159. package/dist/sdk/bea.d.ts.map +1 -0
  160. package/dist/sdk/bea.js +242 -0
  161. package/dist/sdk/bea.js.map +1 -0
  162. package/dist/sdk/bls.d.ts +65 -0
  163. package/dist/sdk/bls.d.ts.map +1 -0
  164. package/dist/sdk/bls.js +203 -0
  165. package/dist/sdk/bls.js.map +1 -0
  166. package/dist/sdk/bts.d.ts +108 -0
  167. package/dist/sdk/bts.d.ts.map +1 -0
  168. package/dist/sdk/bts.js +121 -0
  169. package/dist/sdk/bts.js.map +1 -0
  170. package/dist/sdk/cdc.d.ts +105 -0
  171. package/dist/sdk/cdc.d.ts.map +1 -0
  172. package/dist/sdk/cdc.js +222 -0
  173. package/dist/sdk/cdc.js.map +1 -0
  174. package/dist/sdk/census.d.ts +47 -0
  175. package/dist/sdk/census.d.ts.map +1 -0
  176. package/dist/sdk/census.js +99 -0
  177. package/dist/sdk/census.js.map +1 -0
  178. package/dist/sdk/cfpb.d.ts +148 -0
  179. package/dist/sdk/cfpb.d.ts.map +1 -0
  180. package/dist/sdk/cfpb.js +153 -0
  181. package/dist/sdk/cfpb.js.map +1 -0
  182. package/dist/sdk/clinical-trials.d.ts +214 -0
  183. package/dist/sdk/clinical-trials.d.ts.map +1 -0
  184. package/dist/sdk/clinical-trials.js +134 -0
  185. package/dist/sdk/clinical-trials.js.map +1 -0
  186. package/dist/sdk/cms.d.ts +81 -0
  187. package/dist/sdk/cms.d.ts.map +1 -0
  188. package/dist/sdk/cms.js +227 -0
  189. package/dist/sdk/cms.js.map +1 -0
  190. package/dist/sdk/college-scorecard.d.ts +63 -0
  191. package/dist/sdk/college-scorecard.d.ts.map +1 -0
  192. package/dist/sdk/college-scorecard.js +131 -0
  193. package/dist/sdk/college-scorecard.js.map +1 -0
  194. package/dist/sdk/congress.d.ts +575 -0
  195. package/dist/sdk/congress.d.ts.map +1 -0
  196. package/dist/sdk/congress.js +659 -0
  197. package/dist/sdk/congress.js.map +1 -0
  198. package/dist/sdk/dol.d.ts +299 -0
  199. package/dist/sdk/dol.d.ts.map +1 -0
  200. package/dist/sdk/dol.js +252 -0
  201. package/dist/sdk/dol.js.map +1 -0
  202. package/dist/sdk/eia.d.ts +91 -0
  203. package/dist/sdk/eia.d.ts.map +1 -0
  204. package/dist/sdk/eia.js +156 -0
  205. package/dist/sdk/eia.js.map +1 -0
  206. package/dist/sdk/epa.d.ts +128 -0
  207. package/dist/sdk/epa.d.ts.map +1 -0
  208. package/dist/sdk/epa.js +120 -0
  209. package/dist/sdk/epa.js.map +1 -0
  210. package/dist/sdk/fbi.d.ts +48 -0
  211. package/dist/sdk/fbi.d.ts.map +1 -0
  212. package/dist/sdk/fbi.js +69 -0
  213. package/dist/sdk/fbi.js.map +1 -0
  214. package/dist/sdk/fda.d.ts +356 -0
  215. package/dist/sdk/fda.d.ts.map +1 -0
  216. package/dist/sdk/fda.js +162 -0
  217. package/dist/sdk/fda.js.map +1 -0
  218. package/dist/sdk/fdic.d.ts +227 -0
  219. package/dist/sdk/fdic.d.ts.map +1 -0
  220. package/dist/sdk/fdic.js +172 -0
  221. package/dist/sdk/fdic.js.map +1 -0
  222. package/dist/sdk/fec.d.ts +142 -0
  223. package/dist/sdk/fec.d.ts.map +1 -0
  224. package/dist/sdk/fec.js +92 -0
  225. package/dist/sdk/fec.js.map +1 -0
  226. package/dist/sdk/federal-register.d.ts +88 -0
  227. package/dist/sdk/federal-register.d.ts.map +1 -0
  228. package/dist/sdk/federal-register.js +100 -0
  229. package/dist/sdk/federal-register.js.map +1 -0
  230. package/dist/sdk/fema.d.ts +137 -0
  231. package/dist/sdk/fema.d.ts.map +1 -0
  232. package/dist/sdk/fema.js +197 -0
  233. package/dist/sdk/fema.js.map +1 -0
  234. package/dist/sdk/fred.d.ts +72 -0
  235. package/dist/sdk/fred.d.ts.map +1 -0
  236. package/dist/sdk/fred.js +59 -0
  237. package/dist/sdk/fred.js.map +1 -0
  238. package/dist/sdk/govinfo.d.ts +64 -0
  239. package/dist/sdk/govinfo.d.ts.map +1 -0
  240. package/dist/sdk/govinfo.js +187 -0
  241. package/dist/sdk/govinfo.js.map +1 -0
  242. package/dist/sdk/hud.d.ts +87 -0
  243. package/dist/sdk/hud.d.ts.map +1 -0
  244. package/dist/sdk/hud.js +91 -0
  245. package/dist/sdk/hud.js.map +1 -0
  246. package/dist/sdk/index.d.ts +51 -0
  247. package/dist/sdk/index.d.ts.map +1 -0
  248. package/dist/sdk/index.js +51 -0
  249. package/dist/sdk/index.js.map +1 -0
  250. package/dist/sdk/naep.d.ts +93 -0
  251. package/dist/sdk/naep.d.ts.map +1 -0
  252. package/dist/sdk/naep.js +163 -0
  253. package/dist/sdk/naep.js.map +1 -0
  254. package/dist/sdk/nhtsa.d.ts +169 -0
  255. package/dist/sdk/nhtsa.d.ts.map +1 -0
  256. package/dist/sdk/nhtsa.js +102 -0
  257. package/dist/sdk/nhtsa.js.map +1 -0
  258. package/dist/sdk/noaa.d.ts +72 -0
  259. package/dist/sdk/noaa.d.ts.map +1 -0
  260. package/dist/sdk/noaa.js +64 -0
  261. package/dist/sdk/noaa.js.map +1 -0
  262. package/dist/sdk/nrel.d.ts +145 -0
  263. package/dist/sdk/nrel.d.ts.map +1 -0
  264. package/dist/sdk/nrel.js +93 -0
  265. package/dist/sdk/nrel.js.map +1 -0
  266. package/dist/sdk/regulations.d.ts +146 -0
  267. package/dist/sdk/regulations.d.ts.map +1 -0
  268. package/dist/sdk/regulations.js +103 -0
  269. package/dist/sdk/regulations.js.map +1 -0
  270. package/dist/sdk/sec.d.ts +114 -0
  271. package/dist/sdk/sec.d.ts.map +1 -0
  272. package/dist/sdk/sec.js +151 -0
  273. package/dist/sdk/sec.js.map +1 -0
  274. package/dist/sdk/senate-lobbying.d.ts +147 -0
  275. package/dist/sdk/senate-lobbying.d.ts.map +1 -0
  276. package/dist/sdk/senate-lobbying.js +125 -0
  277. package/dist/sdk/senate-lobbying.js.map +1 -0
  278. package/dist/sdk/treasury.d.ts +59 -0
  279. package/dist/sdk/treasury.d.ts.map +1 -0
  280. package/dist/sdk/treasury.js +1397 -0
  281. package/dist/sdk/treasury.js.map +1 -0
  282. package/dist/sdk/usaspending.d.ts +126 -0
  283. package/dist/sdk/usaspending.d.ts.map +1 -0
  284. package/dist/sdk/usaspending.js +270 -0
  285. package/dist/sdk/usaspending.js.map +1 -0
  286. package/dist/sdk/usda-fooddata.d.ts +112 -0
  287. package/dist/sdk/usda-fooddata.d.ts.map +1 -0
  288. package/dist/sdk/usda-fooddata.js +80 -0
  289. package/dist/sdk/usda-fooddata.js.map +1 -0
  290. package/dist/sdk/usda-nass.d.ts +75 -0
  291. package/dist/sdk/usda-nass.d.ts.map +1 -0
  292. package/dist/sdk/usda-nass.js +83 -0
  293. package/dist/sdk/usda-nass.js.map +1 -0
  294. package/dist/sdk/usgs.d.ts +221 -0
  295. package/dist/sdk/usgs.d.ts.map +1 -0
  296. package/dist/sdk/usgs.js +182 -0
  297. package/dist/sdk/usgs.js.map +1 -0
  298. package/dist/sdk/uspto.d.ts +109 -0
  299. package/dist/sdk/uspto.d.ts.map +1 -0
  300. package/dist/sdk/uspto.js +286 -0
  301. package/dist/sdk/uspto.js.map +1 -0
  302. package/dist/sdk/world-bank.d.ts +78 -0
  303. package/dist/sdk/world-bank.d.ts.map +1 -0
  304. package/dist/sdk/world-bank.js +72 -0
  305. package/dist/sdk/world-bank.js.map +1 -0
  306. package/dist/server.d.ts +22 -0
  307. package/dist/server.d.ts.map +1 -0
  308. package/dist/server.js +196 -0
  309. package/dist/server.js.map +1 -0
  310. package/package.json +113 -0
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Regulations.gov MCP module — search regulatory documents, public comments, and dockets.
3
+ */
4
+ import { z } from "zod";
5
+ import { searchDocuments, getDocument, searchComments, getComment, searchDockets, getDocket, } from "../sdk/regulations.js";
6
+ // ─── Metadata (server.ts reads these) ────────────────────────────────
7
+ export const name = "regulations";
8
+ export const displayName = "Regulations.gov";
9
+ export const description = "Federal rulemaking: proposed rules, final rules, public comments, and regulatory dockets from all federal agencies";
10
+ export const auth = { envVar: "DATA_GOV_API_KEY", signup: "https://api.data.gov/signup/" };
11
+ export const workflow = "regulations_search_documents to find rules → regulations_document_detail for full info → regulations_search_comments for public feedback";
12
+ export const tips = "Document types: 'Proposed Rule', 'Rule', 'Supporting & Related Material', 'Other'. Sort by '-postedDate' for newest first. Agency IDs: EPA, FDA, DOL, HHS, DOT, etc.";
13
+ export const reference = {
14
+ documentTypes: {
15
+ "Proposed Rule": "Notice of proposed rulemaking (NPRM)",
16
+ "Rule": "Final rule",
17
+ "Supporting & Related Material": "Supporting documents, analyses, studies",
18
+ "Other": "Other documents",
19
+ },
20
+ docketTypes: {
21
+ "Rulemaking": "Rulemaking docket",
22
+ "Nonrulemaking": "Nonrulemaking docket",
23
+ },
24
+ docs: {
25
+ "API Docs": "https://open.gsa.gov/api/regulationsgov/",
26
+ "Regulations.gov": "https://www.regulations.gov/",
27
+ },
28
+ };
29
+ // ─── Tools ───────────────────────────────────────────────────────────
30
+ export const tools = [
31
+ {
32
+ name: "regulations_search_documents",
33
+ description: "Search for federal regulatory documents — proposed rules, final rules, and supporting materials.\n" +
34
+ "Filter by agency, docket, date, or keyword. Complements Federal Register data with rulemaking context.\n\n" +
35
+ "Document types: 'Proposed Rule', 'Rule', 'Supporting & Related Material', 'Other'.\n" +
36
+ "Sort: 'postedDate' (asc) or '-postedDate' (desc, newest first).",
37
+ annotations: { title: "Regulations.gov: Search Documents", readOnlyHint: true },
38
+ parameters: z.object({
39
+ searchTerm: z.string().optional().describe("Full-text search keyword (e.g. 'water quality', 'emissions')"),
40
+ agencyId: z.string().optional().describe("Agency abbreviation: 'EPA', 'FDA', 'DOL', 'HHS', 'DOT', 'OSHA'"),
41
+ docketId: z.string().optional().describe("Docket ID (e.g. 'EPA-HQ-OAR-2003-0129')"),
42
+ documentType: z.string().optional().describe("'Proposed Rule', 'Rule', 'Supporting & Related Material', 'Other'"),
43
+ postedDate: z.string().optional().describe("Exact date: '2024-01-15'"),
44
+ postedDateGe: z.string().optional().describe("Posted on or after date: '2024-01-01'"),
45
+ postedDateLe: z.string().optional().describe("Posted on or before date: '2024-12-31'"),
46
+ sort: z.string().optional().describe("Sort field: 'postedDate', '-postedDate', 'title', '-title'"),
47
+ pageSize: z.number().int().max(250).optional().describe("Results per page (max 250, default 25)"),
48
+ pageNumber: z.number().int().optional().describe("Page number (1-based)"),
49
+ }),
50
+ execute: async (args) => {
51
+ const data = await searchDocuments(args);
52
+ if (!data.data?.length)
53
+ return `No documents found${args.searchTerm ? ` for '${args.searchTerm}'` : ""}.`;
54
+ return JSON.stringify({
55
+ summary: `Found ${data.meta?.totalElements ?? data.data.length} regulatory documents${args.agencyId ? ` from ${args.agencyId}` : ""}${args.searchTerm ? ` matching '${args.searchTerm}'` : ""}, showing ${data.data.length}`,
56
+ total: data.meta?.totalElements,
57
+ documents: data.data.map(d => ({
58
+ documentId: d.id,
59
+ title: d.attributes.title,
60
+ agency: d.attributes.agencyId,
61
+ type: d.attributes.documentType,
62
+ docket: d.attributes.docketId,
63
+ posted: d.attributes.postedDate,
64
+ commentEndDate: d.attributes.commentEndDate,
65
+ withdrawn: d.attributes.withdrawn,
66
+ })),
67
+ });
68
+ },
69
+ },
70
+ {
71
+ name: "regulations_document_detail",
72
+ description: "Get detailed information for a specific regulatory document by its document ID (e.g. 'FDA-2009-N-0501-0012').",
73
+ annotations: { title: "Regulations.gov: Document Detail", readOnlyHint: true },
74
+ parameters: z.object({
75
+ documentId: z.string().describe("Document ID (e.g. 'FDA-2009-N-0501-0012', 'EPA-HQ-OAR-2021-0208-0001')"),
76
+ }),
77
+ execute: async ({ documentId }) => {
78
+ const data = await getDocument(documentId);
79
+ return JSON.stringify(data.data);
80
+ },
81
+ },
82
+ {
83
+ name: "regulations_search_comments",
84
+ description: "Search for public comments on federal regulations.\n" +
85
+ "Filter by keyword, agency, docket, or date. Shows what the public said about proposed rules.\n\n" +
86
+ "Sort: 'postedDate' (asc) or '-postedDate' (desc, newest first).",
87
+ annotations: { title: "Regulations.gov: Search Comments", readOnlyHint: true },
88
+ parameters: z.object({
89
+ searchTerm: z.string().optional().describe("Keyword search in comments"),
90
+ agencyId: z.string().optional().describe("Agency abbreviation: 'EPA', 'FDA', 'DOL'"),
91
+ docketId: z.string().optional().describe("Docket ID to get comments for a specific rulemaking"),
92
+ postedDateGe: z.string().optional().describe("Comments posted on or after date: '2024-01-01'"),
93
+ postedDateLe: z.string().optional().describe("Comments posted on or before date: '2024-12-31'"),
94
+ sort: z.string().optional().describe("'-postedDate' for newest first, 'postedDate' for oldest first"),
95
+ pageSize: z.number().int().max(250).optional().describe("Results per page (max 250, default 25)"),
96
+ pageNumber: z.number().int().optional().describe("Page number (1-based)"),
97
+ }),
98
+ execute: async (args) => {
99
+ const data = await searchComments(args);
100
+ if (!data.data?.length)
101
+ return `No comments found${args.searchTerm ? ` for '${args.searchTerm}'` : ""}.`;
102
+ return JSON.stringify({
103
+ summary: `Found ${data.meta?.totalElements ?? data.data.length} public comments${args.agencyId ? ` for ${args.agencyId}` : ""}${args.docketId ? ` on docket ${args.docketId}` : ""}, showing ${data.data.length}`,
104
+ total: data.meta?.totalElements,
105
+ comments: data.data.map(c => ({
106
+ commentId: c.id,
107
+ title: c.attributes.title,
108
+ agency: c.attributes.agencyId,
109
+ docket: c.attributes.docketId,
110
+ posted: c.attributes.postedDate,
111
+ comment: c.attributes.comment,
112
+ })),
113
+ });
114
+ },
115
+ },
116
+ {
117
+ name: "regulations_comment_detail",
118
+ description: "Get detailed information for a specific public comment by its comment ID.",
119
+ annotations: { title: "Regulations.gov: Comment Detail", readOnlyHint: true },
120
+ parameters: z.object({
121
+ commentId: z.string().describe("Comment ID (e.g. 'HHS-OCR-2018-0002-5313')"),
122
+ }),
123
+ execute: async ({ commentId }) => {
124
+ const data = await getComment(commentId);
125
+ return JSON.stringify(data.data);
126
+ },
127
+ },
128
+ {
129
+ name: "regulations_search_dockets",
130
+ description: "Search for regulatory dockets — organizational folders containing related rules, comments, and documents.\n" +
131
+ "Each docket represents a rulemaking or non-rulemaking action by a federal agency.\n\n" +
132
+ "Sort: 'title', '-title'.",
133
+ annotations: { title: "Regulations.gov: Search Dockets", readOnlyHint: true },
134
+ parameters: z.object({
135
+ searchTerm: z.string().optional().describe("Keyword search (e.g. 'clean air', 'food safety')"),
136
+ agencyId: z.string().optional().describe("Agency abbreviation: 'EPA', 'FDA', 'DOL', 'HHS'. Comma-separate for multiple: 'EPA,FDA'"),
137
+ docketType: z.string().optional().describe("'Rulemaking' or 'Nonrulemaking'"),
138
+ sort: z.string().optional().describe("'title' or '-title'"),
139
+ pageSize: z.number().int().max(250).optional().describe("Results per page (max 250, default 25)"),
140
+ pageNumber: z.number().int().optional().describe("Page number (1-based)"),
141
+ }),
142
+ execute: async (args) => {
143
+ const data = await searchDockets(args);
144
+ if (!data.data?.length)
145
+ return `No dockets found${args.searchTerm ? ` for '${args.searchTerm}'` : ""}.`;
146
+ return JSON.stringify({
147
+ summary: `Found ${data.meta?.totalElements ?? data.data.length} dockets${args.agencyId ? ` from ${args.agencyId}` : ""}, showing ${data.data.length}`,
148
+ total: data.meta?.totalElements,
149
+ dockets: data.data.map(d => ({
150
+ docketId: d.id,
151
+ title: d.attributes.title,
152
+ agency: d.attributes.agencyId,
153
+ type: d.attributes.docketType,
154
+ lastModified: d.attributes.lastModifiedDate,
155
+ })),
156
+ });
157
+ },
158
+ },
159
+ {
160
+ name: "regulations_docket_detail",
161
+ description: "Get detailed information for a specific regulatory docket by its docket ID (e.g. 'EPA-HQ-OAR-2003-0129').",
162
+ annotations: { title: "Regulations.gov: Docket Detail", readOnlyHint: true },
163
+ parameters: z.object({
164
+ docketId: z.string().describe("Docket ID (e.g. 'EPA-HQ-OAR-2003-0129')"),
165
+ }),
166
+ execute: async ({ docketId }) => {
167
+ const data = await getDocket(docketId);
168
+ return JSON.stringify(data.data);
169
+ },
170
+ },
171
+ ];
172
+ export { clearCache } from "../sdk/regulations.js";
173
+ //# sourceMappingURL=regulations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regulations.js","sourceRoot":"","sources":["../../src/modules/regulations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * SEC EDGAR MCP module — tools + metadata. Delegates all API calls to sdk/sec.
3
+ *
4
+ * Tools return raw JSON data — no markdown formatting. The client decides how to present it.
5
+ */
6
+ import type { Tool, InputPrompt } from "fastmcp";
7
+ export declare const name = "sec";
8
+ export declare const displayName = "SEC EDGAR";
9
+ export declare const description = "Company filings, financial data (XBRL), and full-text search across SEC EDGAR";
10
+ export declare const workflow = "sec_filing_search to find companies/CIKs \u2192 sec_company_search for details \u2192 sec_company_financials for XBRL data";
11
+ export declare const tips = "No API key required. Rate limit: 10 req/sec. CIK numbers must be looked up first \u2014 use sec_filing_search to find them by company name.";
12
+ export declare const reference: {
13
+ xbrlConcepts: Record<string, string>;
14
+ commonCiks: Record<string, string>;
15
+ docs: {
16
+ "Developer Resources": string;
17
+ "EDGAR APIs": string;
18
+ "Full-Text Search": string;
19
+ "Fair Access Policy": string;
20
+ };
21
+ };
22
+ export declare const tools: Tool<any, any>[];
23
+ export declare const prompts: InputPrompt<any, any>[];
24
+ export { clearCache } from "../sdk/sec.js";
25
+ //# sourceMappingURL=sec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sec.d.ts","sourceRoot":"","sources":["../../src/modules/sec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAajD,eAAO,MAAM,IAAI,QAAQ,CAAC;AAC1B,eAAO,MAAM,WAAW,cAAc,CAAC;AACvC,eAAO,MAAM,WAAW,kFAAkF,CAAC;AAC3G,eAAO,MAAM,QAAQ,+HAAqH,CAAC;AAC3I,eAAO,MAAM,IAAI,gJAA2I,CAAC;AAE7J,eAAO,MAAM,SAAS;kBACU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;gBAU/C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;;;CAO5B,CAAC;AAIF,eAAO,MAAM,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAyJjC,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAe1C,CAAC;AAIF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * SEC EDGAR MCP module — tools + metadata. Delegates all API calls to sdk/sec.
3
+ *
4
+ * Tools return raw JSON data — no markdown formatting. The client decides how to present it.
5
+ */
6
+ import { z } from "zod";
7
+ import { getCompanyByCik, getCompanyFacts, searchEdgar, extractConceptData, summarizeFinancials, xbrlConcepts, } from "../sdk/sec.js";
8
+ // ─── Metadata (server.ts reads these) ────────────────────────────────
9
+ export const name = "sec";
10
+ export const displayName = "SEC EDGAR";
11
+ export const description = "Company filings, financial data (XBRL), and full-text search across SEC EDGAR";
12
+ export const workflow = "sec_filing_search to find companies/CIKs → sec_company_search for details → sec_company_financials for XBRL data";
13
+ export const tips = "No API key required. Rate limit: 10 req/sec. CIK numbers must be looked up first — use sec_filing_search to find them by company name.";
14
+ export const reference = {
15
+ xbrlConcepts: xbrlConcepts,
16
+ commonCiks: {
17
+ "0000320193": "Apple",
18
+ "0000789019": "Microsoft",
19
+ "0001018724": "Amazon",
20
+ "0000936468": "Lockheed Martin",
21
+ "0000101829": "Raytheon (RTX)",
22
+ "0000012927": "Boeing",
23
+ "0000040533": "General Dynamics",
24
+ "0001133421": "Northrop Grumman",
25
+ },
26
+ docs: {
27
+ "Developer Resources": "https://www.sec.gov/about/developer-resources",
28
+ "EDGAR APIs": "https://www.sec.gov/page/edgar-application-programming-interfaces-old",
29
+ "Full-Text Search": "https://efts.sec.gov/LATEST/",
30
+ "Fair Access Policy": "https://www.sec.gov/privacy.htm#security",
31
+ },
32
+ };
33
+ // ─── Tools ───────────────────────────────────────────────────────────
34
+ export const tools = [
35
+ {
36
+ name: "sec_company_search",
37
+ description: "Look up a company on SEC EDGAR by CIK number. Returns company name, " +
38
+ "tickers, SIC code, state, and recent filings list.\n\n" +
39
+ "Common CIK numbers:\n" +
40
+ "- Apple: 0000320193\n" +
41
+ "- Microsoft: 0000789019\n" +
42
+ "- Amazon: 0001018724\n" +
43
+ "- Lockheed Martin: 0000936468\n" +
44
+ "- Raytheon (RTX): 0000101829\n" +
45
+ "- Boeing: 0000012927\n\n" +
46
+ "To find CIK: search by company name using sec_filing_search.",
47
+ annotations: { title: "SEC: Company Lookup", readOnlyHint: true },
48
+ parameters: z.object({
49
+ cik: z.string().describe("10-digit CIK number (e.g., '0000320193' for Apple). Leading zeros optional."),
50
+ }),
51
+ execute: async ({ cik }) => {
52
+ const res = await getCompanyByCik(cik);
53
+ const filings = res.filings?.recent;
54
+ const forms = filings?.form || [];
55
+ const dates = filings?.filingDate || [];
56
+ const descriptions = filings?.primaryDocDescription || [];
57
+ const accessions = filings?.accessionNumber || [];
58
+ // Last 15 non-insider filings (skip Form 3, 4, 5, 144)
59
+ const majorFilings = [];
60
+ for (let i = 0; i < forms.length && majorFilings.length < 15; i++) {
61
+ if (["3", "4", "5", "144"].includes(forms[i]))
62
+ continue;
63
+ majorFilings.push({
64
+ form: forms[i],
65
+ date: dates[i],
66
+ description: descriptions[i] || "No description",
67
+ accessionNumber: accessions[i],
68
+ });
69
+ }
70
+ return JSON.stringify({
71
+ summary: `SEC EDGAR: ${res.name || "Unknown"} (CIK ${res.cik}) — ${res.tickers?.join(", ") || "no tickers"}`,
72
+ company: {
73
+ cik: res.cik,
74
+ name: res.name,
75
+ tickers: res.tickers || [],
76
+ exchanges: res.exchanges || [],
77
+ sic: res.sic,
78
+ sicDescription: res.sicDescription,
79
+ stateOfIncorporation: res.stateOfIncorporation,
80
+ entityType: res.entityType,
81
+ category: res.category,
82
+ fiscalYearEnd: res.fiscalYearEnd,
83
+ formerNames: res.formerNames || [],
84
+ },
85
+ recentFilings: majorFilings,
86
+ });
87
+ },
88
+ },
89
+ {
90
+ name: "sec_company_financials",
91
+ description: "Get financial data (revenue, net income, assets, etc.) from SEC XBRL filings for a company. " +
92
+ "Returns standardized financial data extracted from 10-K and 10-Q filings.\n\n" +
93
+ "Requires CIK number. Use sec_company_search to look up filings first.\n\n" +
94
+ "Common XBRL concepts: Revenues, NetIncomeLoss, Assets, Liabilities, " +
95
+ "StockholdersEquity, EarningsPerShareBasic, CashAndCashEquivalentsAtCarryingValue",
96
+ annotations: { title: "SEC: Company Financial Facts", readOnlyHint: true },
97
+ parameters: z.object({
98
+ cik: z.string().describe("10-digit CIK number (e.g., '0000320193' for Apple)"),
99
+ metric: z.string().optional().describe("Specific XBRL concept to retrieve (e.g., 'Revenues', 'NetIncomeLoss', 'Assets'). " +
100
+ "Omit to get a summary of available key metrics."),
101
+ }),
102
+ execute: async ({ cik, metric }) => {
103
+ const facts = await getCompanyFacts(cik);
104
+ const usgaap = facts.facts["us-gaap"];
105
+ if (!usgaap) {
106
+ return JSON.stringify({ summary: `No US-GAAP financial data found for CIK ${cik}.`, data: null });
107
+ }
108
+ // Specific metric requested
109
+ if (metric) {
110
+ const data = extractConceptData(facts, metric);
111
+ if (!data) {
112
+ const available = Object.keys(usgaap).slice(0, 30);
113
+ return JSON.stringify({
114
+ summary: `Metric "${metric}" not found for ${facts.entityName}. Showing first 30 available metrics.`,
115
+ availableMetrics: available,
116
+ });
117
+ }
118
+ return JSON.stringify({
119
+ summary: `${facts.entityName} — ${data.concept} (${data.label}): ${data.annual.length} annual + ${data.quarterly.length} quarterly observations`,
120
+ entityName: facts.entityName,
121
+ concept: data.concept,
122
+ label: data.label,
123
+ description: data.description,
124
+ unit: data.unit,
125
+ annual: data.annual.map(d => ({ period: d.end, value: d.val, filed: d.filed })),
126
+ quarterly: data.quarterly.map(d => ({ period: d.end, value: d.val, filed: d.filed })),
127
+ });
128
+ }
129
+ // Summary of key metrics
130
+ const summary = summarizeFinancials(facts);
131
+ return JSON.stringify({
132
+ summary: `SEC Financial Facts: ${summary.entityName} — ${summary.keyMetrics.length} key metrics found (${summary.totalMetrics} total available)`,
133
+ ...summary,
134
+ });
135
+ },
136
+ },
137
+ {
138
+ name: "sec_filing_search",
139
+ description: "Full-text search across all SEC EDGAR filings. " +
140
+ "Search by company name, keyword, or topic.\n\n" +
141
+ "Form types: 10-K (annual), 10-Q (quarterly), 8-K (current events), " +
142
+ "DEF 14A (proxy), S-1 (IPO registration)",
143
+ annotations: { title: "SEC: Search Filings", readOnlyHint: true },
144
+ parameters: z.object({
145
+ query: z.string().describe("Search query — company name, keyword, or topic"),
146
+ forms: z.string().optional().describe("Comma-separated form types to filter: '10-K', '10-Q', '8-K', 'DEF 14A', 'S-1'"),
147
+ start_date: z.string().optional().describe("Start date YYYY-MM-DD"),
148
+ end_date: z.string().optional().describe("End date YYYY-MM-DD"),
149
+ }),
150
+ execute: async ({ query, forms, start_date, end_date }) => {
151
+ const result = await searchEdgar(query, {
152
+ forms,
153
+ startDate: start_date,
154
+ endDate: end_date,
155
+ });
156
+ if (result.hits.length === 0) {
157
+ return JSON.stringify({ summary: `No filings found for "${query}".`, total: 0, filings: [] });
158
+ }
159
+ const filings = result.hits.slice(0, 20).map(hit => ({
160
+ company: hit.names[0] || "?",
161
+ form: hit.form,
162
+ date: hit.date,
163
+ description: hit.description,
164
+ }));
165
+ return JSON.stringify({
166
+ summary: `SEC filing search "${query}": ${result.total} results, showing ${filings.length}`,
167
+ total: result.total,
168
+ filings,
169
+ });
170
+ },
171
+ },
172
+ ];
173
+ export const prompts = [
174
+ {
175
+ name: "company_snapshot",
176
+ description: "Quick financial overview of a public company from SEC filings.",
177
+ arguments: [
178
+ { name: "company", description: "Company name or ticker", required: true },
179
+ ],
180
+ load: async (args) => {
181
+ const company = args?.company ?? "";
182
+ return (`Get a financial snapshot of ${company}:\n\n` +
183
+ `1. Use sec_company_search to find the company and get its CIK number\n` +
184
+ "2. Use sec_company_financials with the CIK to get recent financials\n" +
185
+ " Request these metrics: Revenues, NetIncomeLoss, Assets, Liabilities, EarningsPerShareDiluted\n\n" +
186
+ "Present the last 3-4 years of financial data as a summary. Note trends in revenue, profitability, and debt levels.");
187
+ },
188
+ },
189
+ ];
190
+ // ─── Re-export cache control from SDK ────────────────────────────────
191
+ export { clearCache } from "../sdk/sec.js";
192
+ //# sourceMappingURL=sec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sec.js","sourceRoot":"","sources":["../../src/modules/sec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Senate Lobbying Disclosure MCP module — follow the money from lobbyists to legislation.
3
+ */
4
+ import type { Tool } from "fastmcp";
5
+ export declare const name = "senate-lobbying";
6
+ export declare const displayName = "Senate Lobbying Disclosures";
7
+ export declare const description = "Lobbying filings, expenditures, activities, and campaign contributions \u2014 who is lobbying Congress, on what issues, and how much they're spending";
8
+ export declare const workflow = "lobbying_search to find filings by company/issue \u2192 lobbying_detail for specific bills lobbied \u2192 lobbying_contributions for campaign donations by lobbyists. For conflict-of-interest investigations: search by trade group AND individual companies to get total industry lobbying spend across 3+ years around a vote.";
9
+ export declare const tips: string;
10
+ export declare const reference: {
11
+ filingTypes: Record<string, string>;
12
+ issueCodes: Record<string, string>;
13
+ docs: {
14
+ "LDA API": string;
15
+ "LDA Search": string;
16
+ "Lobbying Disclosure Act": string;
17
+ };
18
+ };
19
+ export declare const tools: Tool<any, any>[];
20
+ export { clearCache } from "../sdk/senate-lobbying.js";
21
+ //# sourceMappingURL=senate-lobbying.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"senate-lobbying.d.ts","sourceRoot":"","sources":["../../src/modules/senate-lobbying.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAGpC,eAAO,MAAM,IAAI,oBAAoB,CAAC;AACtC,eAAO,MAAM,WAAW,gCAAgC,CAAC;AACzD,eAAO,MAAM,WAAW,0JAAqJ,CAAC;AAC9K,eAAO,MAAM,QAAQ,sUAA4T,CAAC;AAClV,eAAO,MAAM,IAAI,QAM+E,CAAC;AAEjG,eAAO,MAAM,SAAS;;;;;;;;CAQrB,CAAC;AAuBF,eAAO,MAAM,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAsJjC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}