@cyanheads/pubmed-mcp-server
Version:
Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms via MCP. STDIO or Streamable HTTP.
34 lines • 1.8 kB
TypeScript
/**
* @fileoverview Helper functions for parsing ESummary results from NCBI.
* Handles different ESummary XML structures and formats the data into
* consistent ParsedBriefSummary objects.
* @module src/services/ncbi/parsing/esummary-parser
*/
import type { RequestContext } from '@cyanheads/mcp-ts-core/utils';
import type { ESummaryResult, ParsedBriefSummary, ESummaryAuthor as XmlESummaryAuthor } from '../types.js';
/**
* Formats an array of ESummary authors into a string.
* Limits to the first 3 authors and adds 'et al.' if more exist.
*/
export declare function formatESummaryAuthors(authors?: XmlESummaryAuthor[]): string;
/**
* Parses NCBI ESummary date strings into YYYY-MM-DD (or YYYY-MM-01 / YYYY-01-01
* for partial dates). Returns undefined for unrecognized formats.
*
* NCBI's ESummary API returns a small set of predictable date formats. chrono-node
* (used by the framework's dateParser) mishandles most of them — its `forwardDate`
* option causes "2023 Dec" to resolve to a future December, ignoring the year.
*/
export declare function parseNcbiDate(dateStr: string): string | undefined;
/**
* Standardizes date strings from ESummary to 'YYYY-MM-DD' format.
* Uses a dedicated NCBI date parser for known formats, falling back to
* chrono-node via the framework's dateParser for anything unexpected.
*/
export declare function standardizeESummaryDate(dateStr?: string, parentContext?: RequestContext): Promise<string | undefined>;
/**
* Extracts and formats brief summaries from ESummary XML result.
* Handles both DocumentSummarySet (newer) and older DocSum structures.
*/
export declare function extractBriefSummaries(eSummaryResult?: ESummaryResult, context?: RequestContext): Promise<ParsedBriefSummary[]>;
//# sourceMappingURL=esummary-parser.d.ts.map