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,203 @@
1
+ /**
2
+ * BLS SDK — typed API client for the Bureau of Labor Statistics Public Data API v2.
3
+ *
4
+ * Standalone — no MCP server required. Usage:
5
+ *
6
+ * import { getSeriesData, searchPopularSeries } from "us-gov-open-data/sdk/bls";
7
+ *
8
+ * Optional BLS_API_KEY env var — get one at https://www.bls.gov/developers/home.htm
9
+ * Without key: 25 req/day, 10yr max range, no calculations.
10
+ * With key: 500 req/day, 20yr range, calculations enabled.
11
+ */
12
+ import { createClient } from "../client.js";
13
+ // ─── Client ──────────────────────────────────────────────────────────
14
+ const api = createClient({
15
+ baseUrl: "https://api.bls.gov/publicAPI/v2",
16
+ name: "bls",
17
+ auth: {
18
+ type: "body",
19
+ key: "registrationkey",
20
+ envVar: "BLS_API_KEY",
21
+ extraParams: { calculations: "true", annualaverage: "true" },
22
+ },
23
+ rateLimit: { perSecond: 2, burst: 5 },
24
+ cacheTtlMs: 60 * 60 * 1000, // 1 hour — BLS data updates monthly
25
+ checkError: (data) => {
26
+ const d = data;
27
+ return d?.status === "REQUEST_NOT_PROCESSED" ? (d.message?.join("; ") ?? "Error") : null;
28
+ },
29
+ });
30
+ // ─── Reference data ──────────────────────────────────────────────────
31
+ export const seriesPrefixes = {
32
+ CES: "Current Employment Statistics (establishment survey — jobs by industry)",
33
+ LNS: "Labor Force Statistics, seasonally adjusted (household survey)",
34
+ LNU: "Labor Force Statistics, not seasonally adjusted",
35
+ CU: "Consumer Price Index (CPI-U, urban consumers)",
36
+ CW: "Consumer Price Index (CPI-W, wage earners)",
37
+ WP: "Producer Price Index (PPI)",
38
+ OE: "Occupational Employment and Wages (OES)",
39
+ JT: "Job Openings and Labor Turnover Survey (JOLTS)",
40
+ LA: "Local Area Unemployment Statistics (LAUS)",
41
+ SM: "State and Metro Area Employment (CES)",
42
+ EN: "Quarterly Census of Employment and Wages (QCEW)",
43
+ PR: "Productivity and Costs",
44
+ EI: "Employment Cost Index (ECI)",
45
+ AP: "Average Price Data",
46
+ };
47
+ export const popularSeries = [
48
+ // Employment
49
+ { id: "CES0000000001", name: "Total nonfarm employment (thousands)", category: "employment" },
50
+ { id: "CES0500000001", name: "Total private employment (thousands)", category: "employment" },
51
+ { id: "CES1000000001", name: "Mining and logging", category: "employment" },
52
+ { id: "CES2000000001", name: "Construction", category: "employment" },
53
+ { id: "CES3000000001", name: "Manufacturing", category: "employment" },
54
+ { id: "CES4000000001", name: "Trade, transportation, utilities", category: "employment" },
55
+ { id: "CES5000000001", name: "Information", category: "employment" },
56
+ { id: "CES5500000001", name: "Financial activities", category: "employment" },
57
+ { id: "CES6000000001", name: "Professional and business services", category: "employment" },
58
+ { id: "CES6500000001", name: "Education and health services", category: "employment" },
59
+ { id: "CES7000000001", name: "Leisure and hospitality", category: "employment" },
60
+ { id: "CES8000000001", name: "Other services", category: "employment" },
61
+ { id: "CES9000000001", name: "Government", category: "employment" },
62
+ // Unemployment
63
+ { id: "LNS14000000", name: "Unemployment rate (seasonally adjusted)", category: "unemployment" },
64
+ { id: "LNS14000003", name: "Unemployment rate - White", category: "unemployment" },
65
+ { id: "LNS14000006", name: "Unemployment rate - Black/African American", category: "unemployment" },
66
+ { id: "LNS14000009", name: "Unemployment rate - Hispanic/Latino", category: "unemployment" },
67
+ { id: "LNS11300000", name: "Labor force participation rate", category: "unemployment" },
68
+ { id: "LNS12300000", name: "Employment-population ratio", category: "unemployment" },
69
+ { id: "LNS13023621", name: "U-6 (broader unemployment measure)", category: "unemployment" },
70
+ // Wages
71
+ { id: "CES0500000003", name: "Average hourly earnings, total private", category: "wages" },
72
+ { id: "CES0500000011", name: "Average weekly earnings, total private", category: "wages" },
73
+ { id: "CES0500000008", name: "Average hourly earnings, production workers", category: "wages" },
74
+ { id: "CES3000000003", name: "Average hourly earnings, manufacturing", category: "wages" },
75
+ { id: "CES6562000003", name: "Average hourly earnings, healthcare", category: "wages" },
76
+ // CPI
77
+ { id: "CUUR0000SA0", name: "CPI-U All Items", category: "cpi" },
78
+ { id: "CUUR0000SA0L1E", name: "CPI-U All items less food and energy (core)", category: "cpi" },
79
+ { id: "CUUR0000SAF1", name: "CPI-U Food", category: "cpi_components" },
80
+ { id: "CUUR0000SAH1", name: "CPI-U Shelter/Housing", category: "cpi_components" },
81
+ { id: "CUUR0000SETB01", name: "CPI-U Gasoline", category: "cpi_components" },
82
+ { id: "CUUR0000SAM", name: "CPI-U Medical Care", category: "cpi_components" },
83
+ { id: "CUUR0000SAE", name: "CPI-U Education & Communication", category: "cpi_components" },
84
+ { id: "CUUR0000SAT", name: "CPI-U Transportation", category: "cpi_components" },
85
+ { id: "CUUR0000SAR", name: "CPI-U Recreation", category: "cpi_components" },
86
+ { id: "CUUR0000SAA", name: "CPI-U Apparel", category: "cpi_components" },
87
+ // PPI
88
+ { id: "WPUFD4", name: "PPI - Finished goods", category: "ppi" },
89
+ { id: "WPUFD49104", name: "PPI - Finished consumer foods", category: "ppi" },
90
+ { id: "WPSSOP3000", name: "PPI - Total services", category: "ppi" },
91
+ // Productivity
92
+ { id: "PRS85006092", name: "Nonfarm business labor productivity", category: "productivity" },
93
+ { id: "PRS85006112", name: "Nonfarm business unit labor costs", category: "productivity" },
94
+ // JOLTS
95
+ { id: "JTS000000000000000JOR", name: "Job openings rate", category: "jolts" },
96
+ { id: "JTS000000000000000HIR", name: "Hires rate", category: "jolts" },
97
+ { id: "JTS000000000000000TSR", name: "Total separations rate", category: "jolts" },
98
+ { id: "JTS000000000000000QUR", name: "Quits rate", category: "jolts" },
99
+ { id: "JTS000000000000000LDR", name: "Layoffs and discharges rate", category: "jolts" },
100
+ ];
101
+ /** State FIPS codes for constructing LAUS series IDs. */
102
+ export const stateFips = {
103
+ AL: "01", AK: "02", AZ: "04", AR: "05", CA: "06", CO: "08", CT: "09",
104
+ DE: "10", DC: "11", FL: "12", GA: "13", HI: "15", ID: "16", IL: "17",
105
+ IN: "18", IA: "19", KS: "20", KY: "21", LA: "22", ME: "23", MD: "24",
106
+ MA: "25", MI: "26", MN: "27", MS: "28", MO: "29", MT: "30", NE: "31",
107
+ NV: "32", NH: "33", NJ: "34", NM: "35", NY: "36", NC: "37", ND: "38",
108
+ OH: "39", OK: "40", OR: "41", PA: "42", RI: "44", SC: "45", SD: "46",
109
+ TN: "47", TX: "48", UT: "49", VT: "50", VA: "51", WA: "53", WV: "54",
110
+ WI: "55", WY: "56", PR: "72", VI: "78", GU: "66", AS: "60", MP: "69",
111
+ };
112
+ // ─── Public API ──────────────────────────────────────────────────────
113
+ /** Fetch time series data from BLS. Posts to /timeseries/data/ with series IDs. */
114
+ export async function getSeriesData(seriesIds, opts = {}) {
115
+ const body = {
116
+ seriesid: seriesIds,
117
+ };
118
+ if (opts.startYear)
119
+ body.startyear = String(opts.startYear);
120
+ if (opts.endYear)
121
+ body.endyear = String(opts.endYear);
122
+ return api.post("/timeseries/data/", body);
123
+ }
124
+ /** Local lookup — search popular series by topic. No API call. */
125
+ export function searchPopularSeries(topic) {
126
+ const t = topic.toLowerCase();
127
+ return popularSeries.filter(s => s.category === t);
128
+ }
129
+ /** Get state employment series IDs constructed from FIPS codes. */
130
+ export function getStateEmploymentSeries(stateCode) {
131
+ const fips = stateFips[stateCode.toUpperCase()];
132
+ if (!fips)
133
+ return null;
134
+ const st = stateCode.toUpperCase();
135
+ return [
136
+ { id: `LASST${fips}0000000000003`, name: `${st} unemployment rate`, category: "state_employment" },
137
+ { id: `LASST${fips}0000000000005`, name: `${st} employment`, category: "state_employment" },
138
+ { id: `LASST${fips}0000000000006`, name: `${st} labor force`, category: "state_employment" },
139
+ { id: `SMS${fips}000000000000001`, name: `${st} total nonfarm employment`, category: "state_employment" },
140
+ ];
141
+ }
142
+ /** Get available topic categories. */
143
+ export function getAvailableTopics() {
144
+ const cats = new Set(popularSeries.map(s => s.category));
145
+ return [...cats, "state_employment"];
146
+ }
147
+ // ─── CPI component series IDs + labels (used by cpi_breakdown tool) ──
148
+ export const cpiComponents = [
149
+ "CUUR0000SA0", // All Items
150
+ "CUUR0000SAF1", // Food
151
+ "CUUR0000SAH1", // Shelter
152
+ "CUUR0000SETB01", // Gasoline
153
+ "CUUR0000SAM", // Medical Care
154
+ "CUUR0000SAE", // Education & Communication
155
+ "CUUR0000SAT", // Transportation
156
+ "CUUR0000SAR", // Recreation
157
+ "CUUR0000SAA", // Apparel
158
+ ];
159
+ export const cpiLabels = {
160
+ "CUUR0000SA0": "All Items",
161
+ "CUUR0000SAF1": "Food",
162
+ "CUUR0000SAH1": "Shelter/Housing",
163
+ "CUUR0000SETB01": "Gasoline",
164
+ "CUUR0000SAM": "Medical Care",
165
+ "CUUR0000SAE": "Education & Communication",
166
+ "CUUR0000SAT": "Transportation",
167
+ "CUUR0000SAR": "Recreation",
168
+ "CUUR0000SAA": "Apparel",
169
+ };
170
+ // ─── Employment by industry series IDs + labels ──────────────────────
171
+ export const industryComponents = [
172
+ "CES0000000001", // Total nonfarm
173
+ "CES1000000001", // Mining & logging
174
+ "CES2000000001", // Construction
175
+ "CES3000000001", // Manufacturing
176
+ "CES4000000001", // Trade, transportation, utilities
177
+ "CES5000000001", // Information
178
+ "CES5500000001", // Financial activities
179
+ "CES6000000001", // Professional & business services
180
+ "CES6500000001", // Education & health
181
+ "CES7000000001", // Leisure & hospitality
182
+ "CES8000000001", // Other services
183
+ "CES9000000001", // Government
184
+ ];
185
+ export const industryLabels = {
186
+ "CES0000000001": "Total Nonfarm",
187
+ "CES1000000001": "Mining & Logging",
188
+ "CES2000000001": "Construction",
189
+ "CES3000000001": "Manufacturing",
190
+ "CES4000000001": "Trade/Transport/Utilities",
191
+ "CES5000000001": "Information",
192
+ "CES5500000001": "Financial Activities",
193
+ "CES6000000001": "Professional & Business Services",
194
+ "CES6500000001": "Education & Health",
195
+ "CES7000000001": "Leisure & Hospitality",
196
+ "CES8000000001": "Other Services",
197
+ "CES9000000001": "Government",
198
+ };
199
+ /** Clear cached responses. */
200
+ export function clearCache() {
201
+ api.clearCache();
202
+ }
203
+ //# sourceMappingURL=bls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bls.js","sourceRoot":"","sources":["../../src/sdk/bls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * BTS SDK — typed API client for Bureau of Transportation Statistics data.
3
+ *
4
+ * Standalone — no MCP server required. Usage:
5
+ *
6
+ * import { getTransportStats, getBorderCrossings } from "us-gov-open-data/sdk/bts";
7
+ *
8
+ * const stats = await getTransportStats({ limit: 12 });
9
+ * const border = await getBorderCrossings({ state: "Texas", measure: "Trucks" });
10
+ *
11
+ * No API key required (uses Socrata SODA API at data.bts.gov).
12
+ * Docs: https://data.bts.gov/
13
+ */
14
+ export interface TransportStatsRecord {
15
+ index?: string;
16
+ date?: string;
17
+ u_s_airline_traffic_total_non_seasonally_adjusted?: string;
18
+ u_s_airline_traffic_domestic_non_seasonally_adjusted?: string;
19
+ u_s_airline_traffic_international_non_seasonally_adjusted?: string;
20
+ u_s_marketing_air_carriers_on_time_performance_percent?: string;
21
+ u_s_air_carrier_cargo_millions_of_revenue_ton_miles_domestic?: string;
22
+ u_s_air_carrier_cargo_millions_of_revenue_ton_miles_international?: string;
23
+ system_use_transit_ridership?: string;
24
+ system_use_highway_vehicle?: string;
25
+ system_use_freight_rail?: string;
26
+ passenger_rail_passengers?: string;
27
+ passenger_rail_passenger_miles?: string;
28
+ amtrak_on_time_performance?: string;
29
+ safety_general_aviation?: string;
30
+ air_safety_air_carrier_fatalities?: string;
31
+ rail_fatalities?: string;
32
+ transportation_services_index_freight?: string;
33
+ transportation_services_index_passenger?: string;
34
+ transportation_services_index_combined?: string;
35
+ u_s_canada_incoming_person_crossings?: string;
36
+ u_s_canada_incoming_truck_crossings?: string;
37
+ u_s_mexico_incoming_person_crossings?: string;
38
+ u_s_mexico_incoming_truck_crossings?: string;
39
+ auto_sales?: string;
40
+ auto_sales_saar_millions?: string;
41
+ light_truck_sales?: string;
42
+ heavy_truck_sales?: string;
43
+ highway_fuel_prices_regular?: string;
44
+ truck_tonnage_index?: string;
45
+ u_s_waterway_tonnage?: string;
46
+ general_economic_indicators?: string;
47
+ transportation_economic?: string;
48
+ [key: string]: unknown;
49
+ }
50
+ export interface BorderCrossingRecord {
51
+ port_name?: string;
52
+ state?: string;
53
+ port_code?: string;
54
+ border?: string;
55
+ date?: string;
56
+ measure?: string;
57
+ value?: string;
58
+ latitude?: string;
59
+ longitude?: string;
60
+ [key: string]: unknown;
61
+ }
62
+ /** Key fields in the Monthly Transportation Statistics dataset. */
63
+ export declare const TRANSPORT_FIELDS: Record<string, string>;
64
+ /** Border crossing measures. */
65
+ export declare const BORDER_MEASURES: Record<string, string>;
66
+ /** Socrata dataset IDs. */
67
+ export declare const DATASETS: Record<string, {
68
+ id: string;
69
+ description: string;
70
+ }>;
71
+ /**
72
+ * Get Monthly Transportation Statistics (50+ time series in one dataset).
73
+ * Covers airline traffic, on-time %, transit ridership, rail freight, truck tonnage,
74
+ * fuel prices, vehicle sales, safety fatalities, Transportation Services Index,
75
+ * and border crossing summaries.
76
+ *
77
+ * Example:
78
+ * const data = await getTransportStats({ limit: 24 }); // latest 2 years (monthly)
79
+ * const data = await getTransportStats({ startDate: "2020-01-01", endDate: "2023-12-31" });
80
+ */
81
+ export declare function getTransportStats(opts?: {
82
+ startDate?: string;
83
+ endDate?: string;
84
+ limit?: number;
85
+ offset?: number;
86
+ order?: string;
87
+ where?: string;
88
+ }): Promise<TransportStatsRecord[]>;
89
+ /**
90
+ * Get border crossing data (vehicles, passengers, containers at U.S. ports of entry).
91
+ *
92
+ * Example:
93
+ * const data = await getBorderCrossings({ state: "Texas", measure: "Trucks" });
94
+ * const data = await getBorderCrossings({ border: "US-Mexico Border" });
95
+ */
96
+ export declare function getBorderCrossings(opts?: {
97
+ state?: string;
98
+ border?: string;
99
+ portName?: string;
100
+ measure?: string;
101
+ limit?: number;
102
+ offset?: number;
103
+ order?: string;
104
+ where?: string;
105
+ }): Promise<BorderCrossingRecord[]>;
106
+ /** Clear cached responses. */
107
+ export declare function clearCache(): void;
108
+ //# sourceMappingURL=bts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bts.d.ts","sourceRoot":"","sources":["../../src/sdk/bts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * BTS SDK — typed API client for Bureau of Transportation Statistics data.
3
+ *
4
+ * Standalone — no MCP server required. Usage:
5
+ *
6
+ * import { getTransportStats, getBorderCrossings } from "us-gov-open-data/sdk/bts";
7
+ *
8
+ * const stats = await getTransportStats({ limit: 12 });
9
+ * const border = await getBorderCrossings({ state: "Texas", measure: "Trucks" });
10
+ *
11
+ * No API key required (uses Socrata SODA API at data.bts.gov).
12
+ * Docs: https://data.bts.gov/
13
+ */
14
+ import { createClient } from "../client.js";
15
+ // ─── Client ──────────────────────────────────────────────────────────
16
+ const api = createClient({
17
+ baseUrl: "https://data.bts.gov/resource",
18
+ name: "bts",
19
+ rateLimit: { perSecond: 5, burst: 10 },
20
+ cacheTtlMs: 60 * 60 * 1000, // 1 hour
21
+ });
22
+ // ─── Reference Data ──────────────────────────────────────────────────
23
+ /** Key fields in the Monthly Transportation Statistics dataset. */
24
+ export const TRANSPORT_FIELDS = {
25
+ u_s_airline_traffic_total_non_seasonally_adjusted: "U.S. airline passenger traffic (total, not SA)",
26
+ u_s_marketing_air_carriers_on_time_performance_percent: "Airline on-time performance (%)",
27
+ system_use_transit_ridership: "Transit ridership",
28
+ transportation_services_index_freight: "Transportation Services Index — Freight",
29
+ transportation_services_index_passenger: "Transportation Services Index — Passenger",
30
+ transportation_services_index_combined: "Transportation Services Index — Combined",
31
+ truck_tonnage_index: "Truck Tonnage Index",
32
+ amtrak_on_time_performance: "Amtrak on-time performance",
33
+ highway_fuel_prices_regular: "Regular gasoline price ($/gallon)",
34
+ auto_sales_saar_millions: "Auto sales (SAAR, millions)",
35
+ rail_fatalities: "Rail fatalities",
36
+ air_safety_air_carrier_fatalities: "Air carrier fatalities",
37
+ };
38
+ /** Border crossing measures. */
39
+ export const BORDER_MEASURES = {
40
+ Trucks: "Commercial trucks",
41
+ "Personal Vehicles": "Personal vehicles (cars)",
42
+ Pedestrians: "Foot traffic",
43
+ "Train Passengers": "Rail passengers",
44
+ "Rail Containers Loaded": "Rail freight containers (loaded)",
45
+ "Rail Containers Empty": "Rail freight containers (empty)",
46
+ Buses: "Bus crossings",
47
+ };
48
+ /** Socrata dataset IDs. */
49
+ export const DATASETS = {
50
+ monthly_stats: {
51
+ id: "crem-w557",
52
+ description: "Monthly Transportation Statistics: 50+ indicators on airlines, transit, rail, safety, fuel, vehicle sales",
53
+ },
54
+ border_crossings: {
55
+ id: "keg4-3bc2",
56
+ description: "Border crossing data: vehicles, passengers, containers at U.S. ports of entry (monthly)",
57
+ },
58
+ };
59
+ // ─── Public API ──────────────────────────────────────────────────────
60
+ /**
61
+ * Get Monthly Transportation Statistics (50+ time series in one dataset).
62
+ * Covers airline traffic, on-time %, transit ridership, rail freight, truck tonnage,
63
+ * fuel prices, vehicle sales, safety fatalities, Transportation Services Index,
64
+ * and border crossing summaries.
65
+ *
66
+ * Example:
67
+ * const data = await getTransportStats({ limit: 24 }); // latest 2 years (monthly)
68
+ * const data = await getTransportStats({ startDate: "2020-01-01", endDate: "2023-12-31" });
69
+ */
70
+ export async function getTransportStats(opts) {
71
+ const params = {
72
+ $limit: opts?.limit ?? 24,
73
+ $offset: opts?.offset,
74
+ $order: opts?.order ?? "date DESC",
75
+ };
76
+ const wheres = [];
77
+ if (opts?.startDate)
78
+ wheres.push(`date >= '${opts.startDate}'`);
79
+ if (opts?.endDate)
80
+ wheres.push(`date <= '${opts.endDate}'`);
81
+ // Filter out empty placeholder rows
82
+ wheres.push("general_economic_indicators IS NOT NULL");
83
+ if (opts?.where)
84
+ wheres.push(opts.where);
85
+ if (wheres.length)
86
+ params.$where = wheres.join(" AND ");
87
+ return api.get(`/${DATASETS.monthly_stats.id}.json`, params);
88
+ }
89
+ /**
90
+ * Get border crossing data (vehicles, passengers, containers at U.S. ports of entry).
91
+ *
92
+ * Example:
93
+ * const data = await getBorderCrossings({ state: "Texas", measure: "Trucks" });
94
+ * const data = await getBorderCrossings({ border: "US-Mexico Border" });
95
+ */
96
+ export async function getBorderCrossings(opts) {
97
+ const params = {
98
+ $limit: opts?.limit ?? 20,
99
+ $offset: opts?.offset,
100
+ $order: opts?.order ?? "date DESC",
101
+ };
102
+ const wheres = [];
103
+ if (opts?.state)
104
+ wheres.push(`state='${opts.state}'`);
105
+ if (opts?.border)
106
+ wheres.push(`border='${opts.border}'`);
107
+ if (opts?.portName)
108
+ wheres.push(`port_name='${opts.portName}'`);
109
+ if (opts?.measure)
110
+ wheres.push(`measure='${opts.measure}'`);
111
+ if (opts?.where)
112
+ wheres.push(opts.where);
113
+ if (wheres.length)
114
+ params.$where = wheres.join(" AND ");
115
+ return api.get(`/${DATASETS.border_crossings.id}.json`, params);
116
+ }
117
+ /** Clear cached responses. */
118
+ export function clearCache() {
119
+ api.clearCache();
120
+ }
121
+ //# sourceMappingURL=bts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bts.js","sourceRoot":"","sources":["../../src/sdk/bts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * CDC Open Data SDK — health statistics from data.cdc.gov (Socrata SODA API).
3
+ *
4
+ * API docs: https://dev.socrata.com/foundry/data.cdc.gov/
5
+ * No auth required (optional app token for higher rate limits).
6
+ * Rate limit: 1,000 req/hour without token, 20x with token.
7
+ *
8
+ * Usage:
9
+ * import { queryDataset, getLeadingCausesOfDeath } from "us-gov-open-data-mcp/sdk/cdc";
10
+ * const data = await getLeadingCausesOfDeath({ state: "New York", year: 2021 });
11
+ */
12
+ export declare const DATASETS: Record<string, {
13
+ id: string;
14
+ name: string;
15
+ description: string;
16
+ }>;
17
+ export interface CdcRecord {
18
+ [key: string]: string | number | null;
19
+ }
20
+ /** Generic Socrata SODA query against any CDC dataset. */
21
+ export declare function queryDataset(datasetId: string, opts?: {
22
+ where?: string;
23
+ select?: string;
24
+ group?: string;
25
+ order?: string;
26
+ limit?: number;
27
+ }): Promise<CdcRecord[]>;
28
+ /** Leading causes of death by state/year. */
29
+ export declare function getLeadingCausesOfDeath(opts?: {
30
+ state?: string;
31
+ year?: number;
32
+ limit?: number;
33
+ }): Promise<CdcRecord[]>;
34
+ /** Life expectancy at birth by race and sex (dataset w9j2-ggv5, 1900–2018). */
35
+ export declare function getLifeExpectancy(opts?: {
36
+ year?: number;
37
+ race?: string;
38
+ sex?: string;
39
+ limit?: number;
40
+ }): Promise<CdcRecord[]>;
41
+ /** Provisional mortality rates by cause, sex, and state (dataset 489q-934x, quarterly, 2020–present). */
42
+ export declare function getMortalityRates(opts?: {
43
+ quarter?: string;
44
+ cause?: string;
45
+ rateType?: string;
46
+ limit?: number;
47
+ }): Promise<CdcRecord[]>;
48
+ /** PLACES county-level health indicators (obesity, diabetes, smoking, depression, etc.). */
49
+ export declare function getPlacesHealth(opts?: {
50
+ state?: string;
51
+ measure?: string;
52
+ limit?: number;
53
+ }): Promise<CdcRecord[]>;
54
+ /** PLACES city-level health indicators (obesity, diabetes, smoking, depression, etc.). */
55
+ export declare function getPlacesCityHealth(opts?: {
56
+ state?: string;
57
+ measure?: string;
58
+ city?: string;
59
+ limit?: number;
60
+ }): Promise<CdcRecord[]>;
61
+ /** COVID-19 weekly cases and deaths by state. */
62
+ export declare function getCovidData(opts?: {
63
+ state?: string;
64
+ limit?: number;
65
+ }): Promise<CdcRecord[]>;
66
+ /** Weekly provisional death counts by state — COVID, pneumonia, influenza, total. Updated weekly. */
67
+ export declare function getWeeklyDeaths(opts?: {
68
+ state?: string;
69
+ year?: number;
70
+ limit?: number;
71
+ }): Promise<CdcRecord[]>;
72
+ /** Disability prevalence by state and type from BRFSS. */
73
+ export declare function getDisabilityData(opts?: {
74
+ state?: string;
75
+ disabilityType?: string;
76
+ limit?: number;
77
+ }): Promise<CdcRecord[]>;
78
+ export declare function clearCache(): void;
79
+ /** Drug overdose/poisoning mortality by state (1999–2016). */
80
+ export declare function getDrugOverdoseData(opts?: {
81
+ state?: string;
82
+ year?: number;
83
+ sex?: string;
84
+ limit?: number;
85
+ }): Promise<CdcRecord[]>;
86
+ /** Nutrition, physical activity, and obesity by state from BRFSS. */
87
+ export declare function getNutritionObesityData(opts?: {
88
+ state?: string;
89
+ topic?: string;
90
+ limit?: number;
91
+ }): Promise<CdcRecord[]>;
92
+ /** Historical age-adjusted death rates for major causes since 1900. */
93
+ export declare function getHistoricalDeathRates(opts?: {
94
+ cause?: string;
95
+ startYear?: number;
96
+ endYear?: number;
97
+ limit?: number;
98
+ }): Promise<CdcRecord[]>;
99
+ /** Quarterly provisional birth indicators (birth rates, teen births, preterm, cesarean). */
100
+ export declare function getBirthIndicators(opts?: {
101
+ topic?: string;
102
+ raceEthnicity?: string;
103
+ limit?: number;
104
+ }): Promise<CdcRecord[]>;
105
+ //# sourceMappingURL=cdc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdc.d.ts","sourceRoot":"","sources":["../../src/sdk/cdc.ts"],"names":[],"mappings":"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"}