UNPKG

@cyanheads/pubmed-mcp-server

Version:

Production-ready PubMed Model Context Protocol (MCP) server that empowers AI agents and research tools with comprehensive access to PubMed's article database. Enables advanced, automated LLM workflows for searching, retrieving, analyzing, and visualizing

37 lines 1.48 kB
/** * @fileoverview Manages a queue for NCBI E-utility requests to ensure compliance with rate limits. * @module src/services/NCBI/core/ncbiRequestQueueManager */ import { RequestContext } from "../../../utils/index.js"; import { NcbiRequestParams } from "./ncbiConstants.js"; /** * Interface for a queued NCBI request. */ export interface QueuedRequest { resolve: (value: any) => void; reject: (reason?: any) => void; task: () => Promise<any>; context: RequestContext; endpoint: string; params: NcbiRequestParams; } export declare class NcbiRequestQueueManager { private requestQueue; private isProcessingQueue; private lastRequestTime; constructor(); /** * Processes the request queue, ensuring delays between requests to respect NCBI rate limits. */ private processQueue; /** * Enqueues a task (an NCBI API call) to be processed. * @param task A function that returns a Promise resolving to the API call result. * @param context The request context for logging and correlation. * @param endpoint The NCBI endpoint being called (e.g., "esearch", "efetch"). * @param params The parameters for the NCBI request. * @returns A Promise that resolves or rejects with the result of the task. */ enqueueRequest<T>(task: () => Promise<T>, context: RequestContext, endpoint: string, params: NcbiRequestParams): Promise<T>; } //# sourceMappingURL=ncbiRequestQueueManager.d.ts.map