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,26 @@
1
+ /**
2
+ * CDC Open Data MCP module — health statistics, mortality, chronic disease.
3
+ */
4
+ import type { Tool, InputPrompt } from "fastmcp";
5
+ export declare const name = "cdc";
6
+ export declare const displayName = "CDC Health Data";
7
+ export declare const description = "U.S. health statistics: leading causes of death, life expectancy, mortality rates, county/city health indicators, weekly death surveillance, disability, COVID-19";
8
+ export declare const workflow = "cdc_causes_of_death for mortality, cdc_life_expectancy for longevity, cdc_places_health for county health indicators, cdc_mortality_rates for recent death rates";
9
+ export declare const tips = "States use full names ('New York') for causes of death; abbreviations ('NY') for PLACES/COVID. Life expectancy data through 2018; use cdc_mortality_rates for 2020+.";
10
+ export declare const reference: {
11
+ datasets: {
12
+ [k: string]: string;
13
+ };
14
+ docs: {
15
+ "CDC Open Data": string;
16
+ "SODA API Docs": string;
17
+ "Leading Causes of Death": string;
18
+ "Life Expectancy": string;
19
+ "PLACES County Data": string;
20
+ "PLACES City Data": string;
21
+ };
22
+ };
23
+ export declare const tools: Tool<any, any>[];
24
+ export declare const prompts: InputPrompt<any, any>[];
25
+ export { clearCache } from "../sdk/cdc.js";
26
+ //# sourceMappingURL=cdc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdc.d.ts","sourceRoot":"","sources":["../../src/modules/cdc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKjD,eAAO,MAAM,IAAI,QAAQ,CAAC;AAC1B,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAC7C,eAAO,MAAM,WAAW,sKAAsK,CAAC;AAC/L,eAAO,MAAM,QAAQ,qKAAqK,CAAC;AAC3L,eAAO,MAAM,IAAI,yKAAyK,CAAC;AAE3L,eAAO,MAAM,SAAS;;;;;;;;;;;;CAYrB,CAAC;AAIF,eAAO,MAAM,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EA+QjC,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAY1C,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,310 @@
1
+ /**
2
+ * CDC Open Data MCP module — health statistics, mortality, chronic disease.
3
+ */
4
+ import { z } from "zod";
5
+ import { getLeadingCausesOfDeath, getLifeExpectancy, getMortalityRates, getPlacesHealth, getPlacesCityHealth, getCovidData, getWeeklyDeaths, getDisabilityData, getDrugOverdoseData, getNutritionObesityData, getHistoricalDeathRates, getBirthIndicators, queryDataset, DATASETS } from "../sdk/cdc.js";
6
+ // ─── Metadata ────────────────────────────────────────────────────────
7
+ export const name = "cdc";
8
+ export const displayName = "CDC Health Data";
9
+ export const description = "U.S. health statistics: leading causes of death, life expectancy, mortality rates, county/city health indicators, weekly death surveillance, disability, COVID-19";
10
+ export const workflow = "cdc_causes_of_death for mortality, cdc_life_expectancy for longevity, cdc_places_health for county health indicators, cdc_mortality_rates for recent death rates";
11
+ export const tips = "States use full names ('New York') for causes of death; abbreviations ('NY') for PLACES/COVID. Life expectancy data through 2018; use cdc_mortality_rates for 2020+.";
12
+ export const reference = {
13
+ datasets: Object.fromEntries(Object.entries(DATASETS).map(([k, v]) => [v.id, `${v.name}: ${v.description}`])),
14
+ docs: {
15
+ "CDC Open Data": "https://data.cdc.gov/",
16
+ "SODA API Docs": "https://dev.socrata.com/",
17
+ "Leading Causes of Death": "https://data.cdc.gov/d/bi63-dtpu",
18
+ "Life Expectancy": "https://data.cdc.gov/d/w9j2-ggv5",
19
+ "PLACES County Data": "https://data.cdc.gov/d/swc5-untb",
20
+ "PLACES City Data": "https://data.cdc.gov/d/dxpw-cm5u",
21
+ },
22
+ };
23
+ // ─── Tools ───────────────────────────────────────────────────────────
24
+ export const tools = [
25
+ {
26
+ name: "cdc_causes_of_death",
27
+ description: "Get leading causes of death in the U.S. by state and year.\nData from 1999–2017. Causes include heart disease, cancer, kidney disease, etc.",
28
+ annotations: { title: "CDC: Causes of Death", readOnlyHint: true },
29
+ parameters: z.object({
30
+ state: z.string().optional().describe("Full state name: 'New York', 'California', 'Texas'. Omit for all states"),
31
+ year: z.number().int().optional().describe("Year (1999–2017). Omit for all years"),
32
+ limit: z.number().int().max(1000).optional().describe("Max records (default 200)"),
33
+ }),
34
+ execute: async ({ state, year, limit }) => {
35
+ const data = await getLeadingCausesOfDeath({ state, year, limit });
36
+ if (!data.length)
37
+ return `No death data found${state ? ` for ${state}` : ""}${year ? ` in ${year}` : ""}.`;
38
+ return JSON.stringify({
39
+ summary: `Leading causes of death: ${data.length} records${state ? ` for ${state}` : ""}${year ? ` (${year})` : ""}`,
40
+ records: data.slice(0, 100),
41
+ });
42
+ },
43
+ },
44
+ {
45
+ name: "cdc_life_expectancy",
46
+ description: "Get U.S. life expectancy at birth by race and sex (1900–2018).\nRaces: 'All Races', 'Black', 'White'. Sex: 'Both Sexes', 'Male', 'Female'.\nNote: Data goes through 2018. For more recent mortality trends, use cdc_mortality_rates.",
47
+ annotations: { title: "CDC: Life Expectancy", readOnlyHint: true },
48
+ parameters: z.object({
49
+ year: z.number().int().optional().describe("Year (1900–2018)"),
50
+ race: z.string().optional().describe("'All Races', 'Black', 'White'"),
51
+ sex: z.string().optional().describe("'Both Sexes', 'Male', 'Female'"),
52
+ limit: z.number().int().max(1000).optional().describe("Max records (default 200)"),
53
+ }),
54
+ execute: async ({ year, race, sex, limit }) => {
55
+ const data = await getLifeExpectancy({ year, race, sex, limit });
56
+ if (!data.length)
57
+ return "No life expectancy data found.";
58
+ return JSON.stringify({
59
+ summary: `Life expectancy: ${data.length} records${year ? ` (${year})` : ""}`,
60
+ records: data.slice(0, 100),
61
+ });
62
+ },
63
+ },
64
+ {
65
+ name: "cdc_mortality_rates",
66
+ description: "Get provisional age-adjusted death rates by cause, sex, and state (quarterly, 2020–present).\nCauses: 'All causes', 'Heart disease', 'Cancer', 'COVID-19', 'Drug overdose', 'Suicide', etc.\nReturns rate_overall, rate_sex_female, rate_sex_male, and per-state rates.",
67
+ annotations: { title: "CDC: Mortality Rates", readOnlyHint: true },
68
+ parameters: z.object({
69
+ quarter: z.string().optional().describe("Quarter: '2024 Q4', '2025 Q1'. Omit for all."),
70
+ cause: z.string().optional().describe("'All causes', 'Heart disease', 'Cancer', 'COVID-19', 'Drug overdose', 'Suicide', 'Diabetes', 'Alzheimer disease'"),
71
+ rate_type: z.string().optional().describe("'Age-adjusted' (default) or 'Crude'"),
72
+ limit: z.number().int().max(1000).optional().describe("Max records (default 200)"),
73
+ }),
74
+ execute: async ({ quarter, cause, rate_type, limit }) => {
75
+ const data = await getMortalityRates({ quarter, cause, rateType: rate_type, limit });
76
+ if (!data.length)
77
+ return "No mortality rate data found.";
78
+ return JSON.stringify({
79
+ summary: `Mortality rates: ${data.length} records${quarter ? ` (${quarter})` : ""}${cause ? ` for ${cause}` : ""}`,
80
+ records: data.slice(0, 100),
81
+ });
82
+ },
83
+ },
84
+ {
85
+ name: "cdc_places_health",
86
+ description: "Get county-level health indicators from CDC PLACES (BRFSS-based estimates).\n" +
87
+ "Measures: OBESITY, DIABETES, CSMOKING (smoking), BINGE (binge drinking), BPHIGH (high BP), " +
88
+ "DEPRESSION, SLEEP (short sleep), CHD (heart disease), COPD, CANCER, STROKE, ARTHRITIS, " +
89
+ "CASTHMA (asthma), MHLTH (mental distress), PHLTH (physical distress), LPA (physical inactivity), " +
90
+ "ACCESS2 (no health insurance), DENTAL, CHECKUP, KIDNEY, HIGHCHOL, TEETHLOST, " +
91
+ "FOODINSECU (food insecurity), LONELINESS, HOUSINSECU (housing insecurity)\n" +
92
+ "Returns crude prevalence (%) by county.",
93
+ annotations: { title: "CDC: County Health Indicators", readOnlyHint: true },
94
+ parameters: z.object({
95
+ state: z.string().optional().describe("Two-letter state code: 'NY', 'CA', 'TX'. Omit for all."),
96
+ measure: z.string().optional().describe("Measure ID: 'OBESITY', 'DIABETES', 'CSMOKING', 'DEPRESSION', 'BINGE', 'SLEEP', 'BPHIGH', 'LPA', 'ACCESS2', 'FOODINSECU', 'LONELINESS'"),
97
+ limit: z.number().int().max(1000).optional().describe("Max records (default 200)"),
98
+ }),
99
+ execute: async ({ state, measure, limit }) => {
100
+ const data = await getPlacesHealth({ state, measure, limit });
101
+ if (!data.length)
102
+ return `No PLACES health data found${state ? ` for ${state}` : ""}.`;
103
+ return JSON.stringify({
104
+ summary: `PLACES county health: ${data.length} records${state ? ` for ${state}` : ""}${measure ? ` (${measure})` : ""}`,
105
+ records: data.slice(0, 100),
106
+ });
107
+ },
108
+ },
109
+ {
110
+ name: "cdc_places_city",
111
+ description: "Get city-level health indicators from CDC PLACES — obesity, diabetes, smoking, depression, sleep, " +
112
+ "blood pressure, mental health, and 30+ more measures for every U.S. city with population > 50,000.\n" +
113
+ "Each row contains ALL measures for a city as separate columns (e.g. obesity_crudeprev, diabetes_crudeprev).",
114
+ annotations: { title: "CDC: City Health Indicators", readOnlyHint: true },
115
+ parameters: z.object({
116
+ state: z.string().optional().describe("Two-letter state code: 'NY', 'CA', 'TX'"),
117
+ city: z.string().optional().describe("City name (partial match): 'Los Angeles', 'Chicago'"),
118
+ limit: z.number().int().max(1000).optional().describe("Max records (default 200)"),
119
+ }),
120
+ execute: async ({ state, city, limit }) => {
121
+ const data = await getPlacesCityHealth({ state, city, limit });
122
+ if (!data.length)
123
+ return `No PLACES city health data found${city ? ` for ${city}` : ""}.`;
124
+ return JSON.stringify({
125
+ summary: `PLACES city health: ${data.length} cities${state ? ` in ${state}` : ""}${city ? ` matching '${city}'` : ""}`,
126
+ records: data.slice(0, 50),
127
+ });
128
+ },
129
+ },
130
+ {
131
+ name: "cdc_weekly_deaths",
132
+ description: "Get weekly provisional death counts by state — COVID-19, pneumonia, influenza, and total deaths.\n" +
133
+ "THIS IS THE MOST CURRENT CDC MORTALITY DATA — updated weekly, covers 2020–present.\n" +
134
+ "Includes percent_of_expected_deaths to detect excess mortality.",
135
+ annotations: { title: "CDC: Weekly Death Surveillance", readOnlyHint: true },
136
+ parameters: z.object({
137
+ state: z.string().optional().describe("Full state name: 'New York', 'California'. Omit for all."),
138
+ year: z.number().int().optional().describe("Year (2020–present). Omit for all."),
139
+ limit: z.number().int().max(1000).optional().describe("Max records (default 200)"),
140
+ }),
141
+ execute: async ({ state, year, limit }) => {
142
+ const data = await getWeeklyDeaths({ state, year, limit });
143
+ if (!data.length)
144
+ return `No weekly death data found${state ? ` for ${state}` : ""}.`;
145
+ return JSON.stringify({
146
+ summary: `Weekly death surveillance: ${data.length} records${state ? ` for ${state}` : ""}${year ? ` (${year})` : ""}`,
147
+ records: data.slice(0, 100),
148
+ });
149
+ },
150
+ },
151
+ {
152
+ name: "cdc_disability",
153
+ description: "Get disability prevalence by state and type from BRFSS survey.\n" +
154
+ "Types: 'Any Disability', 'Mobility Disability', 'Cognitive Disability', 'Hearing Disability', " +
155
+ "'Vision Disability', 'Self-care Disability', 'Independent Living Disability', 'No Disability'",
156
+ annotations: { title: "CDC: Disability Prevalence", readOnlyHint: true },
157
+ parameters: z.object({
158
+ state: z.string().optional().describe("Two-letter state code: 'NY', 'CA'. Omit for all."),
159
+ disability_type: z.string().optional().describe("'Any Disability', 'Mobility Disability', 'Cognitive Disability', 'Hearing Disability', 'Vision Disability', 'Self-care Disability', 'Independent Living Disability'"),
160
+ limit: z.number().int().max(1000).optional().describe("Max records (default 200)"),
161
+ }),
162
+ execute: async ({ state, disability_type, limit }) => {
163
+ const data = await getDisabilityData({ state, disabilityType: disability_type, limit });
164
+ if (!data.length)
165
+ return `No disability data found${state ? ` for ${state}` : ""}.`;
166
+ return JSON.stringify({
167
+ summary: `Disability prevalence: ${data.length} records${state ? ` for ${state}` : ""}${disability_type ? ` (${disability_type})` : ""}`,
168
+ records: data.slice(0, 100),
169
+ });
170
+ },
171
+ },
172
+ {
173
+ name: "cdc_drug_overdose",
174
+ description: "Get drug poisoning/overdose mortality by state (1999\u20132016).\\n" +
175
+ "Includes death rates by state, sex, race, and age group. Critical for opioid crisis analysis.",
176
+ annotations: { title: "CDC: Drug Overdose Mortality", readOnlyHint: true },
177
+ parameters: z.object({
178
+ state: z.string().optional().describe("Full state name: 'West Virginia', 'Ohio', 'New Hampshire'. Omit for all."),
179
+ year: z.number().int().optional().describe("Year (1999\u20132016)"),
180
+ sex: z.string().optional().describe("'Both Sexes', 'Male', 'Female'"),
181
+ limit: z.number().int().max(1000).optional().describe("Max records (default 200)"),
182
+ }),
183
+ execute: async ({ state, year, sex, limit }) => {
184
+ const data = await getDrugOverdoseData({ state, year, sex, limit });
185
+ if (!data.length)
186
+ return `No drug overdose data found${state ? ` for ${state}` : ""}.`;
187
+ return JSON.stringify({
188
+ summary: `Drug overdose mortality: ${data.length} records${state ? ` for ${state}` : ""}${year ? ` (${year})` : ""}`,
189
+ records: data.slice(0, 100),
190
+ });
191
+ },
192
+ },
193
+ {
194
+ name: "cdc_nutrition_obesity",
195
+ description: "Get adult obesity, physical inactivity, and fruit/vegetable consumption by state from BRFSS.\\n" +
196
+ "Topics: 'Obesity', 'Physical Activity', 'Fruits and Vegetables'. Data by state, race, age, income, education.",
197
+ annotations: { title: "CDC: Nutrition & Obesity", readOnlyHint: true },
198
+ parameters: z.object({
199
+ state: z.string().optional().describe("Two-letter state code: 'NY', 'CA', 'TX'. Omit for all."),
200
+ topic: z.string().optional().describe("'Obesity', 'Physical Activity', 'Fruits and Vegetables'"),
201
+ limit: z.number().int().max(1000).optional().describe("Max records (default 200)"),
202
+ }),
203
+ execute: async ({ state, topic, limit }) => {
204
+ const data = await getNutritionObesityData({ state, topic, limit });
205
+ if (!data.length)
206
+ return `No nutrition/obesity data found${state ? ` for ${state}` : ""}.`;
207
+ return JSON.stringify({
208
+ summary: `Nutrition & obesity: ${data.length} records${state ? ` for ${state}` : ""}${topic ? ` (${topic})` : ""}`,
209
+ records: data.slice(0, 100),
210
+ });
211
+ },
212
+ },
213
+ {
214
+ name: "cdc_death_rates_historical",
215
+ description: "Get age-adjusted death rates for major causes since 1900.\\n" +
216
+ "Causes: 'Heart Disease', 'Cancer', 'Stroke', 'Unintentional injuries', 'CLRD' (chronic lower respiratory diseases).\\n" +
217
+ "Great for long-term trend analysis \u2014 120+ years of data.",
218
+ annotations: { title: "CDC: Historical Death Rates", readOnlyHint: true },
219
+ parameters: z.object({
220
+ cause: z.string().optional().describe("'Heart Disease', 'Cancer', 'Stroke', 'Unintentional injuries', 'CLRD'. Omit for all causes."),
221
+ start_year: z.number().int().optional().describe("Start year (earliest: 1900)"),
222
+ end_year: z.number().int().optional().describe("End year (latest: ~2017)"),
223
+ limit: z.number().int().max(1000).optional().describe("Max records (default 200)"),
224
+ }),
225
+ execute: async ({ cause, start_year, end_year, limit }) => {
226
+ const data = await getHistoricalDeathRates({ cause, startYear: start_year, endYear: end_year, limit });
227
+ if (!data.length)
228
+ return "No historical death rate data found.";
229
+ return JSON.stringify({
230
+ summary: `Historical death rates: ${data.length} records${cause ? ` for ${cause}` : ""}`,
231
+ records: data.slice(0, 200),
232
+ });
233
+ },
234
+ },
235
+ {
236
+ name: "cdc_birth_indicators",
237
+ description: "Get quarterly provisional birth indicators: fertility rates, teen birth rates, \\n" +
238
+ "preterm birth rates, cesarean delivery rates, low birthweight \u2014 by race/ethnicity.\\n" +
239
+ "Topics: 'General Fertility', 'Teen Birth', 'Preterm', 'Cesarean', 'Low Birthweight', 'NICU', 'Medicaid'",
240
+ annotations: { title: "CDC: Birth Indicators", readOnlyHint: true },
241
+ parameters: z.object({
242
+ topic: z.string().optional().describe("'General Fertility', 'Teen Birth', 'Preterm', 'Cesarean', 'Low Birthweight', 'NICU', 'Medicaid'"),
243
+ race_ethnicity: z.string().optional().describe("'All races and origins', 'Hispanic', 'Non-Hispanic Black', 'Non-Hispanic White', 'Non-Hispanic Asian'"),
244
+ limit: z.number().int().max(1000).optional().describe("Max records (default 200)"),
245
+ }),
246
+ execute: async ({ topic, race_ethnicity, limit }) => {
247
+ const data = await getBirthIndicators({ topic, raceEthnicity: race_ethnicity, limit });
248
+ if (!data.length)
249
+ return "No birth indicator data found.";
250
+ return JSON.stringify({
251
+ summary: `Birth indicators: ${data.length} records${topic ? ` (${topic})` : ""}`,
252
+ records: data.slice(0, 100),
253
+ });
254
+ },
255
+ },
256
+ {
257
+ name: "cdc_covid",
258
+ description: "Get COVID-19 weekly case and death counts by state (data through early 2023).\nStates use two-letter abbreviations: 'NY', 'CA', 'TX'.",
259
+ annotations: { title: "CDC: COVID-19 Data", readOnlyHint: true },
260
+ parameters: z.object({
261
+ state: z.string().optional().describe("Two-letter state abbreviation: 'NY', 'CA', 'TX'"),
262
+ limit: z.number().int().max(1000).optional().describe("Max records (default 200)"),
263
+ }),
264
+ execute: async ({ state, limit }) => {
265
+ const data = await getCovidData({ state, limit });
266
+ if (!data.length)
267
+ return `No COVID data found${state ? ` for ${state}` : ""}.`;
268
+ return JSON.stringify({
269
+ summary: `COVID-19 data: ${data.length} records${state ? ` for ${state}` : ""}`,
270
+ records: data.slice(0, 100),
271
+ });
272
+ },
273
+ },
274
+ {
275
+ name: "cdc_query",
276
+ description: "Custom query against any CDC dataset using SODA syntax.\nDatasets: bi63-dtpu (death 1999–2017), w9j2-ggv5 (life expectancy), 489q-934x (mortality rates), swc5-untb (PLACES county), dxpw-cm5u (PLACES city), pwn4-m3yp (COVID), r8kw-7aab (weekly deaths), s2qv-b27b (disability), xbxb-epbu (drug overdose), hn4x-zwk7 (nutrition/obesity), 6rkc-nb2q (historical death rates), 76vv-a7x8 (birth indicators)",
277
+ annotations: { title: "CDC: Custom Query", readOnlyHint: true },
278
+ parameters: z.object({
279
+ dataset_id: z.string().describe("Dataset ID, e.g. 'bi63-dtpu'"),
280
+ where: z.string().optional().describe("SODA $where clause: \"year = '2021' AND state = 'New York'\""),
281
+ select: z.string().optional().describe("SODA $select: 'year, state, deaths'"),
282
+ order: z.string().optional().describe("SODA $order: 'year DESC'"),
283
+ group: z.string().optional().describe("SODA $group: 'year'"),
284
+ limit: z.number().int().max(1000).optional().describe("Max rows (default 1000)"),
285
+ }),
286
+ execute: async ({ dataset_id, where, select, order, group, limit }) => {
287
+ const data = await queryDataset(dataset_id, { where, select, order, group, limit });
288
+ if (!data.length)
289
+ return "No records found.";
290
+ return JSON.stringify({
291
+ summary: `${data.length} records from dataset ${dataset_id}`,
292
+ records: data.slice(0, 200),
293
+ });
294
+ },
295
+ },
296
+ ];
297
+ export const prompts = [
298
+ {
299
+ name: "health_overview",
300
+ description: "Comprehensive U.S. health snapshot: leading causes of death, life expectancy, and international comparison.",
301
+ load: async () => "Build a comprehensive health overview:\n\n" +
302
+ "1. Use cdc_causes_of_death (no state filter, most recent year) for top 10 causes nationally\n" +
303
+ "2. Use cdc_life_expectancy for recent trends by race and sex\n" +
304
+ "3. Use wb_compare with SP.DYN.LE00.IN to compare U.S. life expectancy to GB, DE, JP, CA, FR\n" +
305
+ "4. Use wb_compare with SH.XPD.CHEX.PC.CD to compare health spending per capita\n\n" +
306
+ "Highlight: the U.S. spends more on healthcare than any nation but has lower life expectancy than most peers. Present the data objectively and let the user draw conclusions.",
307
+ },
308
+ ];
309
+ export { clearCache } from "../sdk/cdc.js";
310
+ //# sourceMappingURL=cdc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdc.js","sourceRoot":"","sources":["../../src/modules/cdc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Census Bureau MCP module — tools + metadata. Delegates all API calls to sdk/census.
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 = "census";
8
+ export declare const displayName = "Census Bureau";
9
+ export declare const description = "Population, demographics, income, housing, business data from ACS, Decennial Census";
10
+ export declare const auth: {
11
+ envVar: string;
12
+ signup: string;
13
+ };
14
+ export declare const workflow = "census_search_variables to find variable codes \u2192 census_query with dataset, variables, geography";
15
+ export declare const tips = "Common variables: NAME, B01001_001E (population), B19013_001E (median income), B25077_001E (home value). Datasets: 2023/acs/acs1 (1yr), 2023/acs/acs5 (5yr), 2020/dec/pl (Decennial).";
16
+ export declare const reference: {
17
+ commonVariables: Record<string, string>;
18
+ datasets: import("../sdk/census.js").CensusDataset[];
19
+ };
20
+ export declare const tools: Tool<any, any>[];
21
+ export declare const prompts: InputPrompt<any, any>[];
22
+ export { clearCache } from "../sdk/census.js";
23
+ //# sourceMappingURL=census.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"census.d.ts","sourceRoot":"","sources":["../../src/modules/census.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAUjD,eAAO,MAAM,IAAI,WAAW,CAAC;AAC7B,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,eAAO,MAAM,WAAW,wFAAwF,CAAC;AACjH,eAAO,MAAM,IAAI;;;CAAsF,CAAC;AACxG,eAAO,MAAM,QAAQ,0GAAqG,CAAC;AAC3H,eAAO,MAAM,IAAI,0LAA0L,CAAC;AAE5M,eAAO,MAAM,SAAS;;;CAGrB,CAAC;AAkBF,eAAO,MAAM,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAkGjC,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAkB1C,CAAC;AAIF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Census Bureau MCP module — tools + metadata. Delegates all API calls to sdk/census.
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 { queryCensus, searchVariables, commonVariables, datasets, } from "../sdk/census.js";
8
+ // ─── Metadata (server.ts reads these) ────────────────────────────────
9
+ export const name = "census";
10
+ export const displayName = "Census Bureau";
11
+ export const description = "Population, demographics, income, housing, business data from ACS, Decennial Census";
12
+ export const auth = { envVar: "CENSUS_API_KEY", signup: "https://api.census.gov/data/key_signup.html" };
13
+ export const workflow = "census_search_variables to find variable codes → census_query with dataset, variables, geography";
14
+ export const tips = "Common variables: NAME, B01001_001E (population), B19013_001E (median income), B25077_001E (home value). Datasets: 2023/acs/acs1 (1yr), 2023/acs/acs5 (5yr), 2020/dec/pl (Decennial).";
15
+ export const reference = {
16
+ commonVariables,
17
+ datasets,
18
+ };
19
+ // ─── Helpers ─────────────────────────────────────────────────────────
20
+ /** Convert a row array + headers into an object, coercing numeric values. */
21
+ function rowToObject(headers, row) {
22
+ const geoKeys = new Set(["NAME", "state", "county", "place", "tract", "block group", "zip code tabulation area"]);
23
+ const obj = {};
24
+ headers.forEach((h, i) => {
25
+ const val = row[i];
26
+ const num = Number(val);
27
+ obj[h] = !geoKeys.has(h) && !isNaN(num) && val !== "" ? num : val;
28
+ });
29
+ return obj;
30
+ }
31
+ // ─── Tools ───────────────────────────────────────────────────────────
32
+ export const tools = [
33
+ {
34
+ name: "census_query",
35
+ description: "Query the U.S. Census Bureau Data API. Supports ACS, Decennial Census, Population Estimates, " +
36
+ "Economic Census, and more. Returns data for specified variables and geography.\n\n" +
37
+ "Common datasets: '2023/acs/acs1' (1yr), '2023/acs/acs5' (5yr), '2020/dec/pl' (Decennial), '2023/pep/population'\n" +
38
+ "Common variables: NAME, B01001_001E (population), B19013_001E (median income), B25077_001E (home value), B01002_001E (median age)",
39
+ annotations: { title: "Census: Query Data", readOnlyHint: true },
40
+ parameters: z.object({
41
+ dataset: z.string().describe("Census dataset path, e.g. '2023/acs/acs1', '2023/acs/acs5', '2020/dec/pl'"),
42
+ variables: z.string().describe("Comma-separated variable names. Always include NAME. Example: 'NAME,B01001_001E,B19013_001E'"),
43
+ for_geo: z.string().describe("Geography level and filter. Examples: 'state:*' (all states), 'state:06' (CA), 'county:*'"),
44
+ in_geo: z.string().optional().describe("Parent geography for nested queries. Example: 'state:06' to get counties in CA"),
45
+ }),
46
+ execute: async ({ dataset, variables, for_geo, in_geo }) => {
47
+ const data = await queryCensus(dataset, variables, for_geo, in_geo);
48
+ const rows = data.rows.slice(0, 50);
49
+ return JSON.stringify({
50
+ summary: `Census ${dataset}: ${data.rows.length} records for get=${variables} for=${for_geo}${in_geo ? ` in=${in_geo}` : ""}`,
51
+ dataset,
52
+ variables: variables.split(","),
53
+ forGeo: for_geo,
54
+ inGeo: in_geo || null,
55
+ totalRecords: data.rows.length,
56
+ truncated: data.rows.length > 50,
57
+ rows: rows.map(row => rowToObject(data.headers, row)),
58
+ });
59
+ },
60
+ },
61
+ {
62
+ name: "census_population",
63
+ description: "Get population data for U.S. states using the American Community Survey. " +
64
+ "Quick shortcut — for more flexibility use census_query directly.",
65
+ annotations: { title: "Census: Population by State", readOnlyHint: true },
66
+ parameters: z.object({
67
+ year: z.number().int().optional().describe("ACS year (default: 2023). Range: 2005-2023."),
68
+ state: z.string().optional().describe("Two-digit FIPS state code, e.g. '06' (CA), '48' (TX), '36' (NY). Omit or '*' for all."),
69
+ }),
70
+ execute: async ({ year, state }) => {
71
+ const y = year || 2023;
72
+ const stateCode = state || "*";
73
+ const data = await queryCensus(`${y}/acs/acs1`, "NAME,B01001_001E,B19013_001E,B01002_001E", `state:${stateCode}`);
74
+ const nameIdx = data.headers.indexOf("NAME");
75
+ const popIdx = data.headers.indexOf("B01001_001E");
76
+ const incIdx = data.headers.indexOf("B19013_001E");
77
+ const ageIdx = data.headers.indexOf("B01002_001E");
78
+ const states = data.rows
79
+ .sort((a, b) => Number(b[popIdx]) - Number(a[popIdx]))
80
+ .map(row => ({
81
+ name: row[nameIdx],
82
+ population: Number(row[popIdx]),
83
+ medianIncome: Number(row[incIdx]),
84
+ medianAge: parseFloat(row[ageIdx]),
85
+ }));
86
+ return JSON.stringify({
87
+ summary: `U.S. Population (${y} ACS 1-Year): ${states.length} states/territories`,
88
+ year: y,
89
+ dataset: "ACS 1-Year",
90
+ totalRecords: states.length,
91
+ states,
92
+ });
93
+ },
94
+ },
95
+ {
96
+ name: "census_search_variables",
97
+ description: "Search for Census variable names/codes by keyword. Helps discover what data is available " +
98
+ "in a given dataset. Returns variable IDs you can use with census_query.",
99
+ annotations: { title: "Census: Search Variables", readOnlyHint: true },
100
+ parameters: z.object({
101
+ dataset: z.string().describe("Census dataset path, e.g. '2023/acs/acs1'"),
102
+ keyword: z.string().describe("Keyword to search for, e.g. 'income', 'poverty', 'housing', 'education'"),
103
+ max_results: z.number().int().positive().max(50).optional().describe("Maximum results (default: 20)"),
104
+ }),
105
+ execute: async ({ dataset, keyword, max_results }) => {
106
+ const matches = await searchVariables(dataset, keyword, max_results ?? 20);
107
+ if (!matches.length) {
108
+ return JSON.stringify({ summary: `No variables matching "${keyword}" in ${dataset}.`, matches: [] });
109
+ }
110
+ return JSON.stringify({
111
+ summary: `Census variables matching "${keyword}" in ${dataset}: ${matches.length} found`,
112
+ dataset,
113
+ keyword,
114
+ matches,
115
+ });
116
+ },
117
+ },
118
+ ];
119
+ export const prompts = [
120
+ {
121
+ name: "state_profile",
122
+ description: "Complete demographic and economic profile of a U.S. state.",
123
+ arguments: [
124
+ { name: "state", description: "State name or abbreviation", required: true },
125
+ ],
126
+ load: async (args) => {
127
+ const state = args?.state ?? "";
128
+ return (`Build a comprehensive profile for ${state}:\n\n` +
129
+ "1. census_population — total population and recent growth\n" +
130
+ `2. census_query with 2023/acs/acs1 for variables B19013_001E (median income), B25077_001E (home value), B01002_001E (median age) for state ${state}\n` +
131
+ `3. bea_gdp_by_state for ${state} — GDP and growth rate\n` +
132
+ `4. bea_personal_income for ${state} — per capita income\n` +
133
+ `5. usa_spending_by_state for ${state} — federal dollars received\n` +
134
+ `6. cdc_chronic_disease for ${state} — top health indicators\n\n` +
135
+ "Present as a state fact sheet with demographics, economy, federal funding, and health.");
136
+ },
137
+ },
138
+ ];
139
+ // ─── Re-export cache control from SDK ────────────────────────────────
140
+ export { clearCache } from "../sdk/census.js";
141
+ //# sourceMappingURL=census.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"census.js","sourceRoot":"","sources":["../../src/modules/census.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * CFPB MCP module — Consumer Financial Protection Bureau complaint database.
3
+ */
4
+ import type { Tool } from "fastmcp";
5
+ export declare const name = "cfpb";
6
+ export declare const displayName = "CFPB (Consumer Financial Protection Bureau)";
7
+ export declare const description: string;
8
+ export declare const workflow = "cfpb_search_complaints to find complaints \u2192 cfpb_complaint_aggregations for counts by field \u2192 cfpb_complaint_trends for time series";
9
+ export declare const tips: string;
10
+ export declare const reference: {
11
+ products: Record<string, string>;
12
+ aggregationFields: Record<string, string>;
13
+ docs: {
14
+ "API Documentation": string;
15
+ "Complaint Database": string;
16
+ };
17
+ };
18
+ export declare const tools: Tool<any, any>[];
19
+ export { clearCache } from "../sdk/cfpb.js";
20
+ //# sourceMappingURL=cfpb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cfpb.d.ts","sourceRoot":"","sources":["../../src/modules/cfpb.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAUpC,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,WAAW,gDAAgD,CAAC;AACzE,eAAO,MAAM,WAAW,QAEiF,CAAC;AAC1G,eAAO,MAAM,QAAQ,kJACkH,CAAC;AACxI,eAAO,MAAM,IAAI,QAI4E,CAAC;AAE9F,eAAO,MAAM,SAAS;;;;;;;CAOrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAmHjC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}