fda-mcp-server 0.0.6 → 0.0.8

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.
@@ -1,164 +1,16 @@
1
1
  /**
2
- * FDA API Client
2
+ * openFDA API Client
3
3
  *
4
- * Wraps FDA public data sources:
5
- * 1. FDA.gov Warning Letters (Drupal DataTables / Solr)
6
- * 2. FDA.gov 483 Inspection Observations (FOIA Reading Room)
7
- * 3. openFDA Enforcement/Recalls API
4
+ * Wraps public openFDA data sources:
5
+ * 1. Enforcement/Recalls (drug, device, food)
6
+ * 2. Device Adverse Events (MAUDE database)
8
7
  */
9
- const FDA_BASE = "https://www.fda.gov";
10
8
  const OPENFDA_BASE = "https://api.fda.gov";
11
- // ─── Warning Letters (FDA.gov DataTables) ────────────────────────────────────
12
- // Max pages to fetch when searching by company name (100 rows each).
13
- // Balances coverage vs response time — 500 rows covers ~15% of the dataset.
14
- const MAX_SEARCH_PAGES = 5;
15
- async function fetchWarningLetterPage(search, start, length) {
16
- const url = new URL("/datatables/views/ajax", FDA_BASE);
17
- url.searchParams.set("view_name", "warning_letter_solr_index");
18
- url.searchParams.set("view_display_id", "warning_letter_solr_block");
19
- url.searchParams.set("view_base_path", "inspections-compliance-enforcement-and-criminal-investigations/compliance-actions-and-activities/warning-letters/datatables-data");
20
- url.searchParams.set("draw", "1");
21
- url.searchParams.set("start", String(start));
22
- url.searchParams.set("length", String(length));
23
- if (search) {
24
- url.searchParams.set("search[value]", search);
25
- }
26
- const resp = await fetch(url.toString(), {
27
- headers: {
28
- Accept: "application/json",
29
- "User-Agent": "fda-mcp-server/1.0",
30
- },
31
- });
32
- if (!resp.ok) {
33
- throw new Error(`FDA Warning Letters API returned ${resp.status}: ${resp.statusText}`);
34
- }
35
- const data = await resp.json();
36
- const records = (data.data ?? []).map((row) => parseWarningLetterRow(row));
37
- return { data, records };
38
- }
39
- function applyWarningLetterFilters(records, params) {
40
- let filtered = records;
41
- if (params.search) {
42
- const searchTerm = params.search.toLowerCase();
43
- filtered = filtered.filter((r) => r.company_name.toLowerCase().includes(searchTerm) ||
44
- r.subject.toLowerCase().includes(searchTerm) ||
45
- r.excerpt.toLowerCase().includes(searchTerm));
46
- }
47
- if (params.issuing_office) {
48
- const office = params.issuing_office.toLowerCase();
49
- filtered = filtered.filter((r) => r.issuing_office.toLowerCase().includes(office));
50
- }
51
- if (params.date_from || params.date_to) {
52
- filtered = filtered.filter((r) => {
53
- const d = r.issue_date;
54
- if (params.date_from && d < params.date_from)
55
- return false;
56
- if (params.date_to && d > params.date_to)
57
- return false;
58
- return true;
59
- });
60
- }
61
- return filtered;
62
- }
63
- export async function searchWarningLetters(params) {
64
- const userLimit = Math.min(params.limit ?? 25, 100);
65
- const offset = params.offset ?? 0;
66
- const hasPostFilters = !!(params.search || params.issuing_office || params.date_from || params.date_to);
67
- if (!hasPostFilters) {
68
- // No filters — just fetch the requested page directly
69
- const { data, records } = await fetchWarningLetterPage(undefined, offset, userLimit);
70
- return {
71
- total: data.recordsFiltered ?? data.recordsTotal ?? records.length,
72
- letters: records,
73
- };
74
- }
75
- // FDA.gov Solr search[value] only influences relevance ranking, not filtering.
76
- // We must fetch rows and filter client-side. Page through up to MAX_SEARCH_PAGES
77
- // batches of 100 to find enough matches.
78
- const allFiltered = [];
79
- let serverTotal = 0;
80
- for (let page = 0; page < MAX_SEARCH_PAGES; page++) {
81
- const start = offset + page * 100;
82
- const { data, records } = await fetchWarningLetterPage(params.search, start, 100);
83
- if (page === 0) {
84
- serverTotal = data.recordsFiltered ?? data.recordsTotal ?? 0;
85
- }
86
- if (records.length === 0)
87
- break; // no more data
88
- const matches = applyWarningLetterFilters(records, params);
89
- allFiltered.push(...matches);
90
- // Stop early if we have enough results
91
- if (allFiltered.length >= userLimit)
92
- break;
93
- // Stop if we've exhausted the server's data
94
- if (start + 100 >= serverTotal)
95
- break;
96
- }
97
- return {
98
- total: allFiltered.length,
99
- letters: allFiltered.slice(0, userLimit),
100
- };
101
- }
102
- function parseWarningLetterRow(row) {
103
- // DataTables rows come as arrays or objects depending on config
104
- if (Array.isArray(row)) {
105
- return {
106
- posted_date: stripHtml(row[0] ?? ""),
107
- issue_date: stripHtml(row[1] ?? ""),
108
- company_name: stripHtml(row[2] ?? ""),
109
- issuing_office: stripHtml(row[3] ?? ""),
110
- subject: stripHtml(row[4] ?? ""),
111
- response_letter: stripHtml(row[5] ?? ""),
112
- closeout_letter: stripHtml(row[6] ?? ""),
113
- excerpt: stripHtml(row[7] ?? ""),
114
- url: extractHref(row[2] ?? "") || extractHref(row[4] ?? ""),
115
- };
116
- }
117
- // Object format
118
- return {
119
- posted_date: stripHtml(row.field_letter_posted_date ?? row.posted_date ?? ""),
120
- issue_date: stripHtml(row.field_letter_issue_datetime ?? row.issue_date ?? ""),
121
- company_name: stripHtml(row.field_company_name_warning_lette ?? row.company_name ?? ""),
122
- issuing_office: stripHtml(row.field_issuing_office ?? row.issuing_office ?? ""),
123
- subject: stripHtml(row.field_subject ?? row.subject ?? ""),
124
- response_letter: stripHtml(row.field_response_letter_date ?? row.response_letter ?? ""),
125
- closeout_letter: stripHtml(row.field_closeout_letter_date ?? row.closeout_letter ?? ""),
126
- excerpt: stripHtml(row.field_letter_body ?? row.excerpt ?? ""),
127
- url: extractHref(row.field_company_name_warning_lette ?? row.field_subject ?? ""),
128
- };
129
- }
130
- // ─── 483 Inspections ─────────────────────────────────────────────────────────
131
- //
132
- // FDA removed the DataTables AJAX endpoint for 483 observations. The page now
133
- // only offers annual XLSX downloads (FY2006–FY2025). Live search is not
134
- // possible. This function queries the enriched fda-csa-data PostgreSQL dataset
135
- // when DATABASE_URL is set, or returns a helpful message pointing to XLSX
136
- // downloads and the enriched dataset.
137
- const FDA_483_XLSX_URLS = {
138
- "2025": "https://www.fda.gov/media/190190/download?attachment",
139
- "2024": "https://www.fda.gov/media/185090/download?attachment",
140
- "2023": "https://www.fda.gov/media/174101/download?attachment",
141
- "2022": "https://www.fda.gov/media/163420/download?attachment",
142
- "2021": "https://www.fda.gov/media/153238/download?attachment",
143
- };
144
- export function get483XlsxUrls() {
145
- return FDA_483_XLSX_URLS;
146
- }
147
- export async function searchInspections(params) {
148
- // FDA removed the live DataTables endpoint — no live search available.
149
- // Return empty with an explanation so the tool handler can provide guidance.
150
- return {
151
- total: 0,
152
- inspections: [],
153
- note: "FDA removed the live 483 inspection search endpoint. 483 observation data is now only available as annual XLSX downloads from FDA.gov, or via the enriched fda-csa-data dataset (use csa_risk_assessment or supplier_qualification_report tools for 483 data).",
154
- };
155
- }
156
9
  // ─── openFDA Enforcement (Recalls) ───────────────────────────────────────────
