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,114 @@
1
+ /**
2
+ * SEC EDGAR SDK — typed API client for SEC EDGAR data.
3
+ *
4
+ * Standalone — no MCP server required. Usage:
5
+ *
6
+ * import { getCompanyByCik, getCompanyFacts, searchEdgar } from "us-gov-open-data/sdk/sec";
7
+ *
8
+ * No API key required. Must include User-Agent with contact info.
9
+ * Rate limit: 10 requests/second.
10
+ */
11
+ export interface SecCompany {
12
+ cik: string;
13
+ name: string;
14
+ tickers: string[];
15
+ exchanges: string[];
16
+ sic: string;
17
+ sicDescription: string;
18
+ stateOfIncorporation: string;
19
+ entityType: string;
20
+ category: string;
21
+ fiscalYearEnd: string;
22
+ formerNames: {
23
+ name: string;
24
+ from: string;
25
+ to: string;
26
+ }[];
27
+ filings: {
28
+ recent: {
29
+ form: string[];
30
+ filingDate: string[];
31
+ primaryDocDescription: string[];
32
+ accessionNumber: string[];
33
+ };
34
+ };
35
+ }
36
+ export interface SecFiling {
37
+ form: string;
38
+ date: string;
39
+ description: string;
40
+ accessionNumber: string;
41
+ }
42
+ export interface SecCompanyFacts {
43
+ cik: number;
44
+ entityName: string;
45
+ facts: {
46
+ "us-gaap"?: Record<string, SecXbrlConcept>;
47
+ [namespace: string]: Record<string, SecXbrlConcept> | undefined;
48
+ };
49
+ }
50
+ export interface SecXbrlConcept {
51
+ label?: string;
52
+ description?: string;
53
+ units: Record<string, SecXbrlObservation[]>;
54
+ }
55
+ export interface SecXbrlObservation {
56
+ start?: string;
57
+ end?: string;
58
+ val: number;
59
+ accn: string;
60
+ fy: number;
61
+ fp: string;
62
+ form: string;
63
+ filed: string;
64
+ frame?: string;
65
+ }
66
+ export interface SecSearchResult {
67
+ total: number;
68
+ hits: {
69
+ names: string[];
70
+ form: string;
71
+ date: string;
72
+ description: string;
73
+ }[];
74
+ }
75
+ export declare const xbrlConcepts: Record<string, string>;
76
+ /** Look up a company by CIK number. */
77
+ export declare function getCompanyByCik(cik: string): Promise<SecCompany>;
78
+ /** Get company financial facts (XBRL data). */
79
+ export declare function getCompanyFacts(cik: string): Promise<SecCompanyFacts>;
80
+ /** Full-text search across EDGAR filings. */
81
+ export declare function searchEdgar(query: string, opts?: {
82
+ forms?: string;
83
+ startDate?: string;
84
+ endDate?: string;
85
+ }): Promise<SecSearchResult>;
86
+ /**
87
+ * Extract a specific XBRL concept from company facts.
88
+ * Traverses facts["us-gaap"][concept].units.USD
89
+ */
90
+ export declare function extractConceptData(facts: SecCompanyFacts, concept: string): {
91
+ concept: string;
92
+ label: string;
93
+ description: string;
94
+ unit: string;
95
+ annual: SecXbrlObservation[];
96
+ quarterly: SecXbrlObservation[];
97
+ } | null;
98
+ /**
99
+ * Get a summary of key financial metrics from company facts.
100
+ */
101
+ export declare function summarizeFinancials(facts: SecCompanyFacts): {
102
+ entityName: string;
103
+ totalMetrics: number;
104
+ keyMetrics: {
105
+ concept: string;
106
+ label: string;
107
+ value: number | null;
108
+ unit: string | null;
109
+ period: string | null;
110
+ }[];
111
+ };
112
+ /** Clear cached responses from both clients. */
113
+ export declare function clearCache(): void;
114
+ //# sourceMappingURL=sec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sec.d.ts","sourceRoot":"","sources":["../../src/sdk/sec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * SEC EDGAR SDK — typed API client for SEC EDGAR data.
3
+ *
4
+ * Standalone — no MCP server required. Usage:
5
+ *
6
+ * import { getCompanyByCik, getCompanyFacts, searchEdgar } from "us-gov-open-data/sdk/sec";
7
+ *
8
+ * No API key required. Must include User-Agent with contact info.
9
+ * Rate limit: 10 requests/second.
10
+ */
11
+ import { createClient } from "../client.js";
12
+ // ─── Clients ─────────────────────────────────────────────────────────
13
+ const USER_AGENT = `us-gov-open-data-mcp/2.0 (${process.env.SEC_CONTACT_EMAIL || "contact@example.com"})`;
14
+ const dataApi = createClient({
15
+ baseUrl: "https://data.sec.gov",
16
+ name: "sec-data",
17
+ defaultHeaders: { "User-Agent": USER_AGENT, Accept: "application/json" },
18
+ rateLimit: { perSecond: 10, burst: 10 },
19
+ cacheTtlMs: 30 * 60 * 1000, // 30 min
20
+ });
21
+ const searchApi = createClient({
22
+ baseUrl: "https://efts.sec.gov/LATEST",
23
+ name: "sec-search",
24
+ defaultHeaders: { "User-Agent": USER_AGENT, Accept: "application/json" },
25
+ rateLimit: { perSecond: 10, burst: 10 },
26
+ cacheTtlMs: 30 * 60 * 1000,
27
+ });
28
+ // ─── Reference data ──────────────────────────────────────────────────
29
+ export const xbrlConcepts = {
30
+ Revenues: "Total revenue",
31
+ RevenueFromContractWithCustomerExcludingAssessedTax: "Revenue from contracts (ASC 606)",
32
+ NetIncomeLoss: "Net income (loss)",
33
+ OperatingIncomeLoss: "Operating income",
34
+ GrossProfit: "Gross profit",
35
+ Assets: "Total assets",
36
+ Liabilities: "Total liabilities",
37
+ StockholdersEquity: "Total stockholders equity",
38
+ CashAndCashEquivalentsAtCarryingValue: "Cash and cash equivalents",
39
+ LongTermDebt: "Long-term debt",
40
+ EarningsPerShareBasic: "Basic earnings per share",
41
+ EarningsPerShareDiluted: "Diluted earnings per share",
42
+ CommonStockSharesOutstanding: "Common shares outstanding",
43
+ Goodwill: "Goodwill",
44
+ ResearchAndDevelopmentExpense: "R&D expense",
45
+ SellingGeneralAndAdministrativeExpense: "SG&A expense",
46
+ InterestExpense: "Interest expense",
47
+ IncomeTaxExpenseBenefit: "Income tax expense",
48
+ };
49
+ // ─── Helpers ─────────────────────────────────────────────────────────
50
+ function padCik(cik) {
51
+ return cik.padStart(10, "0");
52
+ }
53
+ // ─── Public API ──────────────────────────────────────────────────────
54
+ /** Look up a company by CIK number. */
55
+ export async function getCompanyByCik(cik) {
56
+ return dataApi.get(`/submissions/CIK${padCik(cik)}.json`);
57
+ }
58
+ /** Get company financial facts (XBRL data). */
59
+ export async function getCompanyFacts(cik) {
60
+ return dataApi.get(`/api/xbrl/companyfacts/CIK${padCik(cik)}.json`);
61
+ }
62
+ /** Full-text search across EDGAR filings. */
63
+ export async function searchEdgar(query, opts = {}) {
64
+ const params = {
65
+ q: query,
66
+ forms: opts.forms,
67
+ startdt: opts.startDate,
68
+ enddt: opts.endDate,
69
+ };
70
+ const raw = await searchApi.get("/search-index", params);
71
+ const hits = raw.hits;
72
+ const total = hits?.total?.value || 0;
73
+ const rawHits = hits?.hits || [];
74
+ return {
75
+ total,
76
+ hits: rawHits.map(hit => {
77
+ const source = hit._source;
78
+ return {
79
+ names: source.display_names || [],
80
+ form: String(source.form || "?"),
81
+ date: String(source.file_date || "?"),
82
+ description: String(source.file_description || ""),
83
+ };
84
+ }),
85
+ };
86
+ }
87
+ /**
88
+ * Extract a specific XBRL concept from company facts.
89
+ * Traverses facts["us-gaap"][concept].units.USD
90
+ */
91
+ export function extractConceptData(facts, concept) {
92
+ const usgaap = facts.facts["us-gaap"];
93
+ if (!usgaap)
94
+ return null;
95
+ // Try exact match, then case-insensitive
96
+ let conceptData = usgaap[concept];
97
+ let resolvedName = concept;
98
+ if (!conceptData) {
99
+ const key = Object.keys(usgaap).find(k => k.toLowerCase() === concept.toLowerCase());
100
+ if (!key)
101
+ return null;
102
+ conceptData = usgaap[key];
103
+ resolvedName = key;
104
+ }
105
+ const unitKey = Object.keys(conceptData.units)[0];
106
+ if (!unitKey)
107
+ return null;
108
+ const allData = conceptData.units[unitKey];
109
+ return {
110
+ concept: resolvedName,
111
+ label: conceptData.label || resolvedName,
112
+ description: conceptData.description || "",
113
+ unit: unitKey,
114
+ annual: allData.filter(d => d.form === "10-K").slice(-20),
115
+ quarterly: allData.filter(d => d.form === "10-Q").slice(-8),
116
+ };
117
+ }
118
+ /**
119
+ * Get a summary of key financial metrics from company facts.
120
+ */
121
+ export function summarizeFinancials(facts) {
122
+ const usgaap = facts.facts["us-gaap"];
123
+ if (!usgaap)
124
+ return { entityName: facts.entityName, totalMetrics: 0, keyMetrics: [] };
125
+ const keyMetrics = Object.keys(xbrlConcepts)
126
+ .filter(m => usgaap[m])
127
+ .map(m => {
128
+ const concept = usgaap[m];
129
+ const unitKey = Object.keys(concept.units)[0];
130
+ const data = unitKey ? concept.units[unitKey] : [];
131
+ const latest = data[data.length - 1];
132
+ return {
133
+ concept: m,
134
+ label: xbrlConcepts[m],
135
+ value: latest ? latest.val : null,
136
+ unit: unitKey || null,
137
+ period: latest?.end || null,
138
+ };
139
+ });
140
+ return {
141
+ entityName: facts.entityName,
142
+ totalMetrics: Object.keys(usgaap).length,
143
+ keyMetrics,
144
+ };
145
+ }
146
+ /** Clear cached responses from both clients. */
147
+ export function clearCache() {
148
+ dataApi.clearCache();
149
+ searchApi.clearCache();
150
+ }
151
+ //# sourceMappingURL=sec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sec.js","sourceRoot":"","sources":["../../src/sdk/sec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Senate Lobbying Disclosure Act (LDA) SDK — lobbying filings, contributions, registrants, and clients.
3
+ *
4
+ * API docs: https://lda.gov/api/v1/ (Django REST framework, self-documenting)
5
+ * No API key required. Returns paginated JSON.
6
+ *
7
+ * Usage:
8
+ * import { searchFilings, searchContributions } from "us-gov-open-data-mcp/sdk/senate-lobbying";
9
+ * const filings = await searchFilings({ registrant_name: "Pfizer", filing_year: 2025 });
10
+ */
11
+ export interface LdaPaginated<T> {
12
+ count: number;
13
+ next: string | null;
14
+ previous: string | null;
15
+ results: T[];
16
+ }
17
+ export interface LdaFiling {
18
+ filing_uuid: string;
19
+ filing_type: string;
20
+ filing_type_display: string;
21
+ filing_year: number;
22
+ filing_period_display: string;
23
+ filing_document_url: string;
24
+ income: string | null;
25
+ expenses: string | null;
26
+ registrant: {
27
+ id: number;
28
+ name: string;
29
+ description: string | null;
30
+ } | null;
31
+ client: {
32
+ id: number;
33
+ name: string;
34
+ general_description: string | null;
35
+ } | null;
36
+ lobbying_activities: LdaActivity[];
37
+ posted_by_name: string;
38
+ dt_posted: string;
39
+ [key: string]: unknown;
40
+ }
41
+ export interface LdaActivity {
42
+ general_issue_code: string;
43
+ general_issue_code_display: string;
44
+ description: string;
45
+ lobbyists: {
46
+ lobbyist_full_display_name: string | null;
47
+ }[];
48
+ }
49
+ export interface LdaContributionItem {
50
+ contribution_type: string;
51
+ contribution_type_display: string;
52
+ contributor_name: string;
53
+ payee_name: string;
54
+ honoree_name: string;
55
+ amount: string;
56
+ date: string;
57
+ }
58
+ export interface LdaContribution {
59
+ filing_uuid: string;
60
+ filing_type_display: string;
61
+ filing_year: number;
62
+ filing_period_display: string;
63
+ filer_type_display: string;
64
+ registrant: {
65
+ name: string;
66
+ } | null;
67
+ lobbyist: {
68
+ first_name: string;
69
+ last_name: string;
70
+ prefix_display: string;
71
+ } | null;
72
+ no_contributions: boolean;
73
+ contribution_items: LdaContributionItem[];
74
+ [key: string]: unknown;
75
+ }
76
+ export interface LdaRegistrant {
77
+ id: number;
78
+ name: string;
79
+ description: string | null;
80
+ address_1: string;
81
+ city: string;
82
+ state: string;
83
+ contact_name: string;
84
+ contact_telephone: string;
85
+ [key: string]: unknown;
86
+ }
87
+ export interface LdaClient {
88
+ id: number;
89
+ client_id: number;
90
+ name: string;
91
+ general_description: string | null;
92
+ state: string;
93
+ country_display: string;
94
+ [key: string]: unknown;
95
+ }
96
+ /** Filing type codes */
97
+ export declare const FILING_TYPES: Record<string, string>;
98
+ /** General issue area codes (most common) */
99
+ export declare const ISSUE_CODES: Record<string, string>;
100
+ /** Search lobbying filings — the core data showing who lobbied, for whom, on what, and how much. */
101
+ export declare function searchFilings(opts: {
102
+ filing_year?: number;
103
+ filing_type?: string;
104
+ registrant_name?: string;
105
+ client_name?: string;
106
+ issue_code?: string;
107
+ page_size?: number;
108
+ page?: number;
109
+ }): Promise<LdaPaginated<LdaFiling>>;
110
+ /** Get a specific filing by UUID — includes full lobbying activity detail. */
111
+ export declare function getFilingDetail(uuid: string): Promise<LdaFiling>;
112
+ /** Search lobbying contributions (campaign donations by lobbyists). */
113
+ export declare function searchContributions(opts: {
114
+ filing_year?: number;
115
+ registrant_name?: string;
116
+ lobbyist_name?: string;
117
+ page_size?: number;
118
+ }): Promise<LdaPaginated<LdaContribution>>;
119
+ /** Search lobbying registrants (lobbying firms and organizations). */
120
+ export declare function searchRegistrants(opts: {
121
+ registrant_name?: string;
122
+ page_size?: number;
123
+ }): Promise<LdaPaginated<LdaRegistrant>>;
124
+ /** Search lobbying clients (who hired lobbyists). */
125
+ export declare function searchClients(opts: {
126
+ client_name?: string;
127
+ page_size?: number;
128
+ }): Promise<LdaPaginated<LdaClient>>;
129
+ /** Search individual lobbyists by name. */
130
+ export declare function searchLobbyists(opts: {
131
+ lobbyist_name?: string;
132
+ registrant_name?: string;
133
+ page_size?: number;
134
+ page?: number;
135
+ }): Promise<LdaPaginated<{
136
+ id: number;
137
+ prefix?: string;
138
+ first_name?: string;
139
+ last_name?: string;
140
+ suffix?: string;
141
+ registrant?: {
142
+ name: string;
143
+ };
144
+ [key: string]: unknown;
145
+ }>>;
146
+ export declare function clearCache(): void;
147
+ //# sourceMappingURL=senate-lobbying.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"senate-lobbying.d.ts","sourceRoot":"","sources":["../../src/sdk/senate-lobbying.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Senate Lobbying Disclosure Act (LDA) SDK — lobbying filings, contributions, registrants, and clients.
3
+ *
4
+ * API docs: https://lda.gov/api/v1/ (Django REST framework, self-documenting)
5
+ * No API key required. Returns paginated JSON.
6
+ *
7
+ * Usage:
8
+ * import { searchFilings, searchContributions } from "us-gov-open-data-mcp/sdk/senate-lobbying";
9
+ * const filings = await searchFilings({ registrant_name: "Pfizer", filing_year: 2025 });
10
+ */
11
+ import { createClient } from "../client.js";
12
+ const api = createClient({
13
+ baseUrl: "https://lda.gov/api/v1",
14
+ name: "senate-lobbying",
15
+ rateLimit: { perSecond: 3, burst: 8 },
16
+ cacheTtlMs: 60 * 60 * 1000, // 1 hour
17
+ timeoutMs: 30_000,
18
+ });
19
+ // ─── Reference Data ──────────────────────────────────────────────────
20
+ /** Filing type codes */
21
+ export const FILING_TYPES = {
22
+ Q1: "1st Quarter Report",
23
+ Q2: "2nd Quarter Report",
24
+ Q3: "3rd Quarter Report",
25
+ Q4: "4th Quarter Report",
26
+ MM: "Mid-Year Report",
27
+ MY: "Year-End Report",
28
+ RN: "Registration (New)",
29
+ RA: "Registration Amendment",
30
+ RR: "Registration Renewal",
31
+ TE: "Termination",
32
+ };
33
+ /** General issue area codes (most common) */
34
+ export const ISSUE_CODES = {
35
+ HCR: "Health Issues",
36
+ MMM: "Medicare/Medicaid",
37
+ TAX: "Taxation/Internal Revenue Code",
38
+ BUD: "Budget/Appropriations",
39
+ DEF: "Defense",
40
+ ENV: "Environment/Superfund",
41
+ ENG: "Energy/Nuclear",
42
+ TRD: "Trade (Domestic/Foreign)",
43
+ FIN: "Financial Institutions/Investments/Securities",
44
+ TEC: "Science/Technology",
45
+ EDU: "Education",
46
+ IMM: "Immigration",
47
+ LBR: "Labor Issues/Antitrust/Workplace",
48
+ TRA: "Transportation",
49
+ AGR: "Agriculture",
50
+ HOM: "Housing",
51
+ CPT: "Consumer Issues/Safety/Products",
52
+ DIS: "Disaster Planning/Emergencies",
53
+ GOV: "Government Issues",
54
+ LAW: "Law Enforcement/Crime/Criminal Justice",
55
+ };
56
+ // ─── Public API ──────────────────────────────────────────────────────
57
+ /** Search lobbying filings — the core data showing who lobbied, for whom, on what, and how much. */
58
+ export async function searchFilings(opts) {
59
+ const params = {
60
+ page_size: opts.page_size || 20,
61
+ };
62
+ if (opts.filing_year)
63
+ params.filing_year = opts.filing_year;
64
+ if (opts.filing_type)
65
+ params.filing_type = opts.filing_type;
66
+ if (opts.registrant_name)
67
+ params.registrant_name = opts.registrant_name;
68
+ if (opts.client_name)
69
+ params.client_name = opts.client_name;
70
+ if (opts.issue_code)
71
+ params.filing_lobbying_activities__general_issue_code = opts.issue_code;
72
+ if (opts.page)
73
+ params.page = opts.page;
74
+ return api.get("/filings/", params);
75
+ }
76
+ /** Get a specific filing by UUID — includes full lobbying activity detail. */
77
+ export async function getFilingDetail(uuid) {
78
+ return api.get(`/filings/${uuid}/`);
79
+ }
80
+ /** Search lobbying contributions (campaign donations by lobbyists). */
81
+ export async function searchContributions(opts) {
82
+ const params = {
83
+ page_size: opts.page_size || 20,
84
+ };
85
+ if (opts.filing_year)
86
+ params.filing_year = opts.filing_year;
87
+ if (opts.registrant_name)
88
+ params.registrant_name = opts.registrant_name;
89
+ if (opts.lobbyist_name)
90
+ params.lobbyist_name = opts.lobbyist_name;
91
+ return api.get("/contributions/", params);
92
+ }
93
+ /** Search lobbying registrants (lobbying firms and organizations). */
94
+ export async function searchRegistrants(opts) {
95
+ const params = {
96
+ page_size: opts.page_size || 20,
97
+ };
98
+ if (opts.registrant_name)
99
+ params.registrant_name = opts.registrant_name;
100
+ return api.get("/registrants/", params);
101
+ }
102
+ /** Search lobbying clients (who hired lobbyists). */
103
+ export async function searchClients(opts) {
104
+ const params = {
105
+ page_size: opts.page_size || 20,
106
+ };
107
+ if (opts.client_name)
108
+ params.client_name = opts.client_name;
109
+ return api.get("/clients/", params);
110
+ }
111
+ /** Search individual lobbyists by name. */
112
+ export async function searchLobbyists(opts) {
113
+ const params = {
114
+ page_size: opts.page_size || 20,
115
+ };
116
+ if (opts.lobbyist_name)
117
+ params.lobbyist_name = opts.lobbyist_name;
118
+ if (opts.registrant_name)
119
+ params.registrant_name = opts.registrant_name;
120
+ if (opts.page)
121
+ params.page = opts.page;
122
+ return api.get("/lobbyists/", params);
123
+ }
124
+ export function clearCache() { api.clearCache(); }
125
+ //# sourceMappingURL=senate-lobbying.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"senate-lobbying.js","sourceRoot":"","sources":["../../src/sdk/senate-lobbying.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Treasury Fiscal Data SDK — typed API client for the U.S. Treasury Fiscal Data API.
3
+ *
4
+ * Standalone — no MCP server required. Usage:
5
+ *
6
+ * import { queryFiscalData, searchEndpoints, ENDPOINTS } from "us-gov-open-data/sdk/treasury";
7
+ *
8
+ * No API key required — completely open.
9
+ * Base URL: https://api.fiscaldata.treasury.gov/services/api/fiscal_service
10
+ */
11
+ export interface FiscalDataResponse {
12
+ data: Record<string, string>[];
13
+ meta: {
14
+ count: number;
15
+ labels: Record<string, string>;
16
+ dataTypes: Record<string, string>;
17
+ dataFormats: Record<string, string>;
18
+ "total-count": number;
19
+ "total-pages": number;
20
+ };
21
+ links: {
22
+ self: string;
23
+ first: string;
24
+ prev: string | null;
25
+ next: string | null;
26
+ last: string;
27
+ };
28
+ }
29
+ export interface EndpointInfo {
30
+ dataset: string;
31
+ slug: string;
32
+ dataTable: string;
33
+ endpoint: string;
34
+ description: string;
35
+ }
36
+ export interface QueryParams {
37
+ fields?: string;
38
+ filter?: string;
39
+ sort?: string;
40
+ pageNumber?: number;
41
+ pageSize?: number;
42
+ }
43
+ export declare const ENDPOINTS: EndpointInfo[];
44
+ /** List all datasets, grouped by dataset name. */
45
+ export declare function listDatasets(): Record<string, {
46
+ dataTable: string;
47
+ endpoint: string;
48
+ description: string;
49
+ slug: string;
50
+ }[]>;
51
+ /** Search endpoints by keyword (local — no API call). */
52
+ export declare function searchEndpoints(query: string): EndpointInfo[];
53
+ /** Get field metadata for an endpoint (calls API with page[size]=1). */
54
+ export declare function getEndpointFields(endpoint: string): Promise<FiscalDataResponse>;
55
+ /** Query the Treasury Fiscal Data API. */
56
+ export declare function queryFiscalData(endpoint: string, params?: QueryParams): Promise<FiscalDataResponse>;
57
+ /** Clear cached responses. */
58
+ export declare function clearCache(): void;
59
+ //# sourceMappingURL=treasury.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treasury.d.ts","sourceRoot":"","sources":["../../src/sdk/treasury.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAeH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC/B,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,eAAO,MAAM,SAAS,EAAE,YAAY,EA61CnC,CAAC;AAIF,kDAAkD;AAClD,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAY3H;AAED,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAS7D;AAED,wEAAwE;AACxE,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAOrF;AAED,0CAA0C;AAC1C,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,WAAgB,GACvB,OAAO,CAAC,kBAAkB,CAAC,CAY7B;AAED,8BAA8B;AAC9B,wBAAgB,UAAU,IAAI,IAAI,CAEjC"}