clinicaltrialsgov-mcp-server
Version:
Search ClinicalTrials.gov trials, retrieve study details and results, and match patients to eligible trials via MCP. STDIO or Streamable HTTP.
37 lines • 1.23 kB
JavaScript
/**
* @fileoverview Shared helpers for normalizing tool inputs into API search parameters.
* @module mcp-server/tools/definitions/query-helpers
*/
export function toArray(v) {
if (v === undefined)
return;
if (Array.isArray(v))
return v;
const trimmed = v.trim();
if (trimmed.startsWith('[')) {
try {
const parsed = JSON.parse(trimmed);
if (Array.isArray(parsed) && parsed.every((x) => typeof x === 'string')) {
return parsed;
}
}
catch {
// Not valid JSON — fall through to the scalar-wrap (unchanged behavior).
}
}
return [v];
}
/** Build AREA[] phase filter and combine with user's advancedFilter. */
export function buildAdvancedFilter(phaseFilter, advancedFilter) {
const parts = [];
if (phaseFilter?.length) {
const expr = phaseFilter.length === 1
? `AREA[Phase]${phaseFilter[0]}`
: `(${phaseFilter.map((p) => `AREA[Phase]${p}`).join(' OR ')})`;
parts.push(expr);
}
if (advancedFilter)
parts.push(advancedFilter);
return parts.length > 0 ? parts.join(' AND ') : undefined;
}
//# sourceMappingURL=query-helpers.js.map