157
10
  export async function searchEnforcement(params) {
158
11
  const product = params.product_type ?? "drug";
159
12
  const limit = Math.min(params.limit ?? 25, 100);
160
13
  const skip = params.skip ?? 0;
161
- // Build openFDA search query
162
14
  const searchParts = [];
163
15
  if (params.search) {
164
16
  searchParts.push(`"${params.search}"`);
@@ -184,17 +36,14 @@ export async function searchEnforcement(params) {
184
36
  url.searchParams.set("limit", String(limit));
185
37
  url.searchParams.set("skip", String(skip));
186
38
  const resp = await fetch(url.toString(), {
187
- headers: {
188
- "User-Agent": "fda-mcp-server/1.0",
189
- },
39
+ headers: { "User-Agent": "fda-mcp-server/1.0" },
190
40
  });
191
41
  if (!resp.ok) {
192
- if (resp.status === 404) {
42
+ if (resp.status === 404)
193
43
  return { total: 0, records: [] };
194
- }
195
44
  throw new Error(`openFDA enforcement API returned ${resp.status}: ${resp.statusText}`);
196
45
  }
197
- const data = await resp.json();
46
+ const data = (await resp.json());
198
47
  const records = (data.results ?? []).map((r) => ({
199
48
  recall_number: r.recall_number ?? "",
200
49
  status: r.status ?? "",
@@ -220,25 +69,72 @@ export async function searchEnforcement(params) {
220
69
  records,
221
70
  };
222
71
  }
223
- // ─── Utilities ───────────────────────────────────────────────────────────────
224
- function stripHtml(s) {
225
- return s
226
- .replace(/<[^>]*>/g, "")
227
- .replace(/&amp;/g, "&")
228
- .replace(/&lt;/g, "<")
229
- .replace(/&gt;/g, ">")
230
- .replace(/&quot;/g, '"')
231
- .replace(/&#039;/g, "'")
232
- .replace(/&nbsp;/g, " ")
233
- .trim();
234
- }
235
- function extractHref(s) {
236
- const match = s.match(/href="([^"]+)"/);
237
- if (!match)
238
- return "";
239
- const href = match[1];
240
- if (href.startsWith("http"))
241
- return href;
242
- return `${FDA_BASE}${href.startsWith("/") ? "" : "/"}${href}`;
72
+ // ─── openFDA Device Adverse Events (MAUDE) ───────────────────────────────────
73
+ export async function searchDeviceEvents(params) {
74
+ const limit = Math.min(params.limit ?? 25, 100);
75
+ const skip = params.skip ?? 0;
76
+ const searchParts = [];
77
+ if (params.search) {
78
+ searchParts.push(`"${params.search}"`);
79
+ }
80
+ if (params.manufacturer) {
81
+ searchParts.push(`device.manufacturer_d_name:"${params.manufacturer}"`);
82
+ }
83
+ if (params.brand_name) {
84
+ searchParts.push(`device.brand_name:"${params.brand_name}"`);
85
+ }
86
+ if (params.event_type) {
87
+ searchParts.push(`event_type:"${params.event_type}"`);
88
+ }
89
+ if (params.product_code) {
90
+ searchParts.push(`device.generic_name:"${params.product_code}"`);
91
+ }
92
+ if (params.date_from || params.date_to) {
93
+ const from = params.date_from?.replace(/-/g, "") ?? "19000101";
94
+ const to = params.date_to?.replace(/-/g, "") ?? "20991231";
95
+ searchParts.push(`date_received:[${from}+TO+${to}]`);
96
+ }
97
+ const url = new URL("/device/event.json", OPENFDA_BASE);
98
+ if (searchParts.length > 0) {
99
+ url.searchParams.set("search", searchParts.join("+AND+"));
100
+ }
101
+ url.searchParams.set("limit", String(limit));
102
+ url.searchParams.set("skip", String(skip));
103
+ const resp = await fetch(url.toString(), {
104
+ headers: { "User-Agent": "fda-mcp-server/1.0" },
105
+ });
106
+ if (!resp.ok) {
107
+ if (resp.status === 404)
108
+ return { total: 0, events: [] };
109
+ throw new Error(`openFDA device events API returned ${resp.status}: ${resp.statusText}`);
110
+ }
111
+ const data = (await resp.json());
112
+ const events = (data.results ?? []).map((r) => {
113
+ const device = r.device?.[0] ?? {};
114
+ const description = (r.mdr_text ?? [])
115
+ .map((t) => t.text ?? "")
116
+ .filter(Boolean)
117
+ .join(" ")
118
+ .substring(0, 500) || "";
119
+ return {
120
+ report_number: r.report_number ?? "",
121
+ event_type: r.event_type ?? "",
122
+ date_received: r.date_received ?? "",
123
+ date_of_event: r.date_of_event ?? "",
124
+ device_name: device.generic_name ?? "",
125
+ manufacturer: device.manufacturer_d_name ?? "",
126
+ brand_name: device.brand_name ?? "",
127
+ product_code: device.device_report_product_code ?? "",
128
+ event_description: description,
129
+ patient_outcome: r.patient?.[0]?.patient_sequence_number
130
+ ? (r.patient ?? []).map((p) => p.sequence_number_outcome?.[0] ?? "").filter(Boolean)
131
+ : [],
132
+ device_class: device.device_class ?? "",
133
+ };
134
+ });
135
+ return {
136
+ total: data.meta?.results?.total ?? events.length,
137
+ events,
138
+ };
243
139
  }
244
140
  //# sourceMappingURL=fda-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fda-client.js","sourceRoot":"","sources":["../src/fda-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fda-client.js","sourceRoot":"","sources":["../src/fda-client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,13 +2,12 @@
2
2
  /**
3
3
  * FDA MCP Server
4
4
  *
5
- * MCP server exposing FDA Warning Letters, Form 483 Inspections,
6
- * and Enforcement/Recall data as queryable tools.
5
+ * Tools for querying FDA enforcement, adverse event, and compliance data.
7
6
  *
8
7
  * Data sources:
9
- * - FDA.gov Warning Letters (Drupal/Solr DataTables)
10
- * - FDA.gov FOIA 483 Inspection Observations
11
- * - openFDA Enforcement (Recalls) API
8
+ * - openFDA Enforcement/Recalls API (live)
9
+ * - openFDA Device Adverse Events / MAUDE (live)
10
+ * - fda-csa-data enriched dataset (warning letters, 483s, citations, CSA analysis)
12
11
  */
13
12
  export {};
14
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG"}